* Finish task #62935.

This commit is contained in:
liumengyi
2022-08-01 15:41:14 +08:00
parent d73e628563
commit dd2c92fb9d
8 changed files with 58 additions and 30 deletions
+2 -1
View File
@@ -36,7 +36,8 @@
.region .kanban-header-col > .title {max-width: 80% !important;}
.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 > span.storyColumn {max-width: 100% !important;}
.region .kanban-header-col > .title > .storyColumn {margin-right: 30px;}
.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;}
.region .kanban-header-col > .title > .error {color: #333333; padding-left: 2px; font-size: 10px; padding-top: 1px; padding-right: 2px;}
+1 -1
View File
@@ -29,7 +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 {max-width: 100% !important;}
.kanban-header-col > .title > .storyColumn + .dropdown-menu {top: 45px; left: auto;}
#kanbanContainer {margin: 0;}
#kanbanContainer > .panel-body {overflow: auto;}
+12 -9
View File
@@ -760,8 +760,14 @@ function renderCount($count, count, column)
{
if(groupBy == 'story' && column.type == 'story')
{
$count.prev().addClass('storyColumn');
$count.prev().parent().append('<span class="caret changeOrderBy"></span>');
var orderButton = '<button class="btn btn-link action storyColumn" type="button" data-toggle="dropdown">'
+ ' <span class="text">' + (kanbanLang.orderList[orderBy] == undefined ? kanbanLang.orderList['pri_asc'] : kanbanLang.orderList[orderBy]) + '</span><span class="caret"></span>'
+ '</button>'
+ '<ul class="dropdown-menu">';
for(var order in kanbanLang.orderList) orderButton += '<li><a href="###" onclick="searchCards(rdSearchValue, \'' + order + '\')">' + kanbanLang.orderList[order] + '</a></li>';
orderButton += '</ul>';
$count.prev().replaceWith(orderButton);
$count.remove();
return;
}
@@ -1590,12 +1596,6 @@ $(function()
$('.color0 .cardcolor').css('border', '1px solid #fff');
});
$(document).on('click', '#kanban span.caret.changeOrderBy', function(event)
{
orderBy = orderBy == 'pri_desc' ? 'pri_asc' : 'pri_desc';
searchCards(rdSearchValue);
})
/* Init sortable */
var sortType = '';
var $cards = null;
@@ -1823,12 +1823,15 @@ function toggleRDSearchBox()
* Search all cards.
*
* @param string $value
* @param string order
*
* @access public
* @return void
*/
function searchCards(value)
function searchCards(value, order = '')
{
rdSearchValue = value;
orderBy = order == '' ? orderBy : order;
$.get(createLink('execution', 'ajaxUpdateKanban', "executionID=" + executionID + "&entertime=0&browseType=" + browseType + "&groupBy=" + groupBy + '&from=RD&searchValue=' + rdSearchValue + '&orderBy=' + orderBy), function(data)
{
lastUpdateData = data;
+15 -11
View File
@@ -341,9 +341,16 @@ function renderColumnCount($count, count, col)
{
if(groupBy == 'story' && col.type == 'story')
{
$count.prev().addClass('storyColumn');
$count.prev().parent().append('<span class="caret changeOrderBy"></span>');
$count.remove();
var orderButton = '<button class="btn btn-link action storyColumn" type="button" data-toggle="dropdown">'
+ ' <span class="text">' + (kanbanLang.orderList[orderBy] == undefined ? kanbanLang.orderList['pri_asc'] : kanbanLang.orderList[orderBy]) + '</span><span class="caret"></span>'
+ '</button>'
+ '<ul class="dropdown-menu">';
for(var order in kanbanLang.orderList) orderButton += '<li><a href="###" onclick="searchCards(searchValue, \'' + order + '\')">' + kanbanLang.orderList[order] + '</a></li>';
orderButton += '</ul>';
$count.siblings('.storyColumn').remove();
$count.prev().replaceWith(orderButton);
$count.hide();
return;
}
@@ -1274,12 +1281,6 @@ $(function()
event.preventDefault();
});
$(document).on('click', '#kanbans span.caret.changeOrderBy', function(event)
{
orderBy = orderBy == 'pri_desc' ? 'pri_asc' : 'pri_desc';
searchCards(searchValue);
})
/* Init contextmenu */
$('#kanbans').on('click', '[data-contextmenu]', function(event)
{
@@ -1339,7 +1340,7 @@ $(function()
lastUpdateData = '';
setInterval(function()
{
$.get(createLink('execution', 'ajaxUpdateKanban', "executionID=" + executionID + "&entertime=" + entertime + "&browseType=" + browseType + "&groupBy=" + groupBy + '&from=execution&searchValue=' + searchValue + '&orderBy' + orderBy), function(data)
$.get(createLink('execution', 'ajaxUpdateKanban', "executionID=" + executionID + "&entertime=" + entertime + "&browseType=" + browseType + "&groupBy=" + groupBy + '&from=execution&searchValue=' + searchValue + '&orderBy=' + orderBy), function(data)
{
if(lastUpdateData == '') lastUpdateData = data;
if(data && lastUpdateData !== data)
@@ -1469,12 +1470,15 @@ function toggleSearchBox()
* Search kanban cards.
*
* @param string value
* @param string order
*
* @access public
* @return void
*/
function searchCards(value)
function searchCards(value, order = '')
{
searchValue = value;
orderBy = order == '' ? orderBy : order;
$.get(createLink('execution', 'ajaxUpdateKanban', "executionID=" + executionID + "&entertime=0&browseType=" + browseType + "&groupBy=" + groupBy + '&from=execution&searchValue=' + value + '&orderBy=' + orderBy), function(data)
{
lastUpdateData = data;
+7 -2
View File
@@ -216,8 +216,13 @@ $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['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['stage_asc'] = 'Story Stage Ascending';
$lang->kanban->orderList['stage_desc'] = 'Story Stage Descending';
$lang->kanban->orderList['assignedTo'] = 'Assigned To';
$lang->kanban->importList = array();
$lang->kanban->importList['off'] = 'Import is not enabled';
+7 -2
View File
@@ -216,8 +216,13 @@ $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['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['stage_asc'] = 'Story Stage Ascending';
$lang->kanban->orderList['stage_desc'] = 'Story Stage Descending';
$lang->kanban->orderList['assignedTo'] = 'Assigned To';
$lang->kanban->importList = array();
$lang->kanban->importList['off'] = 'Import is not enabled';
+7 -2
View File
@@ -216,8 +216,13 @@ $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['pri_asc'] = 'Story Priorité Ascendante';
$lang->kanban->orderList['pri_desc'] = 'Story Priorité Descendante';
$lang->kanban->orderList['id_asc'] = 'Story ID Ascending';
$lang->kanban->orderList['id_desc'] = 'Story ID Descending';
$lang->kanban->orderList['stage_asc'] = 'Story Stage Ascending';
$lang->kanban->orderList['stage_desc'] = 'Story Stage Descending';
$lang->kanban->orderList['assignedTo'] = 'Assigned To';
$lang->kanban->importList = array();
$lang->kanban->importList['off'] = 'Import is not enabled';
+7 -2
View File
@@ -216,8 +216,13 @@ $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['pri_asc'] = '需求优先级正序';
$lang->kanban->orderList['pri_desc'] = '需求优先级倒序';
$lang->kanban->orderList['id_asc'] = '需求ID正序';
$lang->kanban->orderList['id_desc'] = '需求ID倒序';
$lang->kanban->orderList['stage_asc'] = '需求阶段正序';
$lang->kanban->orderList['stage_desc'] = '需求阶段倒序';
$lang->kanban->orderList['assignedTo'] = '指派给';
$lang->kanban->importList = array();
$lang->kanban->importList['off'] = '不启用导入功能';