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),