Jelajahi Sumber

HUE-9013 [editor] Properly dispose the table extender plugin

Johan Ahlen 6 tahun lalu
induk
melakukan
9c4ea4c849

+ 3 - 5
desktop/core/src/desktop/js/apps/notebook2/components/resultGrid/ko.resultGrid.js

@@ -241,11 +241,10 @@ class ResultGrid extends DisposableComponent {
             this.hueDatatable = undefined;
           }
 
-          //   $('#eT' + options.snippet.id() + 'jHueTableExtenderClonedContainer').remove();
-          //   $('#eT' + options.snippet.id() + 'jHueTableExtenderClonedContainerColumn').remove();
-          //   $('#eT' + options.snippet.id() + 'jHueTableExtenderClonedContainerCell').remove();
-
           const $resultTable = this.getResultTableElement();
+          if ($resultTable.data('plugin_jHueTableExtender2')) {
+            $resultTable.data('plugin_jHueTableExtender2').destroy();
+          }
           $resultTable.data('scrollToCol', null);
           $resultTable.data('scrollToRow', null);
           $resultTable.data('rendered', false);
@@ -606,7 +605,6 @@ class ResultGrid extends DisposableComponent {
       const initial = !$resultTable.data('rendered');
       let dataTable;
       if (!$resultTable.data('rendered')) {
-        this.meta.notifySubscribers();
         $snippet.find('select').trigger('chosen:updated');
         dataTable = this.createDatatable();
         $resultTable.data('rendered', true);

+ 12 - 0
desktop/core/src/desktop/js/jquery/plugins/jquery.tableextender2.js

@@ -214,6 +214,18 @@ Plugin.prototype.destroy = function() {
   self.disposeFunctions.forEach(disposeFunction => {
     disposeFunction();
   });
+  if (self.headerRowContainer) {
+    self.headerRowContainer.remove();
+  }
+  if (self.firstColumnInner) {
+    self.firstColumnInner.remove();
+  }
+  if (self.firstColumnTopCell) {
+    self.firstColumnTopCell.remove();
+  }
+  if (self.firstColumn) {
+    self.firstColumn.remove();
+  }
   self.$element.data('plugin_' + PLUGIN_NAME, null);
 };