You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2023/08/10 16:51:12 UTC
[superset] 01/01: take 1
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a commit to branch split-button-to-add-filters
in repository https://gitbox.apache.org/repos/asf/superset.git
commit e1b6ee514ef565a724d16bb48887809d25ed3e3a
Author: Evan Rusackas <ev...@rusackas.com>
AuthorDate: Thu Aug 10 10:51:01 2023 -0600
take 1
---
.../FiltersConfigModal/DraggableFilter.tsx | 5 +++
.../FiltersConfigModal/FilterTitlePane.tsx | 44 +++++++++++-----------
superset/config.py | 2 +-
3 files changed, 28 insertions(+), 23 deletions(-)
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.tsx
index 556e3ed32d..1fdd2328a9 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.tsx
@@ -130,6 +130,10 @@ export const DraggableFilter: React.FC<FilterTabTitleProps> = ({
},
});
drag(drop(ref));
+
+ //this is gross... we should pass in the filter/divider type, rather than inferring from the generated ID.
+ const filterIcon = filterIds[0].split('-')[0] == "NATIVE_FILTER" ? <Icons.FilterSmall /> : <Icons.BorderVerticleOutlined />;
+
return (
<Container ref={ref} isDragging={isDragging}>
<DragIcon
@@ -138,6 +142,7 @@ export const DraggableFilter: React.FC<FilterTabTitleProps> = ({
className="dragIcon"
viewBox="4 4 16 16"
/>
+ {filterIcon}
<div css={{ flex: 1 }}>{children}</div>
</Container>
);
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx
index a080d35645..dd978d3495 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx
@@ -18,8 +18,10 @@
*/
import React, { useRef } from 'react';
import { NativeFilterType, styled, t, useTheme } from '@superset-ui/core';
-import { AntdDropdown } from 'src/components';
-import { MainNav as Menu } from 'src/components/Menu';
+import { DropdownButton } from 'src/components/DropdownButton';
+import { DropdownButtonProps } from 'antd/lib/dropdown';
+import Icons from 'src/components/Icons';
+import { MainNav } from 'src/components/Menu';
import FilterTitleContainer from './FilterTitleContainer';
import { FilterRemoval } from './types';
@@ -52,11 +54,6 @@ const TabsContainer = styled.div`
flex-direction: column;
`;
-const options = [
- { label: t('Filter'), type: NativeFilterType.NATIVE_FILTER },
- { label: t('Divider'), type: NativeFilterType.DIVIDER },
-];
-
const FilterTitlePane: React.FC<Props> = ({
getFilterTitle,
onChange,
@@ -88,27 +85,30 @@ const FilterTitlePane: React.FC<Props> = ({
}, 0);
};
const menu = (
- <Menu mode="horizontal">
- {options.map(item => (
- <Menu.Item onClick={() => handleOnAdd(item.type)}>
- {item.label}
- </Menu.Item>
- ))}
- </Menu>
+ <MainNav mode="horizontal">
+ <MainNav.Item onClick={() => handleOnAdd(NativeFilterType.DIVIDER)}>
+ {t('Add Divider')}
+ </MainNav.Item>
+ </MainNav>
);
+
+ const StyledDropdownButton = styled(
+ DropdownButton as React.FC<DropdownButtonProps>,
+ )`
+ padding: ${theme.gridUnit * 2}px ${theme.gridUnit * 4}px;
+ `;
+
return (
<TabsContainer>
- <AntdDropdown
+ <StyledDropdownButton
overlay={menu}
- arrow
placement="topLeft"
- trigger={['hover']}
+ icon={<Icons.CaretDown />}
>
- <StyledAddBox>
- <div data-test="new-dropdown-icon" className="fa fa-plus" />{' '}
- <span>{t('Add filters and dividers')}</span>
- </StyledAddBox>
- </AntdDropdown>
+ <span onClick={() => handleOnAdd(NativeFilterType.NATIVE_FILTER)}>
+ {t('Add Filter')}
+ </span>
+ </StyledDropdownButton>
<div
css={{
height: '100%',
diff --git a/superset/config.py b/superset/config.py
index 75fda6eb37..538bd1bf91 100644
--- a/superset/config.py
+++ b/superset/config.py
@@ -1408,7 +1408,7 @@ TALISMAN_CONFIG = {
TALISMAN_DEV_CONFIG = {
"content_security_policy": {
"default-src": ["'self'"],
- "img-src": ["'self'", "data:"],
+ "img-src": ["'self'", "data:", "upload.wikimedia.org"],
"worker-src": ["'self'", "blob:"],
"connect-src": [
"'self'",