Skip to content

Commit b34b31d

Browse files
committed
Fix #627 Compatiblity with Interact.js 1.3.3
1 parent f380320 commit b34b31d

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

src/plugins/sortable/plugin.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ QueryBuilder.define('sortable', function(options) {
2727
var placeholder;
2828
var ghost;
2929
var src;
30+
var moved;
3031

3132
// Init drag and drop
3233
this.on('afterAddRule afterAddGroup', function(e, node) {
@@ -50,6 +51,8 @@ QueryBuilder.define('sortable', function(options) {
5051
.draggable({
5152
allowForm: QueryBuilder.selectors.drag_handle,
5253
onstart: function(event) {
54+
moved = false;
55+
5356
// get model of dragged element
5457
src = self.getModel(event.target);
5558

@@ -73,7 +76,13 @@ QueryBuilder.define('sortable', function(options) {
7376
ghost[0].style.top = event.clientY - 15 + 'px';
7477
ghost[0].style.left = event.clientX - 15 + 'px';
7578
},
76-
onend: function() {
79+
onend: function(event) {
80+
// starting from Interact 1.3.3, onend is called before ondrop
81+
if (event.dropzone) {
82+
moveSortableToTarget(src, $(event.relatedTarget), self);
83+
moved = true;
84+
}
85+
7786
// remove ghost
7887
ghost.remove();
7988
ghost = undefined;
@@ -107,7 +116,9 @@ QueryBuilder.define('sortable', function(options) {
107116
moveSortableToTarget(placeholder, $(event.target), self);
108117
},
109118
ondrop: function(event) {
110-
moveSortableToTarget(src, $(event.target), self);
119+
if (!moved) {
120+
moveSortableToTarget(src, $(event.target), self);
121+
}
111122
}
112123
});
113124

@@ -120,7 +131,9 @@ QueryBuilder.define('sortable', function(options) {
120131
moveSortableToTarget(placeholder, $(event.target), self);
121132
},
122133
ondrop: function(event) {
123-
moveSortableToTarget(src, $(event.target), self);
134+
if (!moved) {
135+
moveSortableToTarget(src, $(event.target), self);
136+
}
124137
}
125138
});
126139
}

0 commit comments

Comments
 (0)