diff --git a/module/execution/control.php b/module/execution/control.php index 9a2d2eabee..d1b3a9c8f4 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -2473,7 +2473,7 @@ class execution extends control unset($this->lang->kanban->type['all']); } - if($groupBy == 'story' and $browseType == 'task' and !isset($this->lang->kanban->orderList[$orderBy])) $orderBy = 'pri_asc'; + if($groupBy == 'story' and $browseType == 'task' and !isset($this->lang->kanban->orderList[$orderBy])) $orderBy = 'id_asc'; $kanbanGroup = $this->kanban->getExecutionKanban($executionID, $browseType, $groupBy, '', $orderBy); if(empty($kanbanGroup)) { diff --git a/module/execution/css/kanban.css b/module/execution/css/kanban.css index 8fd1aef6f0..e167b91aba 100644 --- a/module/execution/css/kanban.css +++ b/module/execution/css/kanban.css @@ -37,6 +37,7 @@ .region .kanban-header-col > .title {margin: 0} .region .kanban-header-col > .title > span {display: inline-block; overflow: hidden; padding-right:2px; position: initial; max-width: 85px !important;} .region .kanban-header-col > .title > .storyColumn {margin-right: 30px;} +.region .kanban-header-col > .title > .storyColumn .text {font-weight: 700; color:rgb(51, 51, 51);} .region .kanban-header-col > .title > .storyColumn + .dropdown-menu {top: 45px; left: auto;} .region .kanban-header-col > .title > .text-grey {opacity: .5; font-weight: bold; color: #8b91a2;} .region .kanban-header-col > .title > .count {opacity: .5; font-weight: bold; color: #8b91a2;} @@ -116,3 +117,7 @@ #rdKanbanSearchInput {width: 150px;} #rdSearchBox {display: none; width: 150px;} .btn-link.querybox-toggle {background-color: rgba(0,0,0,0);} + +#kanban .kanban-affixed .kanban-header-col .title.action-dbc {pointer-events: none;} +#kanban .kanban-affixed .kanban-header-col .title.action-dbc .storyColumn .text {color: #fff;} +#kanban .kanban-affixed .kanban-header-col .title.action-dbc .storyColumn .caret {display: none;} diff --git a/module/execution/css/taskkanban.css b/module/execution/css/taskkanban.css index 29bf6df0ce..09efcb06c9 100644 --- a/module/execution/css/taskkanban.css +++ b/module/execution/css/taskkanban.css @@ -29,6 +29,7 @@ .kanban-affixed .kanban-header-col > .title > .text, .kanban-affixed .kanban-header-col > .title > .count {color: #fff!important;} .kanban-header-col > .title > .text {max-width: 110px !important;} +.kanban-header-col > .title > .storyColumn .text {font-weight: 700; color:rgb(51, 51, 51);} .kanban-header-col > .title > .storyColumn + .dropdown-menu {top: 45px; left: auto;} #kanbanContainer {margin: 0;} @@ -68,3 +69,7 @@ #teskKanbanSearchInput {width: 150px;} #searchBox {display: none; width: 150px;} .btn-link.querybox-toggle {background-color: rgba(0,0,0,0);} + +#kanbans .kanban-affixed .kanban-header-col .title.action-dbc {pointer-events: none;} +#kanbans .kanban-affixed .kanban-header-col .title.action-dbc .storyColumn .text {color: #fff;} +#kanbans .kanban-affixed .kanban-header-col .title.action-dbc .storyColumn .caret {display: none;} diff --git a/module/execution/js/kanban.js b/module/execution/js/kanban.js index bace521740..3e8b095cf7 100644 --- a/module/execution/js/kanban.js +++ b/module/execution/js/kanban.js @@ -361,6 +361,7 @@ function hideKanbanAction() $('.contextmenu').removeClass('contextmenu-show'); $('.contextmenu .contextmenu-menu').removeClass('open').removeClass('in'); $('#moreTasks, #moreColumns').animate({right: -400}, 500); + $('.storyColumn').parent().removeClass('open'); } /** @@ -764,7 +765,7 @@ function renderCount($count, count, column) + ' ' + (kanbanLang.orderList[orderBy] == undefined ? kanbanLang.orderList['pri_asc'] : kanbanLang.orderList[orderBy]) + '' + '' + '
'; $count.prev().replaceWith(orderButton); @@ -1596,6 +1597,11 @@ $(function() $('.color0 .cardcolor').css('border', '1px solid #fff'); }); + document.addEventListener('scroll', function() + { + hideKanbanAction(); + }, true); + /* Init sortable */ var sortType = ''; var $cards = null; diff --git a/module/execution/js/taskkanban.js b/module/execution/js/taskkanban.js index b7f1befcab..eeb75b21bf 100644 --- a/module/execution/js/taskkanban.js +++ b/module/execution/js/taskkanban.js @@ -345,7 +345,7 @@ function renderColumnCount($count, count, col) + ' ' + (kanbanLang.orderList[orderBy] == undefined ? kanbanLang.orderList['pri_asc'] : kanbanLang.orderList[orderBy]) + '' + '' + ''; $count.siblings('.storyColumn').remove(); @@ -1333,6 +1333,11 @@ $(function() } }); + document.addEventListener('scroll', function() + { + $('.storyColumn').parent().removeClass('open'); + }, true); + $('#type_chosen .chosen-single span').prepend(''); $('#group_chosen .chosen-single span').prepend(kanbanLang.laneGroup + ': '); diff --git a/module/kanban/lang/de.php b/module/kanban/lang/de.php index 5aecfc67fb..ba65456908 100644 --- a/module/kanban/lang/de.php +++ b/module/kanban/lang/de.php @@ -216,10 +216,10 @@ $lang->kanban->error->childLimitNote = 'The sum of products in the child colu $lang->kanban->error->importObjNotEmpty = 'Please select at least one import object.'; $lang->kanban->error->childLimitEmpty = 'Please set the WIP quantity of the sub column before operation.'; -$lang->kanban->orderList['pri_asc'] = 'Story Priority Ascending'; -$lang->kanban->orderList['pri_desc'] = 'Story Priority Descending'; $lang->kanban->orderList['id_asc'] = 'Story ID Ascending'; $lang->kanban->orderList['id_desc'] = 'Story ID Descending'; +$lang->kanban->orderList['pri_asc'] = 'Story Priority Ascending'; +$lang->kanban->orderList['pri_desc'] = 'Story Priority Descending'; $lang->kanban->orderList['stage_asc'] = 'Story Stage Ascending'; $lang->kanban->orderList['stage_desc'] = 'Story Stage Descending'; $lang->kanban->orderList['assignedTo'] = 'Assigned To'; diff --git a/module/kanban/lang/en.php b/module/kanban/lang/en.php index 5debde3b40..67d89c12ee 100644 --- a/module/kanban/lang/en.php +++ b/module/kanban/lang/en.php @@ -216,10 +216,10 @@ $lang->kanban->error->childLimitNote = 'The sum of products in the child colu $lang->kanban->error->importObjNotEmpty = 'Please select at least one import object.'; $lang->kanban->error->childLimitEmpty = 'Please set the WIP quantity of the sub column before operation.'; -$lang->kanban->orderList['pri_asc'] = 'Story Priority Ascending'; -$lang->kanban->orderList['pri_desc'] = 'Story Priority Descending'; $lang->kanban->orderList['id_asc'] = 'Story ID Ascending'; $lang->kanban->orderList['id_desc'] = 'Story ID Descending'; +$lang->kanban->orderList['pri_asc'] = 'Story Priority Ascending'; +$lang->kanban->orderList['pri_desc'] = 'Story Priority Descending'; $lang->kanban->orderList['stage_asc'] = 'Story Stage Ascending'; $lang->kanban->orderList['stage_desc'] = 'Story Stage Descending'; $lang->kanban->orderList['assignedTo'] = 'Assigned To'; diff --git a/module/kanban/lang/fr.php b/module/kanban/lang/fr.php index 4ee651d438..c05115c7ea 100644 --- a/module/kanban/lang/fr.php +++ b/module/kanban/lang/fr.php @@ -216,10 +216,10 @@ $lang->kanban->error->childLimitNote = 'The sum of products in the child colu $lang->kanban->error->importObjNotEmpty = 'Please select at least one import object.'; $lang->kanban->error->childLimitEmpty = 'Please set the WIP quantity of the sub column before operation.'; -$lang->kanban->orderList['pri_asc'] = 'Story Priorité Ascendante'; -$lang->kanban->orderList['pri_desc'] = 'Story Priorité Descendante'; $lang->kanban->orderList['id_asc'] = 'Story ID Ascendante'; $lang->kanban->orderList['id_desc'] = 'Story ID Descendante'; +$lang->kanban->orderList['pri_asc'] = 'Story Priorité Ascendante'; +$lang->kanban->orderList['pri_desc'] = 'Story Priorité Descendante'; $lang->kanban->orderList['stage_asc'] = 'Story Phase Ascendante'; $lang->kanban->orderList['stage_desc'] = 'Story Phase Descendante'; $lang->kanban->orderList['assignedTo'] = 'Assigné à'; diff --git a/module/kanban/lang/zh-cn.php b/module/kanban/lang/zh-cn.php index 4476875b89..43630355bd 100644 --- a/module/kanban/lang/zh-cn.php +++ b/module/kanban/lang/zh-cn.php @@ -216,10 +216,10 @@ $lang->kanban->error->childLimitNote = '子列在制品数量之和不能大 $lang->kanban->error->importObjNotEmpty = '请至少选择一个导入对象'; $lang->kanban->error->childLimitEmpty = '请先设置子列的在制品数量后再操作'; -$lang->kanban->orderList['pri_asc'] = '需求优先级正序'; -$lang->kanban->orderList['pri_desc'] = '需求优先级倒序'; $lang->kanban->orderList['id_asc'] = '需求ID正序'; $lang->kanban->orderList['id_desc'] = '需求ID倒序'; +$lang->kanban->orderList['pri_asc'] = '需求优先级正序'; +$lang->kanban->orderList['pri_desc'] = '需求优先级倒序'; $lang->kanban->orderList['stage_asc'] = '需求阶段正序'; $lang->kanban->orderList['stage_desc'] = '需求阶段倒序'; $lang->kanban->orderList['assignedTo'] = '指派给'; diff --git a/module/kanban/model.php b/module/kanban/model.php index 7dff2257ac..f4c67e50d7 100644 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -1393,7 +1393,7 @@ class kanbanModel extends model * @access public * @return array */ - public function getExecutionKanban($executionID, $browseType = 'all', $groupBy = 'default', $searchValue = '', $orderBy = 'pri_asc') + public function getExecutionKanban($executionID, $browseType = 'all', $groupBy = 'default', $searchValue = '', $orderBy = 'id_asc') { if($groupBy != 'default') return $this->getKanban4Group($executionID, $browseType, $groupBy, $searchValue, $orderBy); @@ -1521,7 +1521,7 @@ class kanbanModel extends model * @access public * @return array */ - public function getKanban4Group($executionID, $browseType, $groupBy, $searchValue = '', $orderBy = 'pri_asc') + public function getKanban4Group($executionID, $browseType, $groupBy, $searchValue = '', $orderBy = 'id_asc') { /* Get card data. */ $cardList = array(); @@ -1547,7 +1547,7 @@ class kanbanModel extends model if($browseType == 'bug') $bugCardMenu = $this->getKanbanCardMenu($executionID, $cardList, 'bug'); if($browseType == 'task') $taskCardMenu = $this->getKanbanCardMenu($executionID, $cardList, 'task'); - if($groupBy == 'story' and $browseType == 'task' and !isset($this->lang->kanban->orderList[$orderBy])) $orderBy = 'pri_asc'; + if($groupBy == 'story' and $browseType == 'task' and !isset($this->lang->kanban->orderList[$orderBy])) $orderBy = 'id_asc'; $lanes = $this->getLanes4Group($executionID, $browseType, $groupBy, $cardList, $orderBy); if(empty($lanes)) return array(); @@ -1720,7 +1720,7 @@ class kanbanModel extends model * * @return array */ - public function getLanes4Group($executionID, $browseType, $groupBy, $cardList, $orderBy = 'pri_asc') + public function getLanes4Group($executionID, $browseType, $groupBy, $cardList, $orderBy = 'id_asc') { $lanes = array(); $groupByList = array(); @@ -2238,7 +2238,7 @@ class kanbanModel extends model if(isset($_POST['team']) or isset($_POST['whitelist'])) { $type = isset($_POST['team']) ? 'team' : 'whitelist'; - $kanbanMembers = empty($kanban->{$type}) ? array() : explode(',', $kanban->{$type}); + $kanbanMembers = empty($kanban->{$type}) ? array() : explode(',', $kanban->{$type}); $this->addSpaceMembers($kanban->space, $type, $kanbanMembers); } @@ -2293,7 +2293,7 @@ class kanbanModel extends model if(isset($_POST['team']) or isset($_POST['whitelist'])) { $type = isset($_POST['team']) ? 'team' : 'whitelist'; - $kanbanMembers = empty($kanban->{$type}) ? array() : explode(',', $kanban->{$type}); + $kanbanMembers = empty($kanban->{$type}) ? array() : explode(',', $kanban->{$type}); $this->addSpaceMembers($kanban->space, $type, $kanbanMembers); } @@ -2595,7 +2595,7 @@ class kanbanModel extends model { $addMembers = implode(',', $addMembers); $members .= ',' . trim($addMembers, ','); - $this->dao->update(TABLE_KANBANSPACE)->set($type)->eq($members)->where('id')->eq($spaceID)->exec(); + $this->dao->update(TABLE_KANBANSPACE)->set($type)->eq($members)->where('id')->eq($spaceID)->exec(); } }