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

graceguo 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 acf0753  [dashboard scoped filters] Add all time related options to 
filter scope settings (#8636)
acf0753 is described below

commit acf0753504095a5c0e320b049370aaf6f04e5a4f
Author: Grace Guo <[email protected]>
AuthorDate: Mon Nov 25 10:21:09 2019 -0800

    [dashboard scoped filters] Add all time related options to filter scope 
settings (#8636)
---
 .../src/dashboard/util/activeDashboardFilters.js   |  5 ++-
 .../dashboard/util/getFilterConfigsFromFormdata.js | 44 ++++++++++++++++++++--
 .../src/visualizations/FilterBox/FilterBox.jsx     |  5 ++-
 3 files changed, 47 insertions(+), 7 deletions(-)

diff --git a/superset/assets/src/dashboard/util/activeDashboardFilters.js 
b/superset/assets/src/dashboard/util/activeDashboardFilters.js
index 3674eb3..01d66ac 100644
--- a/superset/assets/src/dashboard/util/activeDashboardFilters.js
+++ b/superset/assets/src/dashboard/util/activeDashboardFilters.js
@@ -24,6 +24,7 @@ import {
   getDashboardFilterKey,
 } from './getDashboardFilterKey';
 import { CHART_TYPE } from '../util/componentTypes';
+import { DASHBOARD_FILTER_SCOPE_GLOBAL } from '../reducers/dashboardFilters';
 
 let allFilterBoxChartIds = [];
 let activeFilters = {};
@@ -61,7 +62,9 @@ export function getAppliedFilterValues(chartId) {
   return appliedFilterValuesByChart[chartId];
 }
 
-export function getChartIdsInFilterScope({ filterScope }) {
+export function getChartIdsInFilterScope({
+  filterScope = DASHBOARD_FILTER_SCOPE_GLOBAL,
+}) {
   function traverse(chartIds = [], component = {}, immuneChartIds = []) {
     if (!component) {
       return;
diff --git a/superset/assets/src/dashboard/util/getFilterConfigsFromFormdata.js 
b/superset/assets/src/dashboard/util/getFilterConfigsFromFormdata.js
index 12c275c..dccb6a2 100644
--- a/superset/assets/src/dashboard/util/getFilterConfigsFromFormdata.js
+++ b/superset/assets/src/dashboard/util/getFilterConfigsFromFormdata.js
@@ -18,12 +18,20 @@
  */
 /* eslint-disable camelcase */
 import {
+  TIME_FILTER_MAP,
   TIME_RANGE,
   FILTER_LABELS,
 } from '../../visualizations/FilterBox/FilterBox';
 
 export default function getFilterConfigsFromFormdata(form_data = {}) {
-  const { date_filter, filter_configs = [] } = form_data;
+  const {
+    date_filter,
+    filter_configs = [],
+    show_druid_time_granularity,
+    show_druid_time_origin,
+    show_sqla_time_column,
+    show_sqla_time_granularity,
+  } = form_data;
   let configs = filter_configs.reduce(
     ({ columns, labels }, config) => {
       const updatedColumns = {
@@ -44,15 +52,43 @@ export default function 
getFilterConfigsFromFormdata(form_data = {}) {
   );
 
   if (date_filter) {
-    const updatedColumns = {
+    let updatedColumns = {
       ...configs.columns,
-      [TIME_RANGE]: form_data[TIME_RANGE],
+      [TIME_FILTER_MAP.time_range]: form_data.time_range,
     };
     const updatedLabels = {
       ...configs.labels,
-      [TIME_RANGE]: FILTER_LABELS[TIME_RANGE],
+      [TIME_FILTER_MAP.time_range]: FILTER_LABELS[TIME_RANGE],
     };
 
+    if (show_sqla_time_column) {
+      updatedColumns = {
+        ...updatedColumns,
+        [TIME_FILTER_MAP.time_grain_sqla]: form_data.time_grain_sqla,
+      };
+    }
+
+    if (show_sqla_time_granularity) {
+      updatedColumns = {
+        ...updatedColumns,
+        [TIME_FILTER_MAP.granularity_sqla]: form_data.granularity_sqla,
+      };
+    }
+
+    if (show_druid_time_granularity) {
+      updatedColumns = {
+        ...updatedColumns,
+        [TIME_FILTER_MAP.granularity]: form_data.granularity,
+      };
+    }
+
+    if (show_druid_time_origin) {
+      updatedColumns = {
+        ...updatedColumns,
+        [TIME_FILTER_MAP.druid_time_origin]: form_data.druid_time_origin,
+      };
+    }
+
     configs = {
       ...configs,
       columns: updatedColumns,
diff --git a/superset/assets/src/visualizations/FilterBox/FilterBox.jsx 
b/superset/assets/src/visualizations/FilterBox/FilterBox.jsx
index fad0bff..40a954e 100644
--- a/superset/assets/src/visualizations/FilterBox/FilterBox.jsx
+++ b/superset/assets/src/visualizations/FilterBox/FilterBox.jsx
@@ -36,7 +36,7 @@ import FilterBadgeIcon from 
'../../components/FilterBadgeIcon';
 import './FilterBox.less';
 
 // maps control names to their key in extra_filters
-const TIME_FILTER_MAP = {
+export const TIME_FILTER_MAP = {
   time_range: '__time_range',
   granularity_sqla: '__time_col',
   time_grain_sqla: '__time_grain',
@@ -44,7 +44,8 @@ const TIME_FILTER_MAP = {
   granularity: '__granularity',
 };
 
-export const TIME_RANGE = '__time_range';
+// a shortcut to a map key, used by many components
+export const TIME_RANGE = TIME_FILTER_MAP.time_range;
 export const FILTER_LABELS = {
   [TIME_RANGE]: 'Time range',
 };

Reply via email to