From 2c0d3e1dd0a3df01c8adea0de5f2826f0bcb9434 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 25 Jul 2014 17:40:37 +0200 Subject: Fix drag-n-drop after folder move/create (#1489648) --- program/js/app.js | 3 +++ program/js/treelist.js | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'program/js') diff --git a/program/js/app.js b/program/js/app.js index a48962888..f25b80800 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -5891,6 +5891,9 @@ function rcube_webmail() 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 ab1363030..5071026f1 100644 --- a/program/js/treelist.js +++ b/program/js/treelist.js @@ -482,12 +482,14 @@ function rcube_treelist_widget(node, p) 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 @@ function rcube_treelist_widget(node, p) 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 @@ function rcube_treelist_widget(node, p) 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 @@ function rcube_treelist_widget(node, p) iframeFix: true, addClasses: false, cursorAt: {left: -20, top: 5}, + create: function(e, ui) { ui_draggable = ui; }, helper: function(e) { return $('
').attr('id', 'rcmdraglayer') .text($.trim($(e.target).first().text())); -- cgit v1.2.3