From 1719ee324812dc0f0ac3465a15da3988a4d74fe3 Mon Sep 17 00:00:00 2001 From: torleif Date: Tue, 14 Jun 2016 10:21:58 +1200 Subject: [PATCH 1/2] #125 - FIX: disconnect tinyMCE while dragging By disconnecting the tinyMCE it won't trigger a recreate after drag and dropping, so you won't wind up with multiple htmleditors. --- javascript/WidgetAreaEditor.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/javascript/WidgetAreaEditor.js b/javascript/WidgetAreaEditor.js index bf1f514..451c8f4 100644 --- a/javascript/WidgetAreaEditor.js +++ b/javascript/WidgetAreaEditor.js @@ -20,9 +20,23 @@ $(this).find('.usedWidgets').sortable({ opacity: 0.6, handle: '.handle', - update: function(e, ui) {parentRef.updateWidgets(e, ui)}, + update: function (e, ui) { + parentRef.updateWidgets(e, ui) + }, placeholder: 'ui-state-highlight', - forcePlaceholderSize: true + forcePlaceholderSize: true, + start: function (e, ui) { + htmleditors = $(e.srcElement).closest('.Widget').find('textarea.htmleditor'); + $.each(htmleditors, function (k, i) { + tinyMCE.execCommand('mceRemoveControl', false, $(i).attr('id')); + }) + }, + stop: function (e, ui) { + htmleditors = $(e.srcElement).closest('.Widget').find('textarea.htmleditor'); + $.each(htmleditors, function (k, i) { + tinyMCE.execCommand('mceAddControl', true, $(i).attr('id')); + }) + } }); // Figure out maxid, this is used when creating new widgets From 92e3fd6d9a3fc32d7b9b871d49874fdea68c282c Mon Sep 17 00:00:00 2001 From: torleif Date: Tue, 21 Jun 2016 13:17:30 +1200 Subject: [PATCH 2/2] #125 - FIX: firefox support for disconnecting tinyMCE --- javascript/WidgetAreaEditor.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/WidgetAreaEditor.js b/javascript/WidgetAreaEditor.js index 451c8f4..48734e2 100644 --- a/javascript/WidgetAreaEditor.js +++ b/javascript/WidgetAreaEditor.js @@ -26,13 +26,13 @@ placeholder: 'ui-state-highlight', forcePlaceholderSize: true, start: function (e, ui) { - htmleditors = $(e.srcElement).closest('.Widget').find('textarea.htmleditor'); + htmleditors = $(ui.item).closest('.Widget').find('textarea.htmleditor'); $.each(htmleditors, function (k, i) { tinyMCE.execCommand('mceRemoveControl', false, $(i).attr('id')); }) }, stop: function (e, ui) { - htmleditors = $(e.srcElement).closest('.Widget').find('textarea.htmleditor'); + htmleditors = $(ui.item).closest('.Widget').find('textarea.htmleditor'); $.each(htmleditors, function (k, i) { tinyMCE.execCommand('mceAddControl', true, $(i).attr('id')); })