From 68afb8d701085554a69033f998f4433d5de9a414 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 11 Jun 2024 16:55:05 +0800 Subject: [PATCH 01/19] * [bug#50888,doing,0.1h] add user list method. --- module/kanban/zen.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/module/kanban/zen.php b/module/kanban/zen.php index 525a5078c1..d362e1cbc0 100644 --- a/module/kanban/zen.php +++ b/module/kanban/zen.php @@ -61,4 +61,20 @@ class kanbanZen extends kanban $this->display(); } + + public function setUserAvatar() + { + /* Get user list. */ + $userList = array(); + $users = $this->loadModel('user')->getPairs('noletter|nodeleted'); + $avatarPairs = $this->user->getAvatarPairs('all'); + foreach($avatarPairs as $account => $avatar) + { + if(!isset($users[$account])) continue; + $userList[$account]['realname'] = $users[$account]; + $userList[$account]['avatar'] = $avatar; + } + + $this->view->userList = $userList; + } } From b506bfdb8e78917d8e9ae50e0cd69adb4a730d13 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 11 Jun 2024 16:55:55 +0800 Subject: [PATCH 02/19] * [bug#50888,doing,0.1h] add comment. --- module/kanban/zen.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/module/kanban/zen.php b/module/kanban/zen.php index d362e1cbc0..a2aff04597 100644 --- a/module/kanban/zen.php +++ b/module/kanban/zen.php @@ -62,6 +62,13 @@ class kanbanZen extends kanban $this->display(); } + /** + * 设置用户头像。 + * Set user avatar data. + * + * @access public + * @return void + */ public function setUserAvatar() { /* Get user list. */ @@ -74,6 +81,9 @@ class kanbanZen extends kanban $userList[$account]['realname'] = $users[$account]; $userList[$account]['avatar'] = $avatar; } + $userList['closed']['account'] = 'Closed'; + $userList['closed']['realname'] = 'Closed'; + $userList['closed']['avatar'] = ''; $this->view->userList = $userList; } From 9a751621164ac203f8810f3fcd0e03725609fc11 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 11 Jun 2024 16:59:45 +0800 Subject: [PATCH 03/19] * [bug#50888,doing,0.1h] remove old page config. --- module/index/config.php | 1 + 1 file changed, 1 insertion(+) diff --git a/module/index/config.php b/module/index/config.php index adca3ae48a..e0ae26348b 100644 --- a/module/index/config.php +++ b/module/index/config.php @@ -35,3 +35,4 @@ $config->index->oldPages[] = 'ai-promptview'; $config->index->oldPages[] = 'api-debug'; $config->index->oldPages[] = 'datatable-ajaxoldcustom'; $config->index->oldPages[] = 'weekly-index'; +$config->index->oldPages[] = 'kanban-importticket'; From 530d59a45239a017625d026e2aa215f35b3e20b8 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 11 Jun 2024 17:00:43 +0800 Subject: [PATCH 04/19] * [bug#50888,doing,0.1h] set use avatar list. --- module/kanban/control.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module/kanban/control.php b/module/kanban/control.php index e5498008ff..79755c1ab1 100644 --- a/module/kanban/control.php +++ b/module/kanban/control.php @@ -381,6 +381,8 @@ class kanban extends control $regionID = !isset($regions[$regionID]) ? 'all' : $regionID; $this->session->set('regionID', $regionID, 'kanban'); + $this->kanbanZen->setUserAvatar(); + $this->view->title = $this->lang->kanban->view; $this->view->kanban = $kanban; $this->view->regions = $regions; From 0d23bfba5e9ef1d191ff03374df2e5c7561b0d43 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 11 Jun 2024 17:01:33 +0800 Subject: [PATCH 05/19] * [bug#50888,doing,0.1h] set js vars. --- module/kanban/ui/view.html.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/module/kanban/ui/view.html.php b/module/kanban/ui/view.html.php index 1845236684..33c50ec240 100644 --- a/module/kanban/ui/view.html.php +++ b/module/kanban/ui/view.html.php @@ -63,6 +63,7 @@ jsVar('cardLang', $lang->kanbancard); jsVar('executionLang', $lang->execution); jsVar('releaseLang', $lang->release); jsVar('productplanLang', $lang->productplan); +jsVar('ticketLang', isset($lang->ticket) ? $lang->ticket : ''); jsVar('kanbanID', $kanban->id); jsVar('kanban', $kanban); jsVar('groupCols', $groupCols); @@ -74,6 +75,8 @@ jsVar('canViewPlan', common::hasPriv('productplan', 'view') && $config->vision ! jsVar('canViewRelease', common::hasPriv('release', 'view') && $config->vision != 'lite'); jsVar('canViewExecution', common::hasPriv('execution', 'task') && $config->vision != 'lite'); jsVar('canViewBuild', common::hasPriv('build', 'view') && $config->vision != 'lite'); +jsVar('canViewTicket', common::hasPriv('ticket', 'view')); +jsVar('userList', $userList); dropmenu(set::tab('kanban'), set::objectID($kanban->id)); From d794508021c41e2477fc94b14c8b0ca54daf197e Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 11 Jun 2024 17:07:34 +0800 Subject: [PATCH 06/19] * [bug#50888,doing,0.2h] set card title. --- module/kanban/js/view.ui.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/module/kanban/js/view.ui.js b/module/kanban/js/view.ui.js index d7a54701fc..675ae1499f 100644 --- a/module/kanban/js/view.ui.js +++ b/module/kanban/js/view.ui.js @@ -114,7 +114,7 @@ window.buildColCardActions = function(col) if(kanban.object.indexOf('releases') != -1) items.push({text: kanbanLang.importRelease, url: $.createLink('kanban', 'importRelease', `kanbanID=${kanbanID}®ionID=${col.region}&groupID=${col.group}&columnID=${col.id}`), 'data-toggle': 'modal', 'data-size': 'lg'}); if(kanban.object.indexOf('executions') != -1) items.push({text: kanbanLang.importExecution, url: $.createLink('kanban', 'importExecution', `kanbanID=${kanbanID}®ionID=${col.region}&groupID=${col.group}&columnID=${col.id}`), 'data-toggle': 'modal', 'data-size': 'lg'}); if(kanban.object.indexOf('builds') != -1) items.push({text: kanbanLang.importBuild, url: $.createLink('kanban', 'importBuild', `kanbanID=${kanbanID}®ionID=${col.region}&groupID=${col.group}&columnID=${col.id}`), 'data-toggle': 'modal', 'data-size': 'lg'}); - //{text: kanbanLang.importTicket, url: $.createLink('kanban', 'importTicket', `kanbanID=${kanbanID}®ionID=${col.region}&groupID=${col.group}&columnID=${col.id}`), 'data-toggle': 'modal', 'data-size': 'lg'}, + if(kanban.object.indexOf('tickets') != -1) items.push({text: kanbanLang.importTicket, url: $.createLink('kanban', 'importTicket', `kanbanID=${kanbanID}®ionID=${col.region}&groupID=${col.group}&columnID=${col.id}`), 'data-toggle': 'modal', 'data-type': 'iframe'}), actions.push( { text: kanbanLang.importAB, @@ -301,8 +301,21 @@ window.renderProductplanItem = function(info) info.item.contentClass = 'text-gray clip mr-2'; info.item.footer = {html: statusBox + date} } + window.renderTicketItem = function(info) { + info.item.icon = 'ticket'; + info.item.titleUrl = canViewTicket ? $.createLink('ticket', 'view', `id=${info.item.fromID}`) : ''; + info.item.titleAttrs = {'class': 'card-title clip', 'title': info.item.title}; + + if(info.item.deleted == '0') + { + statusBox = '' + ticketLang.statusList[info.item.objectStatus] + ''; + } + else + { + statusBox = '' + ticketLang.deleted + ''; + } } function renderAvatar(avatarList) From b5077bea4c87ea9fb1039f0b36fa9af00dc38bc5 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 11 Jun 2024 17:08:17 +0800 Subject: [PATCH 07/19] * [bug#50888,done,0.2h] set date and avatar. --- module/kanban/js/view.ui.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/module/kanban/js/view.ui.js b/module/kanban/js/view.ui.js index 675ae1499f..aff42d0b60 100644 --- a/module/kanban/js/view.ui.js +++ b/module/kanban/js/view.ui.js @@ -316,6 +316,26 @@ window.renderTicketItem = function(info) { statusBox = '' + ticketLang.deleted + ''; } + + const date = info.item.deadline && info.item.deadline != '0000-00-00' ? '' + info.item.deadline.slice(5) + ' ' + cardLang.deadlineAB + '' : ''; + + let avatar = ''; + console.log(info.item.assignedTo); + if(info.item.assignedTo && typeof userList[info.item.assignedTo] != 'undefined') + { + user = userList[info.item.assignedTo]; + assignedTo = user.realname; + userAvatar = user.avatar ? "" : assignedTo.substr(0, 1).toUpperCase(); + avatar = "' + info.item.deadline.slice(5) + ' ' + cardLang.deadlineAB + '' : ''; let avatar = ''; - console.log(info.item.assignedTo); if(info.item.assignedTo && typeof userList[info.item.assignedTo] != 'undefined') { - user = userList[info.item.assignedTo]; - assignedTo = user.realname; - userAvatar = user.avatar ? "" : assignedTo.substr(0, 1).toUpperCase(); - avatar = "" : assignedTo.substr(0, 1).toUpperCase(); + + avatar = "" : assignedTo.substr(0, 1).toUpperCase(); + const userAvatar = user.avatar ? "" : info.item.assignedTo.substr(0, 1).toUpperCase(); avatar = " Date: Tue, 11 Jun 2024 15:44:19 +0800 Subject: [PATCH 19/19] * [bug#49988,done,1h,0h] Fix story status error for submit review. --- module/story/model.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/module/story/model.php b/module/story/model.php index 0ea219d9af..5c968cb1c3 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -1324,7 +1324,8 @@ class storyModel extends model } $story->reviewer = implode(',', $story->reviewer); - if($story->reviewer) $story->status = ($this->config->systemMode == 'PLM' and $oldStory->type == 'requirement' and $story->status == 'active' and $this->config->vision == 'rnd') ? 'launched' : 'reviewing'; + if($story->reviewer) $story->status = 'reviewing'; + if($this->config->systemMode == 'PLM' && $this->config->vision == 'rnd' && $oldStory->type == 'requirement' && $story->status == 'active') $story->status = 'launched'; $this->dao->update(TABLE_STORY)->data($story, 'reviewer')->where('id')->in($twinsIdList)->exec();