Explorar el Código

HUE-4552 [editor] Improve performance on checking/unchecking all fields

Enrico Berti hace 9 años
padre
commit
63f788c

+ 16 - 0
desktop/core/src/desktop/static/desktop/js/jquery.huedatatable.js

@@ -39,6 +39,22 @@
       self.$table.data('plugin_jHueTableExtender').drawLockedRows(true);
     }
 
+    self.fnToggleAllCols = function (visible) {
+      var aoColumns = self.$table.data('aoColumns');
+      aoColumns.forEach(function(col, idx){
+        if (idx > 0){
+          col.bVisible = visible;
+        }
+      });
+      if (!visible) {
+        self.$table.find('th, td').hide();
+        self.$table.find('tr').find('td:eq(0),th:eq(0)').show();
+      } else {
+        self.$table.find('th, td').show();
+      }
+      self.$table.data('plugin_jHueTableExtender').drawLockedRows(true);
+    }
+
     self.fnSortColumn = function (obj, way) {
       var $t = self.$table;
       var data = self.$table.data('data');

+ 1 - 3
desktop/libs/notebook/src/notebook/templates/editor_components.mako

@@ -2405,9 +2405,7 @@ ${ hueIcons.symbols() }
   function toggleAllColumns(linkElement, snippet) {
     var $t = $(linkElement).parents(".snippet").find("table.resultTable:eq(0)");
     var dt = $t.hueDataTable();
-    $(linkElement).parents(".snippet").find('.filtered-meta td input').each(function (idx, item) {
-      dt.fnSetColumnVis(idx + 1, linkElement.checked, false);
-    });
+    dt.fnToggleAllCols(linkElement.checked);
     dt.fnDraw();
     if ($t.data('plugin_jHueTableExtender')) {
       $t.data('plugin_jHueTableExtender').drawHeader();