From 5c5e2113f018bf792a3b735f5a34d9b0bca147b3 Mon Sep 17 00:00:00 2001 From: lyndsiWilliams Date: Mon, 21 Nov 2022 22:52:47 -0600 Subject: [PATCH 01/28] optimized setDatasets call --- .../src/views/CRUD/data/dataset/AddDataset/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/superset-frontend/src/views/CRUD/data/dataset/AddDataset/index.tsx b/superset-frontend/src/views/CRUD/data/dataset/AddDataset/index.tsx index e4dbaa9a699d0..419db0dfe6e13 100644 --- a/superset-frontend/src/views/CRUD/data/dataset/AddDataset/index.tsx +++ b/superset-frontend/src/views/CRUD/data/dataset/AddDataset/index.tsx @@ -77,6 +77,7 @@ export default function AddDataset() { >(datasetReducer, null); const [hasColumns, setHasColumns] = useState(false); const [datasets, setDatasets] = useState([]); + console.log(datasets); const datasetNames = datasets.map(dataset => dataset.table_name); const encodedSchema = dataset?.schema ? encodeURIComponent(dataset?.schema) From e822b94ad196488e100940cd5255804acdbe9b0f Mon Sep 17 00:00:00 2001 From: lyndsiWilliams Date: Tue, 22 Nov 2022 10:11:16 -0600 Subject: [PATCH 02/28] Remove console.log --- .../src/views/CRUD/data/dataset/AddDataset/index.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/superset-frontend/src/views/CRUD/data/dataset/AddDataset/index.tsx b/superset-frontend/src/views/CRUD/data/dataset/AddDataset/index.tsx index 419db0dfe6e13..e4dbaa9a699d0 100644 --- a/superset-frontend/src/views/CRUD/data/dataset/AddDataset/index.tsx +++ b/superset-frontend/src/views/CRUD/data/dataset/AddDataset/index.tsx @@ -77,7 +77,6 @@ export default function AddDataset() { >(datasetReducer, null); const [hasColumns, setHasColumns] = useState(false); const [datasets, setDatasets] = useState([]); - console.log(datasets); const datasetNames = datasets.map(dataset => dataset.table_name); const encodedSchema = dataset?.schema ? encodeURIComponent(dataset?.schema) From 9ec9c99c07db48a1933cfad2009d96ab7be7e029 Mon Sep 17 00:00:00 2001 From: lyndsiWilliams Date: Tue, 29 Nov 2022 10:02:33 -0600 Subject: [PATCH 03/28] Create dataset polish/bug fix --- .../src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/superset-frontend/src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx b/superset-frontend/src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx index 4f7dfca196f4f..f11b476195261 100644 --- a/superset-frontend/src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx +++ b/superset-frontend/src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx @@ -40,6 +40,7 @@ import { emptyStateComponent, } from 'src/components/EmptyState'; import { useToasts } from 'src/components/MessageToasts/withToasts'; +import { emptyStateComponent } from 'src/SqlLab/components/SqlEditorLeftBar'; import { DatasetActionType } from '../types'; interface LeftPanelProps { From 7dc42efcbb33b11475d3237d7d2d110b154b88c1 Mon Sep 17 00:00:00 2001 From: lyndsiWilliams Date: Mon, 19 Dec 2022 09:31:43 -0600 Subject: [PATCH 04/28] Make defaultPageSize a const and move emptyStateComponent into src/components/EmptyState --- .../src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/superset-frontend/src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx b/superset-frontend/src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx index f11b476195261..4f7dfca196f4f 100644 --- a/superset-frontend/src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx +++ b/superset-frontend/src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx @@ -40,7 +40,6 @@ import { emptyStateComponent, } from 'src/components/EmptyState'; import { useToasts } from 'src/components/MessageToasts/withToasts'; -import { emptyStateComponent } from 'src/SqlLab/components/SqlEditorLeftBar'; import { DatasetActionType } from '../types'; interface LeftPanelProps { From 2a42fda938ba92b5c9a82898f487efddeada992a Mon Sep 17 00:00:00 2001 From: lyndsiWilliams Date: Tue, 3 Jan 2023 15:49:55 -0600 Subject: [PATCH 05/28] Change all add dataset entrances to use new create page --- .../components/DatasourcePanel/index.tsx | 4 +- .../explore/components/ExploreChartPanel.jsx | 4 +- .../ColumnSelectPopover.tsx | 2 +- .../AdhocMetricEditPopover/index.jsx | 2 +- .../src/pages/ChartCreation/index.tsx | 5 +-- .../data/database/DatabaseModal/index.tsx | 2 +- .../views/CRUD/data/dataset/DatasetList.tsx | 43 ++----------------- .../src/views/components/RightMenu.tsx | 17 +------- superset/views/datasource/views.py | 5 +-- 9 files changed, 15 insertions(+), 69 deletions(-) diff --git a/superset-frontend/src/explore/components/DatasourcePanel/index.tsx b/superset-frontend/src/explore/components/DatasourcePanel/index.tsx index dedffc104455e..e24d1100ac69f 100644 --- a/superset-frontend/src/explore/components/DatasourcePanel/index.tsx +++ b/superset-frontend/src/explore/components/DatasourcePanel/index.tsx @@ -373,7 +373,9 @@ export default function DataSourcePanel({ setShowSaveDatasetModal(true)} + onClick={() => { + window.location.href = '/dataset/add/'; + }} className="add-dataset-alert-description" > {t('Create a dataset')} diff --git a/superset-frontend/src/explore/components/ExploreChartPanel.jsx b/superset-frontend/src/explore/components/ExploreChartPanel.jsx index 03cda337bb951..ac9de71682860 100644 --- a/superset-frontend/src/explore/components/ExploreChartPanel.jsx +++ b/superset-frontend/src/explore/components/ExploreChartPanel.jsx @@ -324,7 +324,9 @@ const ExploreChartPanel = ({ setShowDatasetModal(true)} + onClick={() => { + window.location.href = '/dataset/add/'; + }} css={{ textDecoration: 'underline' }} > {t('Create a dataset')} diff --git a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx index fee2eb941ff60..6ea5dbbb907de 100644 --- a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx +++ b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx @@ -231,7 +231,7 @@ const ColumnSelectPopover = ({ }, []); const setDatasetAndClose = () => { - if (setDatasetModal) setDatasetModal(true); + window.location.href = '/dataset/add/'; onClose(); }; diff --git a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx index f49eb5b4f750c..f749a5d09fe94 100644 --- a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx +++ b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx @@ -388,7 +388,7 @@ export default class AdhocMetricEditPopover extends React.PureComponent { tabIndex={0} role="button" onClick={() => { - this.props.handleDatasetModal(true); + window.location.href = '/dataset/add/'; this.props.onClose(); }} > diff --git a/superset-frontend/src/pages/ChartCreation/index.tsx b/superset-frontend/src/pages/ChartCreation/index.tsx index 4aeb7aeed4df8..bea530fd3ad5e 100644 --- a/superset-frontend/src/pages/ChartCreation/index.tsx +++ b/superset-frontend/src/pages/ChartCreation/index.tsx @@ -337,10 +337,7 @@ export class ChartCreation extends React.PureComponent< const isButtonDisabled = this.isBtnDisabled(); const datasetHelpText = this.state.canCreateDataset ? ( - + {t('Add a dataset')} {` ${t('or')} `} diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx index 6e374f85c8955..96b30eec8e4a1 100644 --- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx +++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx @@ -1350,7 +1350,7 @@ const DatabaseModal: FunctionComponent = ({ onClick={() => { setLoading(true); fetchAndSetDB(); - window.location.href = '/tablemodelview/list#create'; + window.location.href = '/dataset/add/'; }} > {t('CREATE DATASET')} diff --git a/superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx b/superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx index 68c65a7ad167e..7c73b5433965d 100644 --- a/superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx +++ b/superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx @@ -22,16 +22,13 @@ import React, { useState, useMemo, useCallback, - useEffect, } from 'react'; import rison from 'rison'; -import { useHistory, useLocation } from 'react-router-dom'; import { createFetchRelated, createFetchDistinct, createErrorHandler, } from 'src/views/CRUD/utils'; -import { getItem, LocalStorageKeys } from 'src/utils/localStorageHelpers'; import { ColumnObject } from 'src/views/CRUD/data/dataset/types'; import { useListViewResource } from 'src/views/CRUD/hooks'; import ConfirmStatusChange from 'src/components/ConfirmStatusChange'; @@ -60,7 +57,6 @@ import { isFeatureEnabled, FeatureFlag } from 'src/featureFlags'; import WarningIconWithTooltip from 'src/components/WarningIconWithTooltip'; import { isUserAdmin } from 'src/dashboard/util/permissionUtils'; import { GenericLink } from 'src/components/GenericLink/GenericLink'; -import AddDatasetModal from './AddDatasetModal'; import { PAGE_SIZE, @@ -152,9 +148,6 @@ const DatasetList: FunctionComponent = ({ refreshData, } = useListViewResource('dataset', t('dataset'), addDangerToast); - const [datasetAddModalOpen, setDatasetAddModalOpen] = - useState(false); - const [datasetCurrentlyDeleting, setDatasetCurrentlyDeleting] = useState< (Dataset & { chart_count: number; dashboard_count: number }) | null >(null); @@ -191,12 +184,6 @@ const DatasetList: FunctionComponent = ({ hasPerm('can_export') && isFeatureEnabled(FeatureFlag.VERSIONED_EXPORT); const initialSort = SORT_BY; - useEffect(() => { - const db = getItem(LocalStorageKeys.db, null); - if (!loading && db) { - setDatasetAddModalOpen(true); - } - }, [loading]); const openDatasetEditModal = useCallback( ({ id }: Dataset) => { @@ -603,26 +590,6 @@ const DatasetList: FunctionComponent = ({ }); } - const CREATE_HASH = '#create'; - const location = useLocation(); - const history = useHistory(); - - // Sync Dataset Add modal with #create hash - useEffect(() => { - const modalOpen = location.hash === CREATE_HASH && canCreate; - setDatasetAddModalOpen(modalOpen); - }, [canCreate, location.hash]); - - // Add #create hash - const openDatasetAddModal = useCallback(() => { - history.replace(`${location.pathname}${location.search}${CREATE_HASH}`); - }, [history, location.pathname, location.search]); - - // Remove #create hash - const closeDatasetAddModal = useCallback(() => { - history.replace(`${location.pathname}${location.search}`); - }, [history, location.pathname, location.search]); - if (canCreate) { buttonArr.push({ name: ( @@ -630,7 +597,9 @@ const DatasetList: FunctionComponent = ({ {t('Dataset')}{' '} ), - onClick: openDatasetAddModal, + onClick: () => { + window.location.href = '/dataset/add/'; + }, buttonStyle: 'primary', }); @@ -727,12 +696,6 @@ const DatasetList: FunctionComponent = ({ return ( <> - {datasetCurrentlyDeleting && ( (state => state.common.conf); const [showDatabaseModal, setShowDatabaseModal] = useState(false); - const [showDatasetModal, setShowDatasetModal] = useState(false); const [engine, setEngine] = useState(''); const canSql = findPermission('can_sqllab', 'Superset', roles); const canDashboard = findPermission('can_write', 'Dashboard', roles); @@ -179,6 +177,7 @@ const RightMenu = ({ { label: t('Create dataset'), name: GlobalMenuDataOptions.DATASET_CREATION, + url: '/dataset/add/', perm: canDataset && nonExamplesDBConnected, }, { @@ -286,8 +285,6 @@ const RightMenu = ({ } else if (itemChose.key === GlobalMenuDataOptions.GOOGLE_SHEETS) { setShowDatabaseModal(true); setEngine('Google Sheets'); - } else if (itemChose.key === GlobalMenuDataOptions.DATASET_CREATION) { - setShowDatasetModal(true); } }; @@ -296,10 +293,6 @@ const RightMenu = ({ setShowDatabaseModal(false); }; - const handleOnHideDatasetModalModal = () => { - setShowDatasetModal(false); - }; - const isDisabled = isAdmin && !allowUploads; const tooltipText = t( @@ -344,7 +337,6 @@ const RightMenu = ({ ); const handleDatabaseAdd = () => setQuery({ databaseAdded: true }); - const handleDatasetAdd = () => setQuery({ datasetAdded: true }); const theme = useTheme(); @@ -358,13 +350,6 @@ const RightMenu = ({ onDatabaseAdd={handleDatabaseAdd} /> )} - {canDataset && ( - - )} {environmentTag?.text && (