aboutsummaryrefslogtreecommitdiff
path: root/p/scripts/category.js
diff options
context:
space:
mode:
authorGravatar maTh <1645099+math-GH@users.noreply.github.com> 2024-05-28 22:30:45 +0200
committerGravatar GitHub <noreply@github.com> 2024-05-28 22:30:45 +0200
commit848c8195ddfbe72c7d87a7c151a8db4356946bd8 (patch)
tree3a8af638a5c18652552b0beede525e273ebdec22 /p/scripts/category.js
parent9de4f23bb72c9880bfc69f84f48aeb6b0215af54 (diff)
Fixed: subscr. mgmg drag&drop (#6508)
Diffstat (limited to 'p/scripts/category.js')
-rw-r--r--p/scripts/category.js83
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;
+ }
}
};
}