This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git


The following commit(s) were added to refs/heads/master by this push:
     new fc92692  feat: implement new version of word cloud (#9962)
fc92692 is described below

commit fc92692f491f6179d99118aeb7325977ce53cb59
Author: Ville Brofeldt <33317356+ville...@users.noreply.github.com>
AuthorDate: Tue Jun 2 19:28:58 2020 +0300

    feat: implement new version of word cloud (#9962)
---
 .../cypress/integration/dashboard/index.test.js       |  4 ++--
 .../cypress/integration/dashboard/url_params.js       |  5 +++--
 superset-frontend/package-lock.json                   | 19 ++++++++++---------
 superset-frontend/package.json                        |  6 +++---
 .../spec/javascripts/explore/controlUtils_spec.jsx    |  6 +++---
 .../spec/javascripts/explore/store_spec.jsx           |  3 +++
 superset-frontend/src/explore/controlUtils.js         |  7 +++----
 superset-frontend/src/explore/controls.jsx            |  4 ++--
 superset-frontend/src/explore/store.js                |  7 +++++--
 9 files changed, 34 insertions(+), 27 deletions(-)

diff --git 
a/superset-frontend/cypress-base/cypress/integration/dashboard/index.test.js 
b/superset-frontend/cypress-base/cypress/integration/dashboard/index.test.js
index 5512307..b4ee364 100644
--- a/superset-frontend/cypress-base/cypress/integration/dashboard/index.test.js
+++ b/superset-frontend/cypress-base/cypress/integration/dashboard/index.test.js
@@ -23,7 +23,7 @@ import DashboardFilterTest from './filter';
 import DashboardLoadTest from './load';
 import DashboardSaveTest from './save';
 import DashboardTabsTest from './tabs';
-import DashboardUrlParamsTest from './url_params';
+import DashboardFormDataTest from './url_params';
 
 describe('Dashboard', () => {
   DashboardControlsTest();
@@ -33,5 +33,5 @@ describe('Dashboard', () => {
   DashboardLoadTest();
   DashboardSaveTest();
   DashboardTabsTest();
-  DashboardUrlParamsTest();
+  DashboardFormDataTest();
 });
diff --git 
a/superset-frontend/cypress-base/cypress/integration/dashboard/url_params.js 
b/superset-frontend/cypress-base/cypress/integration/dashboard/url_params.js
index 54b74a6..84b1a82 100644
--- a/superset-frontend/cypress-base/cypress/integration/dashboard/url_params.js
+++ b/superset-frontend/cypress-base/cypress/integration/dashboard/url_params.js
@@ -19,7 +19,7 @@
 import { WORLD_HEALTH_DASHBOARD } from './dashboard.helper';
 
 export default () =>
-  describe('dashboard url params', () => {
+  describe('dashboard form data', () => {
     const urlParams = { param1: '123', param2: 'abc' };
     let sliceIds = [];
     let dashboardId;
@@ -38,7 +38,7 @@ export default () =>
       });
     });
 
-    it('should apply url params to slice requests', () => {
+    it('should apply url params and queryFields to slice requests', () => {
       const aliases = [];
       sliceIds.forEach(id => {
         const alias = `getJson_${id}`;
@@ -53,6 +53,7 @@ export default () =>
         requests.forEach(xhr => {
           const requestFormData = xhr.request.body;
           const requestParams = JSON.parse(requestFormData.get('form_data'));
+          expect(requestParams).to.have.property('queryFields');
           expect(requestParams.url_params).deep.eq(urlParams);
         });
       });
diff --git a/superset-frontend/package-lock.json 
b/superset-frontend/package-lock.json
index ce680a2..9376e08 100644
--- a/superset-frontend/package-lock.json
+++ b/superset-frontend/package-lock.json
@@ -6603,9 +6603,9 @@
       }
     },
     "@superset-ui/control-utils": {
-      "version": "0.13.12",
-      "resolved": 
"https://registry.npmjs.org/@superset-ui/control-utils/-/control-utils-0.13.12.tgz";,
-      "integrity": 
"sha512-fxl9lWITCuvZjb2lTPE7X6WA01dM1BInnKktUForK7HP09K+oSaiInRdwZSVC5P9cH7xNlcbkPPh/AOC+Hk/Hg==",
+      "version": "0.13.21",
+      "resolved": 
"https://registry.npmjs.org/@superset-ui/control-utils/-/control-utils-0.13.21.tgz";,
+      "integrity": 
"sha512-KEDSkArY9/hTVW3wdmefbVxUdQNtOyjU3EJiJZ8zeGUZAn517MmEck9AWwKAL/UsOzccU5tq5HVwZ/eSSsmLqQ==",
       "requires": {
         "@types/react-bootstrap": "0.32.21",
         "lodash": "^4.17.15",
@@ -7010,15 +7010,16 @@
       }
     },
     "@superset-ui/plugin-chart-word-cloud": {
-      "version": "0.13.9",
-      "resolved": 
"https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.13.9.tgz";,
-      "integrity": 
"sha512-2tUfQgXtzDETI7Gw4wSBDs+FnlrOkaKF4cpVqX2G/IuCc+h8UxuMbLKIp4NAMgeJ8mDbeEL+lKgnl+RDobks9w==",
+      "version": "0.13.24",
+      "resolved": 
"https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.13.24.tgz";,
+      "integrity": 
"sha512-EzOFoWMg+fDep/r6rBYMXuHmbceYf5pGQKhZQaY/flUR6F3iVS4NUb9+K9zowK4A9HWcLMN3oAHxFJP32p1Jjg==",
       "requires": {
         "@types/d3-cloud": "^1.2.1",
         "@types/d3-scale": "^2.0.2",
         "@types/react": "^16.3.0",
         "d3-cloud": "^1.2.5",
         "d3-scale": "^3.0.1",
+        "emotion-theming": "^10.0.27",
         "encodable": "^0.3.3"
       },
       "dependencies": {
@@ -7178,9 +7179,9 @@
       }
     },
     "@superset-ui/query": {
-      "version": "0.13.6",
-      "resolved": 
"https://registry.npmjs.org/@superset-ui/query/-/query-0.13.6.tgz";,
-      "integrity": 
"sha512-wJvqXuzv9vJNxDPKNAaHzCCly7LF8UP9AQ1zdoA88QcfYJqCzNvbt3j8XSR4nABrvNVZHnsn67wQNG4HS/IPpQ=="
+      "version": "0.13.21",
+      "resolved": 
"https://registry.npmjs.org/@superset-ui/query/-/query-0.13.21.tgz";,
+      "integrity": 
"sha512-cD4o7ChFBS/9k2joYKdxqXBIyV2ZlrFVAmitNk1U4tAUE1zaipofNhZ2imV1Q3H8p8c3Fgk8QiqYOSbpyXiuQQ=="
     },
     "@superset-ui/style": {
       "version": "0.13.11",
diff --git a/superset-frontend/package.json b/superset-frontend/package.json
index 1c16f56..d1c941b 100644
--- a/superset-frontend/package.json
+++ b/superset-frontend/package.json
@@ -63,7 +63,7 @@
     "@superset-ui/chart-composition": "^0.13.5",
     "@superset-ui/color": "^0.13.3",
     "@superset-ui/connection": "^0.13.5",
-    "@superset-ui/control-utils": "^0.13.12",
+    "@superset-ui/control-utils": "^0.13.21",
     "@superset-ui/core": "^0.13.5",
     "@superset-ui/dimension": "^0.13.3",
     "@superset-ui/legacy-plugin-chart-calendar": "^0.13.6",
@@ -91,9 +91,9 @@
     "@superset-ui/legacy-preset-chart-deckgl": "^0.2.3",
     "@superset-ui/legacy-preset-chart-nvd3": "^0.13.23",
     "@superset-ui/number-format": "^0.13.3",
-    "@superset-ui/plugin-chart-word-cloud": "^0.13.9",
+    "@superset-ui/plugin-chart-word-cloud": "^0.13.24",
     "@superset-ui/preset-chart-xy": "^0.13.11",
-    "@superset-ui/query": "^0.13.6",
+    "@superset-ui/query": "^0.13.21",
     "@superset-ui/style": "^0.13.11",
     "@superset-ui/time-format": "^0.13.15",
     "@superset-ui/translation": "^0.13.3",
diff --git a/superset-frontend/spec/javascripts/explore/controlUtils_spec.jsx 
b/superset-frontend/spec/javascripts/explore/controlUtils_spec.jsx
index be5dfcc..00e252e 100644
--- a/superset-frontend/spec/javascripts/explore/controlUtils_spec.jsx
+++ b/superset-frontend/spec/javascripts/explore/controlUtils_spec.jsx
@@ -109,7 +109,7 @@ describe('controlUtils', () => {
                   name: 'all_columns',
                   config: {
                     type: 'SelectControl',
-                    controlGroup: 'columns',
+                    queryField: 'columns',
                     multi: true,
                     label: t('Columns'),
                     default: [],
@@ -250,11 +250,11 @@ describe('controlUtils', () => {
     });
   });
 
-  describe('controlGroup', () => {
+  describe('queryFields', () => {
     it('in formData', () => {
       const controlsState = getAllControlsState('table', 'table', {}, {});
       const formData = getFormDataFromControls(controlsState);
-      expect(formData.controlGroups).toEqual({ all_columns: 'columns' });
+      expect(formData.queryFields).toEqual({ all_columns: 'columns' });
     });
   });
 });
diff --git a/superset-frontend/spec/javascripts/explore/store_spec.jsx 
b/superset-frontend/spec/javascripts/explore/store_spec.jsx
index 5468ab5..dacdb7f 100644
--- a/superset-frontend/spec/javascripts/explore/store_spec.jsx
+++ b/superset-frontend/spec/javascripts/explore/store_spec.jsx
@@ -68,13 +68,16 @@ describe('store', () => {
     });
 
     it('removes out of scope, or deprecated keys', () => {
+      const staleQueryFields = { staleKey: 'staleValue' };
       const inputFormData = {
         datasource: '11_table',
         viz_type: 'table',
+        queryFields: staleQueryFields,
         this_should_no_be_here: true,
       };
       const outputFormData = applyDefaultFormData(inputFormData);
       expect(outputFormData.this_should_no_be_here).toBe(undefined);
+      expect(outputFormData.queryFields).not.toBe(staleQueryFields);
     });
   });
 });
diff --git a/superset-frontend/src/explore/controlUtils.js 
b/superset-frontend/src/explore/controlUtils.js
index 0dd2090..1158a2f 100644
--- a/superset-frontend/src/explore/controlUtils.js
+++ b/superset-frontend/src/explore/controlUtils.js
@@ -21,13 +21,12 @@ import { controls as SHARED_CONTROLS } from './controls';
 import * as SECTIONS from './controlPanels/sections';
 
 export function getFormDataFromControls(controlsState) {
-  const formData = {};
-  formData.controlGroups = {};
+  const formData = { queryFields: {} };
   Object.keys(controlsState).forEach(controlName => {
     const control = controlsState[controlName];
     formData[controlName] = control.value;
-    if (control.hasOwnProperty('controlGroup')) {
-      formData.controlGroups[controlName] = control.controlGroup;
+    if (control.hasOwnProperty('queryField')) {
+      formData.queryFields[controlName] = control.queryField;
     }
   });
   return formData;
diff --git a/superset-frontend/src/explore/controls.jsx 
b/superset-frontend/src/explore/controls.jsx
index acdc66b..ce7a01d 100644
--- a/superset-frontend/src/explore/controls.jsx
+++ b/superset-frontend/src/explore/controls.jsx
@@ -125,7 +125,7 @@ const timeColumnOption = {
 
 const groupByControl = {
   type: 'SelectControl',
-  controlGroup: 'groupby',
+  queryField: 'groupby',
   multi: true,
   freeForm: true,
   label: t('Group by'),
@@ -157,7 +157,7 @@ const groupByControl = {
 
 const metrics = {
   type: 'MetricsControl',
-  controlGroup: 'metrics',
+  queryField: 'metrics',
   multi: true,
   label: t('Metrics'),
   validators: [validateNonEmpty],
diff --git a/superset-frontend/src/explore/store.js 
b/superset-frontend/src/explore/store.js
index 92cd4f7..1e54901 100644
--- a/superset-frontend/src/explore/store.js
+++ b/superset-frontend/src/explore/store.js
@@ -67,16 +67,19 @@ export function applyDefaultFormData(inputFormData) {
   const controlsState = getAllControlsState(vizType, datasourceType, null, {
     ...inputFormData,
   });
-  const formData = {};
+  const controlFormData = getFormDataFromControls(controlsState);
 
+  const formData = {};
   Object.keys(controlsState).forEach(controlName => {
     if (inputFormData[controlName] === undefined) {
-      formData[controlName] = controlsState[controlName].value;
+      formData[controlName] = controlFormData[controlName];
     } else {
       formData[controlName] = inputFormData[controlName];
     }
   });
 
+  // always use dynamically generated queryFields
+  formData.queryFields = controlFormData.queryFields;
   return formData;
 }
 

Reply via email to