瀏覽代碼

HUE-4236 [editor] Changing fields of a query we chart should re-select default values for the axis

Enrico Berti 9 年之前
父節點
當前提交
fe5f147da2
共有 1 個文件被更改,包括 32 次插入5 次删除
  1. 32 5
      desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

+ 32 - 5
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -571,11 +571,38 @@
 
     self.previousChartOptions = {};
 
-    self.result.meta.subscribe(function(newValue) {
-      self.chartX(self.previousChartOptions.chartX);
-      self.chartYSingle(self.previousChartOptions.chartYSingle);
-      self.chartMapLabel(self.previousChartOptions.chartMapLabel);
-      self.chartYMulti(self.previousChartOptions.chartYMulti || []);
+    function guessMetaField(field) {
+      var _fld = null;
+      if (field) {
+        if (self.result.cleanedMeta().length > 0) {
+          self.result.cleanedMeta().forEach(function (fld) {
+            if (fld.name.toLowerCase().indexOf(field.toLowerCase()) > -1 || field.toLowerCase().indexOf(fld.name.toLowerCase()) > -1) {
+              _fld = fld.name;
+            }
+          });
+        }
+      }
+      return _fld;
+    }
+
+    function guessMetaFields(fields) {
+      var _fields = [];
+      if (fields) {
+        fields.forEach(function (fld) {
+          var _field = guessMetaField(fld);
+          if (_field) {
+            _fields.push(_field);
+          }
+        });
+      }
+      return _fields;
+    }
+
+    self.result.meta.subscribe(function (newValue) {
+      self.chartX(guessMetaField(self.previousChartOptions.chartX));
+      self.chartYSingle(guessMetaField(self.previousChartOptions.chartYSingle));
+      self.chartMapLabel(guessMetaField(self.previousChartOptions.chartMapLabel));
+      self.chartYMulti(guessMetaFields(self.previousChartOptions.chartYMulti) || []);
       self.chartSorting(self.previousChartOptions.chartSorting);
       self.chartScatterGroup(self.previousChartOptions.chartScatterGroup);
       self.chartScatterSize(self.previousChartOptions.chartScatterSize);