You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by am...@apache.org on 2021/05/02 10:17:19 UTC

[superset] branch master updated: refactor(native-filters): allow cascading only for filter_select (#14441)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new abbf4bf  refactor(native-filters): allow cascading only for filter_select (#14441)
abbf4bf is described below

commit abbf4bf05a4e579df55a25d771aad074e71c9bd5
Author: simcha90 <56...@users.noreply.github.com>
AuthorDate: Sun May 2 13:16:10 2021 +0300

    refactor(native-filters): allow cascading only for filter_select (#14441)
    
    * fix:fix get permission function
    
    * refactor: allow cascading only for filter_select
---
 .../FiltersConfigForm/FiltersConfigForm.tsx        | 37 +++++++++++++---------
 .../FiltersConfigModal/FiltersConfigModal.tsx      |  4 +++
 2 files changed, 26 insertions(+), 15 deletions(-)

diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
index 511890b..2eca4e8 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
@@ -62,7 +62,10 @@ import ControlItems from './ControlItems';
 import FilterScope from './FilterScope/FilterScope';
 import RemovedFilter from './RemovedFilter';
 import DefaultValue from './DefaultValue';
-import { getFiltersConfigModalTestId } from '../FiltersConfigModal';
+import {
+  CASCADING_FILTERS,
+  getFiltersConfigModalTestId,
+} from '../FiltersConfigModal';
 // TODO: move styles from AdhocFilterControl to emotion and delete this ./main.less
 import './main.less';
 
@@ -174,6 +177,8 @@ export const FiltersConfigForm: React.FC<FiltersConfigFormProps> = ({
     formFilter?.filterType,
   );
 
+  const isCascadingFilter = CASCADING_FILTERS.includes(formFilter?.filterType);
+
   const isDataDirty = formFilter?.isDataDirty ?? true;
 
   useBackendFormUpdate(form, filterId);
@@ -405,20 +410,22 @@ export const FiltersConfigForm: React.FC<FiltersConfigFormProps> = ({
         hidden
         initialValue={null}
       />
-      <StyledFormItem
-        name={['filters', filterId, 'parentFilter']}
-        label={<StyledLabel>{t('Parent filter')}</StyledLabel>}
-        initialValue={parentFilterOptions.find(
-          ({ value }) => value === filterToEdit?.cascadeParentIds[0],
-        )}
-        data-test="parent-filter-input"
-      >
-        <Select
-          placeholder={t('None')}
-          options={parentFilterOptions}
-          isClearable
-        />
-      </StyledFormItem>
+      {isCascadingFilter && (
+        <StyledFormItem
+          name={['filters', filterId, 'parentFilter']}
+          label={<StyledLabel>{t('Parent filter')}</StyledLabel>}
+          initialValue={parentFilterOptions.find(
+            ({ value }) => value === filterToEdit?.cascadeParentIds[0],
+          )}
+          data-test="parent-filter-input"
+        >
+          <Select
+            placeholder={t('None')}
+            options={parentFilterOptions}
+            isClearable
+          />
+        </StyledFormItem>
+      )}
       <StyledContainer>
         <StyledFormItem className="bottom" label={<StyledLabel />}>
           {hasDataset && hasFilledDataset && (
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
index 2100ef6..d19538c 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
@@ -62,6 +62,7 @@ export interface FiltersConfigModalProps {
   onSave: (filterConfig: FilterConfiguration) => Promise<void>;
   onCancel: () => void;
 }
+export const CASCADING_FILTERS = ['filter_select'];
 
 /**
  * This is the modal to configure all the dashboard-native filters.
@@ -170,6 +171,9 @@ export function FiltersConfigModal({
   const getParentFilters = (id: string) =>
     filterIds
       .filter(filterId => filterId !== id && !removedFilters[filterId])
+      .filter(filterId =>
+        CASCADING_FILTERS.includes(formValues.filters[filterId]?.filterType),
+      )
       .map(id => ({
         id,
         title: getFilterTitle(id),