Merge branch 'kanban'

This commit is contained in:
孙广明
2021-12-20 10:59:07 +08:00
88 changed files with 5582 additions and 113 deletions
+4
View File
@@ -35,6 +35,10 @@ $config->action->objectNameFields['pipeline'] = 'name';
$config->action->objectNameFields['mr'] = 'title';
$config->action->objectNameFields['kanbancolumn'] = 'name';
$config->action->objectNameFields['kanbanlane'] = 'name';
$config->action->objectNameFields['kanbanspace'] = 'name';
$config->action->objectNameFields['kanbanregion'] = 'name';
$config->action->objectNameFields['kanban'] = 'name';
$config->action->objectNameFields['kanbancard'] = 'name';
$config->action->commonImgSize = 870;
+24 -1
View File
@@ -123,6 +123,12 @@ $lang->action->objectTypes['gitlabuser'] = 'GitLab User';
$lang->action->objectTypes['gitlabgroup'] = 'GitLab Group';
$lang->action->objectTypes['gitlabbranch'] = 'GitLab Branch';
$lang->action->objectTypes['gitlabbranchpriv'] = 'GitLab Protected Branches';
$lang->action->objectTypes['kanbanspace'] = 'Kanban Space';
$lang->action->objectTypes['kanban'] = 'Kanban';
$lang->action->objectTypes['kanbanregion'] = 'Kanban Region';
$lang->action->objectTypes['kanbanlane'] = 'Kanban Lane';
$lang->action->objectTypes['kanbancolumn'] = 'Kanban Column';
$lang->action->objectTypes['kanbancard'] = 'Kanban Card';
/* Used to describe operation history. */
$lang->action->desc = new stdclass();
@@ -391,10 +397,23 @@ $lang->action->dynamicAction->execution['undeleted'] = 'Restore ' . $lang->execu
$lang->action->dynamicAction->execution['hidden'] = 'Hide ' . $lang->executionCommon;
$lang->action->dynamicAction->execution['moved'] = 'Improt Task';
$lang->action->dynamicAction->kanban['create'] = 'Create Kanban';
$lang->action->dynamicAction->kanban['edited'] = 'Kanban Settings';
$lang->action->dynamicAction->kanbanspace['create'] = 'Create Space';
$lang->action->dynamicAction->kanbanspace['edited'] = 'Space Settings';
$lang->action->dynamicAction->kanbanspace['closed'] = 'Close Kanban';
$lang->action->dynamicAction->kanbancolumn['create'] = 'Create Column';
$lang->action->dynamicAction->kanbancolumn['edited'] = 'Column Settings';
$lang->action->dynamicAction->kanbanlane['created'] = 'Create Swimlane';
$lang->action->dynamicAction->kanbanlane['edited'] = 'Swimlane Settings';
$lang->action->dynamicAction->kanbanlane['moved'] = 'Move Swimlane';
$lang->action->dynamicAction->kanbancard['create'] = 'Create Card';
$lang->action->dynamicAction->kanbancard['edited'] = 'Edit card';
$lang->action->dynamicAction->team['managedTeam'] = 'Manage Team';
$lang->action->dynamicAction->task['opened'] = 'Create Task';
@@ -548,8 +567,12 @@ $lang->action->label->issue = 'Issue|issue|view|issueID=%s';
$lang->action->label->design = 'Design|design|view|designID=%s';
$lang->action->label->stakeholder = 'Stakeholder|stakeholder|view|userID=%s';
$lang->action->label->api = 'Interface|api|index|libID=%s&moduleID=%s&apiID=%s';
$lang->action->label->kanbancolumn = 'Kanban column|execution|kanban|execution=%s';
$lang->action->label->kanbanspace = 'Kanban Space|kanban|space|browseType=all';
$lang->action->label->kanbanregion = 'Kanban Region|kanban|view|kanbanID=%s';
$lang->action->label->kanban = 'Kanban|kanban|view|kanbanID=%s';
$lang->action->label->kanbancolumn = 'Kanban Column|execution|kanban|execution=%s';
$lang->action->label->kanbanlane = 'Kanban Lane|execution|kanban|execution=%s&type=all';
$lang->action->label->kanbancard = 'Kanban Card|kanban|view|kanbanID=%s';
$lang->action->label->mr = 'Merge Request|mr|view|id=%s';
/* Object type. */
+23
View File
@@ -123,6 +123,12 @@ $lang->action->objectTypes['gitlabuser'] = 'GitLab用户';
$lang->action->objectTypes['gitlabgroup'] = 'GitLab群组';
$lang->action->objectTypes['gitlabbranch'] = 'GitLab分支';
$lang->action->objectTypes['gitlabbranchpriv'] = 'GitLab保护分支';
$lang->action->objectTypes['kanbanspace'] = '看板空间';
$lang->action->objectTypes['kanban'] = '看板';
$lang->action->objectTypes['kanbanregion'] = '看板区域';
$lang->action->objectTypes['kanbanlane'] = '看板泳道';
$lang->action->objectTypes['kanbancolumn'] = '看板列';
$lang->action->objectTypes['kanbancard'] = '看板卡片';
/* 用来描述操作历史记录。*/
$lang->action->desc = new stdclass();
@@ -391,10 +397,23 @@ $lang->action->dynamicAction->execution['undeleted'] = '还原' . $lang->executi
$lang->action->dynamicAction->execution['hidden'] = '隐藏' . $lang->executionCommon;
$lang->action->dynamicAction->execution['moved'] = '导入任务';
$lang->action->dynamicAction->kanban['create'] = '创建看板';
$lang->action->dynamicAction->kanban['edited'] = '设置看板';
$lang->action->dynamicAction->kanbanspace['create'] = '创建看板空间';
$lang->action->dynamicAction->kanbanspace['edited'] = '设置看板空间';
$lang->action->dynamicAction->kanbanspace['closed'] = '关闭看板空间';
$lang->action->dynamicAction->kanbancolumn['create'] = '创建看板列';
$lang->action->dynamicAction->kanbancolumn['edited'] = '设置看板列';
$lang->action->dynamicAction->kanbanlane['created'] = '创建泳道';
$lang->action->dynamicAction->kanbanlane['edited'] = '设置泳道';
$lang->action->dynamicAction->kanbanlane['moved'] = '移动泳道';
$lang->action->dynamicAction->kanbancard['create'] = '创建看板卡片';
$lang->action->dynamicAction->kanbancard['edited'] = '编辑看板卡片';
$lang->action->dynamicAction->team['managedTeam'] = '维护团队';
$lang->action->dynamicAction->task['opened'] = '创建任务';
@@ -548,8 +567,12 @@ $lang->action->label->issue = '问题|issue|view|issueID=%s';
$lang->action->label->design = '设计|design|view|designID=%s';
$lang->action->label->stakeholder = '干系人|stakeholder|view|userID=%s';
$lang->action->label->api = '接口|api|index|libID=%s&moduleID=%s&apiID=%s';
$lang->action->label->kanbanspace = '看板空间|kanban|space|browseType=all';
$lang->action->label->kanbanregion = '看板区域|kanban|view|kanbanID=%s';
$lang->action->label->kanban = '看板|kanban|view|kanbanID=%s';
$lang->action->label->kanbancolumn = '看板列|execution|kanban|execution=%s';
$lang->action->label->kanbanlane = '看板泳道|execution|kanban|execution=%s&type=all';
$lang->action->label->kanbancard = '看板卡片|kanban|view|kanbanID=%s';
$lang->action->label->mr = '合并请求|mr|view|id=%s';
/* Object type. */
+41 -1
View File
@@ -608,6 +608,7 @@ class actionModel extends model
$typeTrashes[$object->objectType][] = $object->objectID;
}
$kanbanModuleList = array('kanbanspace', 'kanban', 'kanbanregion', 'kanbanlane', 'kanbancolumn', 'kanbancard');
foreach($typeTrashes as $objectType => $objectIdList)
{
if(!isset($this->config->objectTables[$objectType])) continue;
@@ -620,6 +621,10 @@ class actionModel extends model
$objectNames['jenkins'] = $this->dao->select("id, $field AS name")->from($table)->where('id')->in($objectIdList)->andWhere('type')->eq('jenkins')->fetchPairs();
$objectNames['gitlab'] = $this->dao->select("id, $field AS name")->from($table)->where('id')->in($objectIdList)->andWhere('type')->eq('gitlab')->fetchPairs();
}
elseif(in_array($objectType, $kanbanModuleList))
{
$objectNames[$objectType] = $this->dao->select("*")->from($table)->where('id')->in($objectIdList)->fetchAll('id');
}
else
{
$objectNames[$objectType] = $this->dao->select("id, $field AS name")->from($table)->where('id')->in($objectIdList)->fetchPairs();
@@ -635,8 +640,24 @@ class actionModel extends model
if(isset($objectNames['gitlab'][$trash->objectID])) $objectType = 'gitlab';
if(isset($objectNames['jenkins'][$trash->objectID])) $objectType = 'jenkins';
$trash->objectType = $objectType;
$trash->objectName = isset($objectNames[$objectType][$trash->objectID]) ? $objectNames[$objectType][$trash->objectID] : '';
}
elseif(in_array($objectType, $kanbanModuleList))
{
if($trash->objectID == 0)
{
$trash->kanbanID = 0;
}
elseif($objectType == 'kanbanregion')
{
$trash->kanbanID = $objectNames[$objectType][$trash->objectID]->kanban;
}
elseif(in_array($objectType, array('kanbanlane', 'kanbancolumn', 'kanbancard')))
{
$trash->kanbanID = $this->loadModel('kanban')->getRegionById($objectNames[$objectType][$trash->objectID]->region)->kanban;
}
$trash->objectName = isset($objectNames[$objectType][$trash->objectID]->name) ? $objectNames[$objectType][$trash->objectID]->name : '';
}
$trash->objectName = isset($objectNames[$objectType][$trash->objectID]) ? $objectNames[$objectType][$trash->objectID] : '';
}
return $trashes;
}
@@ -1273,6 +1294,25 @@ class actionModel extends model
$action->objectLink = helper::createLink('assetlib', 'storyView', "storyID=$action->objectID");
}
if(strpos(',kanbanregion,kanbancard,', ",{$action->objectType},") !== false)
{
$table = $this->config->objectTables[$action->objectType];
$kanbanID = $this->dao->select('kanban')->from($table)->where('id')->eq($action->objectID)->fetch('kanban');
$action->objectLink = helper::createLink('kanban', 'view', "kanbanID=$kanbanID");
}
if(strpos(',kanbanlane,kanbancolumn,', ",{$action->objectType},") !== false and empty($action->extra))
{
$table = $this->config->objectTables[$action->objectType];
$kanbanID = $this->dao->select('t2.kanban')->from($table)->alias('t1')
->leftJoin(TABLE_KANBANREGION)->alias('t2')->on('t1.region=t2.id')
->where('t1.id')->eq($action->objectID)
->fetch('kanban');
$action->objectLink = helper::createLink('kanban', 'view', "kanbanID=$kanbanID");
}
return $action;
}
+8
View File
@@ -71,6 +71,14 @@
{
echo $action->objectName;
}
elseif(in_array($action->objectType, array('kanban', 'kanbanspace')))
{
echo html::a($this->createLink('kanban', 'space'), $action->objectName, '_self', "title={$action->objectName}");
}
elseif(in_array($action->objectType, array('kanbanregion', 'kanbanlane', 'kanbancolumn', 'kanbancard')))
{
echo html::a($this->createLink('kanban', 'view', "kanbanID={$action->kanbanID}"), $action->objectName, '_self', "title={$action->objectName}");
}
else
{
$tab = '';