|
|
|
@ -763,7 +763,7 @@
|
|
|
|
|
if (rootEl !== parentEl) { |
|
|
|
|
newIndex = _index(dragEl); |
|
|
|
|
|
|
|
|
|
if (newIndex != -1) { |
|
|
|
|
if (newIndex >= 0) { |
|
|
|
|
// drag from one list and drop into another
|
|
|
|
|
_dispatchEvent(null, parentEl, 'sort', dragEl, rootEl, oldIndex, newIndex); |
|
|
|
|
_dispatchEvent(this, rootEl, 'sort', dragEl, rootEl, oldIndex, newIndex); |
|
|
|
@ -782,7 +782,8 @@
|
|
|
|
|
if (dragEl.nextSibling !== nextEl) { |
|
|
|
|
// Get the index of the dragged element within its parent
|
|
|
|
|
newIndex = _index(dragEl); |
|
|
|
|
if (newIndex != -1) { |
|
|
|
|
|
|
|
|
|
if (newIndex >= 0) { |
|
|
|
|
// drag & drop within the same list
|
|
|
|
|
_dispatchEvent(this, rootEl, 'update', dragEl, rootEl, oldIndex, newIndex); |
|
|
|
|
_dispatchEvent(this, rootEl, 'sort', dragEl, rootEl, oldIndex, newIndex); |
|
|
|
@ -791,7 +792,10 @@
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (Sortable.active) { |
|
|
|
|
// Drag end event
|
|
|
|
|
if (newIndex == null || newIndex === -1) { |
|
|
|
|
newIndex = oldIndex; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
_dispatchEvent(this, rootEl, 'end', dragEl, rootEl, oldIndex, newIndex); |
|
|
|
|
|
|
|
|
|
// Save sorting
|
|
|
|
@ -1154,20 +1158,22 @@
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns the index of an element within its parent |
|
|
|
|
* @param el |
|
|
|
|
* @returns {number} |
|
|
|
|
* @private |
|
|
|
|
* @param {HTMLElement} el |
|
|
|
|
* @return {number} |
|
|
|
|
*/ |
|
|
|
|
function _index(/**HTMLElement*/el) { |
|
|
|
|
function _index(el) { |
|
|
|
|
var index = 0; |
|
|
|
|
|
|
|
|
|
if (!el || !el.parentNode) { |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
var index = 0; |
|
|
|
|
|
|
|
|
|
while (el && (el = el.previousElementSibling)) { |
|
|
|
|
if (el.nodeName.toUpperCase() !== 'TEMPLATE') { |
|
|
|
|
index++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return index; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|