diff options
| author | 2024-05-28 22:30:45 +0200 | |
|---|---|---|
| committer | 2024-05-28 22:30:45 +0200 | |
| commit | 848c8195ddfbe72c7d87a7c151a8db4356946bd8 (patch) | |
| tree | 3a8af638a5c18652552b0beede525e273ebdec22 /p/scripts/category.js | |
| parent | 9de4f23bb72c9880bfc69f84f48aeb6b0215af54 (diff) | |
Fixed: subscr. mgmg drag&drop (#6508)
Diffstat (limited to 'p/scripts/category.js')
| -rw-r--r-- | p/scripts/category.js | 83 |
1 files changed, 43 insertions, 40 deletions
diff --git a/p/scripts/category.js b/p/scripts/category.js index 1b1f2f192..fc8f8865a 100644 --- a/p/scripts/category.js +++ b/p/scripts/category.js @@ -68,14 +68,14 @@ function init_draggable() { const li_draggable = ev.target.closest ? ev.target.closest(draggable) : null; if (li_draggable) { dragend_process(li_draggable); + li_draggable.classList.remove('dragging'); + const disallowDragging = document.getElementsByClassName('drag-disallowed'); + for (let i = 0; i < disallowDragging.length; i++) { + disallowDragging[i].setAttribute('dropzone', 'move'); + disallowDragging[i].classList.remove('drag-disallowed'); + } + li_draggable.closest('.drag-active').classList.remove('drag-active'); } - li_draggable.classList.remove('dragging'); - const disallowDragging = document.getElementsByClassName('drag-disallowed'); - for (let i = 0; i < disallowDragging.length; i++) { - disallowDragging[i].setAttribute('dropzone', 'move'); - disallowDragging[i].classList.remove('drag-disallowed'); - } - li_draggable.closest('.drag-active').classList.remove('drag-active'); }; dropSection.ondragenter = function (ev) { @@ -116,40 +116,43 @@ function init_draggable() { }; dropSection.ondrop = function (ev) { - const ul_dropzone = ev.target.closest ? ev.target.closest(dropzone) : null; - if (ul_dropzone) { - loading = true; - - const req = new XMLHttpRequest(); - req.open('POST', './?c=feed&a=move', true); - req.responseType = 'json'; - req.onload = function (e) { - if (this.status == 200) { - ul_dropzone.insertAdjacentHTML('afterbegin', dragHtml); - ul_dropzone.firstChild.classList.add('moved'); - ul_dropzone.scrollTop = 0; - const disabledElement = ul_dropzone.getElementsByClassName('disabled'); - if (disabledElement.length > 0) { - disabledElement[0].remove(); + if (dragFeedId) { + const ul_dropzone = ev.target.closest ? ev.target.closest(dropzone) : null; + + if (ul_dropzone) { + loading = true; + + const req = new XMLHttpRequest(); + req.open('POST', './?c=feed&a=move', true); + req.responseType = 'json'; + req.onload = function (e) { + if (this.status == 200) { + ul_dropzone.insertAdjacentHTML('afterbegin', dragHtml); + ul_dropzone.firstChild.classList.add('moved'); + ul_dropzone.scrollTop = 0; + const disabledElement = ul_dropzone.getElementsByClassName('disabled'); + if (disabledElement.length > 0) { + disabledElement[0].remove(); + } + dnd_successful = true; + ul_dropzone.closest('ul').classList.add('drag-drop'); } - dnd_successful = true; - } - }; - req.onloadend = function (e) { - loading = false; - dragFeedId = ''; - dragHtml = ''; - }; - req.setRequestHeader('Content-Type', 'application/json'); - req.send(JSON.stringify({ - f_id: dragFeedId, - c_id: ul_dropzone.getAttribute('data-cat-id'), - _csrf: context.csrf, - })); - - ul_dropzone.closest('ul').classList.add('drag-drop'); - ul_dropzone.closest('ul').classList.remove('drag-hover'); - return false; + }; + req.onloadend = function (e) { + loading = false; + dragFeedId = ''; + dragHtml = ''; + }; + req.setRequestHeader('Content-Type', 'application/json'); + req.send(JSON.stringify({ + f_id: dragFeedId, + c_id: ul_dropzone.getAttribute('data-cat-id'), + _csrf: context.csrf, + })); + + ul_dropzone.closest('ul').classList.remove('drag-hover'); + return false; + } } }; } |
