From 20a4d1371723349caa381096997cd7a877ee2082 Mon Sep 17 00:00:00 2001 From: simcha90 <56388545+simcha90@users.noreply.github.com> Date: Sun, 2 May 2021 13:16:10 +0300 Subject: [PATCH] refactor(native-filters): allow cascading only for filter_select (#14441) * fix:fix get permission function * refactor: allow cascading only for filter_select (cherry picked from commit abbf4bf05a4e579df55a25d771aad074e71c9bd5) --- .../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 511890b4c2357..2eca4e8b96f0a 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 = ({ 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 = ({ hidden initialValue={null} /> - {t('Parent filter')}} - initialValue={parentFilterOptions.find( - ({ value }) => value === filterToEdit?.cascadeParentIds[0], - )} - data-test="parent-filter-input" - > - + + )} }> {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 2100ef6182836..d19538c421c9b 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; 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),