summaryrefslogtreecommitdiff
path: root/assets/js/src/Board.js
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2016-01-21 22:17:24 -0500
committerFrederic Guillot <fred@kanboard.net>2016-01-21 22:17:24 -0500
commit8bb67dc8cb2c11732f96bc83ea1ebc6621dfbd30 (patch)
treecdd2622454b441fbb7fd3f3ebbfda7e9e9bc87d0 /assets/js/src/Board.js
parent836495b54b4c33a08d5473a362f76db5e452182f (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.js26
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");