+ Add managegroupmembers page for gitlab.

This commit is contained in:
caoyanyi
2023-11-07 14:58:22 +08:00
parent 05e0ff2191
commit ab24512948
3 changed files with 85 additions and 3 deletions
+3 -3
View File
@@ -489,15 +489,15 @@ class gitlab extends control
{
$data = fixer::input('post')->get();
$ids = array_filter($data->ids);
$ids = array_filter($data->id);
if(count($ids) != count(array_unique($ids))) return $this->send(array('result' => 'fail', 'message' => $this->lang->gitlab->group->repeatError));
$newMembers = array();
foreach($ids as $key => $id)
{
/* Check whether each member has selected accesslevel. */
if(empty($data->levels[$key])) return $this->send(array('result' => 'fail', 'message' => $this->lang->gitlab->group->memberAccessLevel . $this->lang->gitlab->group->emptyError ));
if(empty($data->access_level[$key])) return $this->send(array('result' => 'fail', 'message' => $this->lang->gitlab->group->memberAccessLevel . $this->lang->gitlab->group->emptyError ));
$newMembers[$id] = (object)array('access_level'=>$data->levels[$key], 'expires_at'=>$data->expires[$key]);
$newMembers[$id] = (object)array('access_level'=>$data->access_level[$key], 'expires_at'=>$data->expires_at[$key]);
}
$currentMembers = $this->gitlab->apiGetGroupMembers($gitlabID, $groupID);
+26
View File
@@ -0,0 +1,26 @@
window.getMenu = function(item)
{
const selectedUsers = [];
$('.pick-value[name^=id]').each(function()
{
const name = $(this).val();
if(name) selectedUsers.push(name);
});
item.disabled = selectedUsers.includes(item.value);
return item;
}
window.onRenderRow = function(row, rowIdx, data)
{
if(!data) return;
row.find('[data-name="id"]').find('.picker-box').on('inited', function(_, info)
{
if(hasAccessUsers[data.id])
{
const users = [{text: data.name, value: data.id}];
info[0].render({disabled: true, required: true, items: users, defaultValue: data.id});
}
});
}
@@ -0,0 +1,56 @@
<?php
declare(strict_types=1);
/**
* The manageprojectmembers view file of gitlab module of ZenTaoPMS.
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Yanyi Cao <caoyanyi@easycorp.ltd>
* @package gitlab
* @link https://www.zentao.net
*/
namespace zin;
jsVar('hasAccessUsers', $currentMembers);
formBatchPanel
(
set::data(array_values($currentMembers)),
set::onRenderRow(jsRaw('onRenderRow')),
formBatchItem
(
set::name('index'),
set::label('ID'),
set::control('index'),
set::width('50px'),
),
formBatchItem
(
set::label($lang->gitlab->group->memberName),
set::width('1/3'),
set::name('id'),
set::control
(
array(
'type' => 'picker',
'name' => 'id',
'cache' => false,
'items' => $gitlabUsers,
'menu' => jsRaw('{getItem(item) {return getMenu(item)}}'),
)
)
),
formBatchItem
(
set::name('access_level'),
set::label($lang->gitlab->group->memberAccessLevel),
set::control('picker'),
set::width('1/3'),
set::items($lang->gitlab->accessLevels)
),
formBatchItem
(
set::name('expires_at'),
set::label($lang->gitlab->group->memberExpiresAt),
set::control('datePicker'),
set::width('1/3'),
)
);