mirror of
https://github.com/apache/superset.git
synced 2024-09-06 13:57:40 -04:00
refactor(native-filters): allow cascading only for filter_select (#14441)
* fix:fix get permission function * refactor: allow cascading only for filter_select
This commit is contained in:
parent
1f8de1d06c
commit
abbf4bf05a
@ -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 && (
|
||||
|
@ -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),
|
||||
|
Loading…
Reference in New Issue
Block a user