From 91055beb87140eeef4f362c48e8e1433bc7cba2c Mon Sep 17 00:00:00 2001 From: sunguangming Date: Thu, 9 Nov 2023 09:37:07 +0800 Subject: [PATCH] * Remove useless code, add render avatar. --- module/kanban/control.php | 11 ----- module/kanban/js/view.ui.js | 36 +++++++++++++--- module/kanban/model.php | 50 ++++++++++++++-------- module/kanban/ui/viewarchivedcard.html.php | 2 + 4 files changed, 62 insertions(+), 37 deletions(-) diff --git a/module/kanban/control.php b/module/kanban/control.php index 5c8182b9ab..7c2adfd9d0 100644 --- a/module/kanban/control.php +++ b/module/kanban/control.php @@ -391,7 +391,6 @@ class kanban extends control public function view($kanbanID, $regionID = '') { $kanban = $this->kanban->getByID($kanbanID); - $users = $this->loadModel('user')->getPairs('noletter|nodeleted'); if(!$kanban) { @@ -402,22 +401,12 @@ class kanban extends control $kanbanIdList = $this->kanban->getCanViewObjects(); if(!$this->app->user->admin and !in_array($kanbanID, $kanbanIdList)) return print(js::error($this->lang->kanban->accessDenied) . js::locate('back')); - $userList = array(); - $avatarPairs = $this->dao->select('account, avatar')->from(TABLE_USER)->where('deleted')->eq(0)->fetchPairs(); - foreach($avatarPairs as $account => $avatar) - { - if(!$avatar) continue; - $userList[$account]['avatar'] = $avatar; - } - $regions = $this->kanban->getRegionPairs($kanbanID); if(!$regionID) $regionID = $this->session->regionID ? $this->session->regionID : 'all'; $regionID = !isset($regions[$regionID]) ? 'all' : $regionID; $this->session->set('regionID', $regionID, 'kanban'); - $this->view->users = $users; $this->view->title = $this->lang->kanban->view; - $this->view->userList = $userList; $this->view->kanban = $kanban; $this->view->regions = $regions; $this->view->kanbanList = $this->kanban->getKanbanData($kanbanID, $regionID == 'all' ? '' : array($regionID)); diff --git a/module/kanban/js/view.ui.js b/module/kanban/js/view.ui.js index bd2dca7f5e..3935eb6932 100644 --- a/module/kanban/js/view.ui.js +++ b/module/kanban/js/view.ui.js @@ -143,13 +143,13 @@ window.getItem = function(info) beginAndEnd = formatDate(begin) + ' ~ ' + formatDate(end); } - let avatar = ""); + const avatar = renderAvatar(info.item.avatarList); const content = `
${info.item.pri} ${beginAndEnd} -
${avatar}
+
${avatar}
`; @@ -164,6 +164,28 @@ window.getItem = function(info) } } +function renderAvatar(avatarList) +{ + if(avatarList.length == 0) + { + return '
'; + } + + let assignees = '
'; + let count = 0; + for(let avatar of avatarList) + { + if(count > 2) break; + assignees += `
${avatar}
`; + count ++; + } + + if(count > 2) assignees += '
...
'; + assignees += '
'; + + return assignees; +} + window.getItemActions = function(item) { return [{ @@ -324,26 +346,26 @@ window.loadMore = function(type, regionID) window.fullScreen = function() { - var element = document.getElementById('kanbanList'); - var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullscreen; + let element = document.getElementById('kanbanList'); + let requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullscreen; if(requestMethod) { - var afterEnterFullscreen = function() + let afterEnterFullscreen = function() { $('#kanbanList').addClass('fullscreen').css('background', '#fff'); window.hideAllAction(); $.cookie.set('isFullScreen', 1); }; - var whenFailEnterFullscreen = function() + let whenFailEnterFullscreen = function() { exitFullScreen(); }; try { - var result = requestMethod.call(element); + let result = requestMethod.call(element); if(result && (typeof result.then === 'function' || result instanceof window.Promise)) { result.then(afterEnterFullscreen).catch(whenFailEnterFullscreen); diff --git a/module/kanban/model.php b/module/kanban/model.php index 0fb67c0227..f46827a92e 100755 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -1236,9 +1236,9 @@ class kanbanModel extends model ->fetchAll(); $actions = array('editCard', 'archiveCard', 'deleteCard', 'moveCard', 'setCardColor', 'viewCard', 'sortCard', 'viewExecution', 'viewPlan', 'viewRelease', 'viewBuild', 'viewTicket', 'activateCard', 'finishCard'); - $userAvatars = $this->loadModel('user')->getAvatarPairs(); - $users = $this->loadModel('user')->getPairs('noletter|nodeleted'); $cardGroup = array(); + $avatarPairs = $this->loadModel('user')->getAvatarPairs(); + $users = $this->loadModel('user')->getPairs('noletter'); foreach($cellList as $cell) { $cardIdList = array_filter(explode(',', $cell->cards)); @@ -1251,24 +1251,36 @@ class kanbanModel extends model $card = zget($cards, $cardID); $item = array(); - $item['column'] = $cell->column; - $item['lane'] = $cell->lane; - $item['title'] = htmlspecialchars_decode($card->name); - $item['id'] = $card->id; - $item['name'] = $card->id; - $item['pri'] = $card->pri; - $item['begin'] = $card->begin; - $item['end'] = $card->end; - $item['group'] = $card->group; - $item['region'] = $card->region; - $item['color'] = $card->color; - $item['progress'] = $card->progress; - $item['realname'] = zget($users, $card->assignedTo, ''); - $item['fromType'] = $card->fromType; + $item['column'] = $cell->column; + $item['lane'] = $cell->lane; + $item['title'] = htmlspecialchars_decode($card->name); + $item['id'] = $card->id; + $item['name'] = $card->id; + $item['pri'] = $card->pri; + $item['begin'] = $card->begin; + $item['end'] = $card->end; + $item['group'] = $card->group; + $item['region'] = $card->region; + $item['color'] = $card->color; + $item['progress'] = $card->progress; + $item['assignedTo'] = $card->assignedTo; + $item['fromType'] = $card->fromType; + $item['avatarList'] = array(); + $item['realnames'] = ''; - $userAvatar = zget($userAvatars, $card->assignedTo, ''); - $userAvatar = $userAvatar ? "" : strtoupper(mb_substr($card->assignedTo, 0, 1, 'utf-8')); - $item['uavatar'] = $userAvatar; + if($card->assignedTo) + { + $assignedToList = explode(',', $card->assignedTo); + foreach($assignedToList as $account) + { + if(!$account) continue; + + $userAvatar = zget($avatarPairs, $account, ''); + $userAvatar = $userAvatar ? "" : strtoupper(mb_substr($account, 0, 1, 'utf-8')); + $item['avatarList'][] = $userAvatar; + $item['realnames'] .= zget($users, $account, '') . ' '; + } + } foreach($actions as $action) { diff --git a/module/kanban/ui/viewarchivedcard.html.php b/module/kanban/ui/viewarchivedcard.html.php index 54276587f9..0f5d3590ac 100644 --- a/module/kanban/ui/viewarchivedcard.html.php +++ b/module/kanban/ui/viewarchivedcard.html.php @@ -45,6 +45,8 @@ foreach($cards as $card) $assignedToBox[] = userAvatar(set::avatar($usersAvatar[$account]), set::account($account), set::realname($users[$account]), set::size('sm')); $count ++; } + + if($count > 2) $assignedToBox[] = span(setClass('font-bold'), '...'); } } else