From 2c0d3e1dd0a3df01c8adea0de5f2826f0bcb9434 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Fri, 25 Jul 2014 11:40:37 -0400 Subject: [PATCH] Fix drag-n-drop after folder move/create (#1489648) --- program/js/treelist.js | 13 +++++++++++-- program/js/app.js | 3 +++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index a489628..f25b808 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -5891,6 +5891,9 @@ if (!this.gui_objects.subscriptionlist) return false; + // disable drag-n-drop temporarily + this.subscription_list.draggable('destroy').droppable('destroy'); + var row, n, tmp, tmp_name, rowid, collator, pos, p, parent = '', folders = [], list = [], slist = [], list_element = $(this.gui_objects.subscriptionlist); diff --git a/program/js/treelist.js b/program/js/treelist.js index ab13630..5071026 100644 --- a/program/js/treelist.js +++ b/program/js/treelist.js @@ -482,12 +482,14 @@ if (keep_content) { if (draggable_opts) { - draggable('destroy'); + if (ui_draggable) + draggable('destroy'); draggable(draggable_opts); } if (droppable_opts) { - droppable('destroy'); + if (ui_droppable) + droppable('destroy'); droppable(droppable_opts); } @@ -1061,6 +1063,9 @@ if (!opts) opts = {}; if ($.type(opts) == 'string') { + if (opts == 'destroy') { + ui_droppable = null; + } $('li:not(.virtual)', container).droppable(opts); return this; } @@ -1109,6 +1114,9 @@ if (!opts) opts = {}; if ($.type(opts) == 'string') { + if (opts == 'destroy') { + ui_draggable = null; + } $('li:not(.virtual)', container).draggable(opts); return this; } @@ -1121,6 +1129,7 @@ iframeFix: true, addClasses: false, cursorAt: {left: -20, top: 5}, + create: function(e, ui) { ui_draggable = ui; }, helper: function(e) { return $('<div>').attr('id', 'rcmdraglayer') .text($.trim($(e.target).first().text())); -- Gitblit v1.9.1