diff --git a/module/execution/js/kanban.js b/module/execution/js/kanban.js index ada070e212..bfe4282281 100644 --- a/module/execution/js/kanban.js +++ b/module/execution/js/kanban.js @@ -1274,7 +1274,7 @@ function handleSortCards(event) 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(',')); + var url = createLink('kanban', 'sortCard', 'kanbanID=' + executionID + '&laneID=' + newLaneID + '&columnID=' + newColID + '&cards=' + orders.join(',') + '&cardID=' + toID); $.getJSON(url, function(response) { if(response.result === 'fail') diff --git a/module/execution/js/taskkanban.js b/module/execution/js/taskkanban.js index 6b6db71515..c7c48cf4ff 100644 --- a/module/execution/js/taskkanban.js +++ b/module/execution/js/taskkanban.js @@ -1109,7 +1109,7 @@ function handleSortCards(event) 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(',')); + var url = createLink('kanban', 'sortCard', 'kanbanID=' + executionID + '&laneID=' + newLaneID + '&columnID=' + newColID + '&cards=' + orders.join(',') + '&cardID=' + toID); $.getJSON(url, function(response) { if(response.result === 'fail') diff --git a/module/kanban/control.php b/module/kanban/control.php index 3425d473e2..6eb6747023 100644 --- a/module/kanban/control.php +++ b/module/kanban/control.php @@ -1299,13 +1299,20 @@ class kanban extends control * @param int $laneID * @param int $columnID * @param string $cards + * @param int $cardID * @access public * @return void */ - public function sortCard($kanbanID, $laneID, $columnID, $cards = '') + public function sortCard($kanbanID, $laneID, $columnID, $cards = '', $cardID = 0) { if(empty($cards)) return; + if($cardID) + { + $fromCell = $this->dao->select('cards, lane, column')->from(TABLE_KANBANCELL)->where('cards')->like("%,$cardID,%")->fetch(); + if($fromCell->lane != $laneID or $fromCell->column != $columnID) return; + } + $this->dao->update(TABLE_KANBANCELL)->set('cards')->eq(",$cards,")->where('kanban')->eq($kanbanID)->andWhere('lane')->eq($laneID)->andWhere('`column`')->eq($columnID)->exec(); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index d5aa64c7d9..85182ef50e 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -886,7 +886,6 @@ function finishCard(cardID, kanbanID, regionID) */ function updateRegion(regionID, regionData) { - console.log('> updateRegion', {regionID, regionData}); if(typeof(regionData) == 'undefined') regionData = []; if(!regionID) return false; @@ -1307,7 +1306,7 @@ function handleSortCards(event) orders.splice(orders.indexOf(fromID), 1); orders.splice(orders.indexOf(toID) + (event.insert === 'before' ? 0 : 1), 0, fromID); - var url = createLink('kanban', 'sortCard', 'kanbanID=' + kanbanID + '&laneID=' + newLaneID + '&columnID=' + newColID + '&cards=' + orders.join(',')); + var url = createLink('kanban', 'sortCard', 'kanbanID=' + kanbanID + '&laneID=' + newLaneID + '&columnID=' + newColID + '&cards=' + orders.join(',') + '&cardID=' + fromID); $.getJSON(url, function(response) { if(response.result === 'fail')