diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-01-21 22:17:24 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-01-21 22:17:24 -0500 |
commit | 8bb67dc8cb2c11732f96bc83ea1ebc6621dfbd30 (patch) | |
tree | cdd2622454b441fbb7fd3f3ebbfda7e9e9bc87d0 /assets/js/src/Board.js | |
parent | 836495b54b4c33a08d5473a362f76db5e452182f (diff) |
Avoid to send XHR request when a task has not moved after a drag and drop
Diffstat (limited to 'assets/js/src/Board.js')
-rw-r--r-- | assets/js/src/Board.js | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/assets/js/src/Board.js b/assets/js/src/Board.js index 3aabf472..c99f3cd3 100644 --- a/assets/js/src/Board.js +++ b/assets/js/src/Board.js @@ -108,16 +108,22 @@ Board.prototype.dragAndDrop = function() { placeholder: "draggable-placeholder", items: ".draggable-item", stop: function(event, ui) { - var taskId = ui.item.attr('data-task-id'); - ui.item.removeClass("draggable-item-selected"); - self.changeTaskState(taskId); - - self.save( - taskId, - ui.item.parent().attr("data-column-id"), - ui.item.index() + 1, - ui.item.parent().attr('data-swimlane-id') - ); + var task = ui.item; + var taskId = task.attr('data-task-id'); + var taskPosition = task.attr('data-position'); + var taskColumnId = task.attr('data-column-id'); + var taskSwimlaneId = task.attr('data-swimlane-id'); + + var newColumnId = task.parent().attr("data-column-id"); + var newSwimlaneId = task.parent().attr('data-swimlane-id'); + var newPosition = task.index() + 1; + + task.removeClass("draggable-item-selected"); + + if (newColumnId != taskColumnId || newSwimlaneId != taskSwimlaneId || newPosition != taskPosition) { + self.changeTaskState(taskId); + self.save(taskId, newColumnId, newPosition, newSwimlaneId); + } }, start: function(event, ui) { ui.item.addClass("draggable-item-selected"); |