* Finish task #57090.

This commit is contained in:
liumengyi
2022-06-14 13:56:38 +08:00
parent 347fcb16c7
commit 2d4f3be98a
+56 -8
View File
@@ -856,13 +856,6 @@ function handleFinishDrop(event)
$('#kanbans').find('.can-drop-here').removeClass('can-drop-here');
}
/** Handle sort cards in column */
function handleSortColCards()
{
/* TODO: handle sort cards from column contextmenu */
return false;
}
/**
* Create column menu
* @returns {Object[]}
@@ -1096,6 +1089,60 @@ window.affixKanbanHeader = function($kanbanBoard, affixed)
$kanbanBoard.css('padding-top', affixed ? $header.outerHeight() : '');
}
/**
* Handle sort cards.
*
* @param object event
* @access public
* @return void
*/
function handleSortCards(event)
{
if(groupBy != 'default') return;
var newLaneID = event.element.closest('.kanban-lane').data('id');
var newColID = event.element.closest('.kanban-col').data('id');
var cards = event.element.closest('.kanban-lane-items').data('cards');
var orders = cards.map(function(card){return card.id});
var fromID = String(event.element.data('id'));
var toID = String(event.target.data('id'));
orders.splice(orders.indexOf(fromID), 1);
orders.splice(orders.indexOf(toID) + (event.insert === 'before' ? 0 : 1), 0, fromID);
var url = createLink('kanban', 'sortCard', 'kanbanID=' + executionID + '&laneID=' + newLaneID + '&columnID=' + newColID + '&cards=' + orders.join(','));
$.getJSON(url, function(response)
{
if(response.result === 'fail')
{
if(typeof response.message === 'string' && response.message.length)
{
bootbox.alert(response.message);
}
setTimeout(function(){return location.reload()}, 3000);
}
else
{
$.get(createLink('execution', 'ajaxUpdateKanban', "executionID=" + executionID + "&entertime=0&browseType=" + browseType + "&groupBy=" + groupBy + '&from=execution'), function(data)
{
if(data && lastUpdateData !== data)
{
lastUpdateData = data;
kanbanGroup = $.parseJSON(data);
var kanbanLane = '';
for(var i in kanbanList)
{
if(kanbanList[i] == 'story') kanbanLane = kanbanGroup.story;
if(kanbanList[i] == 'bug') kanbanLane = kanbanGroup.bug;
if(kanbanList[i] == 'task') kanbanLane = kanbanGroup.task;
if(browseType == kanbanList[i] || browseType == 'all') updateKanban(kanbanList[i], kanbanLane);
}
}
});
}
});
}
/* Example code: */
$(function()
{
@@ -1129,6 +1176,7 @@ $(function()
onRenderHeaderCol: renderHeaderCol,
onRenderLaneName: renderLaneName,
onRenderCount: renderColumnCount,
sortable: handleSortCards,
};
/* Create kanban */
@@ -1215,7 +1263,7 @@ $(function()
$('#group_chosen .chosen-single span').prepend(kanbanLang.laneGroup + ': ');
/* Ajax update kanban. */
var lastUpdateData;
lastUpdateData = '';
setInterval(function()
{
$.get(createLink('execution', 'ajaxUpdateKanban', "executionID=" + executionID + "&entertime=" + entertime + "&browseType=" + browseType + "&groupBy=" + groupBy + '&from=execution&searchValue=' + searchValue), function(data)