From 08c7f0cc5087be96fe30b91ab6485c949d6ac317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B9=BF=E6=98=8E?= Date: Wed, 22 Dec 2021 10:31:43 +0800 Subject: [PATCH 1/2] * Finish task #46161. --- module/group/lang/resource.php | 2 ++ module/kanban/control.php | 19 ++++++++++++++ module/kanban/css/view.css | 2 ++ module/kanban/js/view.js | 4 +-- module/kanban/lang/en.php | 1 + module/kanban/lang/zh-cn.php | 1 + module/kanban/model.php | 45 +++++++++++++++++++++++++++++++++- 7 files changed, 71 insertions(+), 3 deletions(-) diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index 916fd30b7d..833b48812a 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -632,6 +632,7 @@ $lang->resource->kanban->delete = 'delete'; $lang->resource->kanban->createRegion = 'createRegion'; $lang->resource->kanban->editRegion = 'editRegion'; $lang->resource->kanban->sortRegion = 'sortRegion'; +$lang->resource->kanban->sortGroup = 'sortGroup'; $lang->resource->kanban->deleteRegion = 'deleteRegion'; $lang->resource->kanban->createLane = 'createLane'; $lang->resource->kanban->setLane = 'setLane'; @@ -670,6 +671,7 @@ $lang->kanban->methodOrder[55] = 'delete'; $lang->kanban->methodOrder[60] = 'createRegion'; $lang->kanban->methodOrder[65] = 'editRegion'; $lang->kanban->methodOrder[70] = 'sortRegion'; +$lang->kanban->methodOrder[72] = 'sortGroup'; $lang->kanban->methodOrder[75] = 'deleteRegion'; $lang->kanban->methodOrder[80] = 'createLane'; $lang->kanban->methodOrder[85] = 'setLane'; diff --git a/module/kanban/control.php b/module/kanban/control.php index cda9630753..2ba58cb7a4 100644 --- a/module/kanban/control.php +++ b/module/kanban/control.php @@ -371,6 +371,25 @@ class kanban extends control return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess)); } + /** + * Sort group. + * + * @param int $region + * @param int $groups + * @access public + * @return void + */ + public function sortGroup($region, $groups) + { + $groups = array_filter(explode(',', trim($groups, ','))); + if(empty($groups)) return $this->send(array('result' => 'fail', 'message' => 'No groups to sort.')); + + $this->kanban->sortGroup($region, $groups); + if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); + + return $this->send(array('result' => 'success')); + } + /** * Delete a region * diff --git a/module/kanban/css/view.css b/module/kanban/css/view.css index 42898f7ffb..f59ed692f9 100644 --- a/module/kanban/css/view.css +++ b/module/kanban/css/view.css @@ -14,6 +14,8 @@ body {background-color: #fff} .dropdown-menu > li {padding: 0 10px;} .dropdown-menu > li > a > .icon {position: relative; left: -5px;} +.scrollbar-hover {max-height: 2000px; overflow: scroll !important;} + .region {border: 1px solid #dcdcdc; margin-bottom: 20px;} .region .region-header {padding: 10px;} .region .region-header span {font-size: 14px; color: #999EAB} diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index f200481947..a2295dd080 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -23,18 +23,18 @@ function fullScreen() var element = document.getElementById('kanban'); var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullscreen; - $('.region-header .action').attr('disabled', true); if(requestMethod) { var afterEnterFullscreen = function() { + $('#kanban').addClass('scrollbar-hover'); $('#kanban').css('background', '#fff'); $.cookie('isFullScreen', 1); }; var whenFailEnterFullscreen = function(error) { - $.cookie('isFullScreen', 0); + exitFullScreen(); }; try diff --git a/module/kanban/lang/en.php b/module/kanban/lang/en.php index e01d99d2f6..f400689e02 100644 --- a/module/kanban/lang/en.php +++ b/module/kanban/lang/en.php @@ -13,6 +13,7 @@ $lang->kanban->delete = 'Delete Kanban'; $lang->kanban->createRegion = 'Create Region'; $lang->kanban->editRegion = 'Edit Region'; $lang->kanban->sortRegion = 'Sort Region'; +$lang->kanban->sortGroup = 'Sort Group'; $lang->kanban->deleteRegion = 'Delete Region'; $lang->kanban->createLane = 'Create Lane'; $lang->kanban->editLane = 'Edit Lane'; diff --git a/module/kanban/lang/zh-cn.php b/module/kanban/lang/zh-cn.php index a5e84fc449..8e098bdbad 100644 --- a/module/kanban/lang/zh-cn.php +++ b/module/kanban/lang/zh-cn.php @@ -13,6 +13,7 @@ $lang->kanban->delete = '删除看板'; $lang->kanban->createRegion = '创建区域'; $lang->kanban->editRegion = '编辑区域'; $lang->kanban->sortRegion = '区域排序'; +$lang->kanban->sortGroup = '泳道组排序'; $lang->kanban->deleteRegion = '删除区域'; $lang->kanban->createLane = '创建泳道'; $lang->kanban->editLane = '泳道设置'; diff --git a/module/kanban/model.php b/module/kanban/model.php index edfc9d2def..1698d1d19f 100644 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -543,7 +543,7 @@ class kanbanModel extends model { return $this->dao->select('*')->from(TABLE_KANBANGROUP) ->where('region')->in($regions) - ->orderBy('id_asc') + ->orderBy('order') ->fetchGroup('region', 'id'); } @@ -1881,6 +1881,34 @@ class kanbanModel extends model $this->lang->switcherMenu = $switcher; } + /** + * Sort kanban group. + * + * @param int $region + * @param array $groups + * @access public + * @return void + */ + public function sortGroup($region, $groups) + { + $this->loadModel('action'); + + $groupList = $this->getGroupList($region); + + $order = 1; + foreach($groups as $groupID) + { + if(!$groupID) continue; + if(!isset($groupList[$groupID])) continue; + + $this->dao->update(TABLE_KANBANGROUP)->set('`order`')->eq($order)->where('id')->eq($groupID)->exec(); + + $order++; + } + + return !dao::isError(); + } + /** * Move a card. * @@ -2018,6 +2046,21 @@ class kanbanModel extends model ->fetchGroup('space', 'id'); } + /** + * Get group list by region. + * + * @param int $region + * @access public + * @return array + */ + public function getGroupList($region) + { + return $this->dao->select('*')->from(TABLE_KANBANGROUP) + ->where('region')->eq($region) + ->orderBy('order') + ->fetchAll('id'); + } + /** * Get column by id. * From 19f32378b0147ac7d6472edd5d0715aadb45bbd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B9=BF=E6=98=8E?= Date: Wed, 22 Dec 2021 10:48:33 +0800 Subject: [PATCH 2/2] * Fix code details. --- module/kanban/model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/kanban/model.php b/module/kanban/model.php index 1698d1d19f..9b99243d0e 100644 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -1887,7 +1887,7 @@ class kanbanModel extends model * @param int $region * @param array $groups * @access public - * @return void + * @return bool */ public function sortGroup($region, $groups) {