Langtext-HTML-Editor: bei jedem Aufruf DOM-Element neu anlegen und ckeditor initialis...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 31 Mar 2015 09:34:58 +0000 (11:34 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 31 Mar 2015 09:34:58 +0000 (11:34 +0200)
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
templates/webpages/generic/set_longdescription.html

index f6c1633..3edefde 100644 (file)
@@ -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      = $('<textarea id="popup_edit_longdescription_input" class="texteditor-in-dialog" wrap="soft" style="width: 750px; height: 220px;"></textarea>');
+
+    $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');
   };
 
index 4612225..e7a357b 100644 (file)
@@ -20,7 +20,7 @@
   </table>
  </p>
 
- <p>[% L.textarea_tag("popup_edit_longdescription_input", "", class="texteditor-in-dialog" wrap="soft", style="width: 750px; height: 220px;") %]</p>
+ <p id="popup_edit_longdescription_input_container"></p>
 
  <p>
   [% L.button_tag("kivi.SalesPurchase.set_longdescription()", LxERP.t8("Close")) %]