From c3d10acecf7f45e4f5fcb7d29c910e3005e6598c Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Tue, 31 Mar 2015 11:34:58 +0200 Subject: [PATCH] Langtext-HTML-Editor: bei jedem Aufruf DOM-Element neu anlegen und ckeditor initialisieren MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Unter Firefox kommt es beim mehrmaligen Aufrufen ansonsten sehr schnell zu nicht mehr behebbaren JavaScript-Fehlern. Es bleibt dann beim Öffnen des Popups nur das grau gestreifte Overlay sichtbar, nicht aber der Dialog selber. --- js/kivi.SalesPurchase.js | 20 +++++++++++++------ .../webpages/generic/set_longdescription.html | 2 +- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/js/kivi.SalesPurchase.js b/js/kivi.SalesPurchase.js index f6c163362..3edefdef9 100644 --- a/js/kivi.SalesPurchase.js +++ b/js/kivi.SalesPurchase.js @@ -1,6 +1,5 @@ namespace('kivi.SalesPurchase', function(ns) { this.edit_longdescription = function(row) { - var $edit = $('#popup_edit_longdescription_input'); var $element = $('#longdescription_' + row); if (!$element.length) { @@ -8,9 +7,17 @@ namespace('kivi.SalesPurchase', function(ns) { return; } - $edit.data('element', $element); + var $container = $('#popup_edit_longdescription_input_container'); + var $edit = $(''); + + $container.children().remove(); + $container.append($edit); + $container.data('element', $element); + $edit.val($element.val()); + kivi.init_text_editor($edit); + $('#popup_edit_longdescription_runningnumber').html(row); $('#popup_edit_longdescription_partnumber').html($('#partnumber_' + row).val() || ''); @@ -23,16 +30,17 @@ namespace('kivi.SalesPurchase', function(ns) { id: 'edit_longdescription_dialog', dialog: { title: kivi.t8('Enter longdescription'), - open: function() { kivi.set_focus('#popup_edit_longdescription_input'); } + open: function() { kivi.focus_ckeditor_when_ready('#popup_edit_longdescription_input'); }, + close: function() { $('#popup_edit_longdescription_input_container').children().remove(); } } }); }; this.set_longdescription = function() { - var $edit = $('#popup_edit_longdescription_input'); - var $element = $edit.data('element'); + $('#popup_edit_longdescription_input_container') + .data('element') + .val( $('#popup_edit_longdescription_input').val() ); - $element.val($edit.val()); $('#edit_longdescription_dialog').dialog('close'); }; diff --git a/templates/webpages/generic/set_longdescription.html b/templates/webpages/generic/set_longdescription.html index 461222541..e7a357bd7 100644 --- a/templates/webpages/generic/set_longdescription.html +++ b/templates/webpages/generic/set_longdescription.html @@ -20,7 +20,7 @@

-

[% L.textarea_tag("popup_edit_longdescription_input", "", class="texteditor-in-dialog" wrap="soft", style="width: 750px; height: 220px;") %]

+

[% L.button_tag("kivi.SalesPurchase.set_longdescription()", LxERP.t8("Close")) %] -- 2.20.1