From 536ca1f62cdaa5034bde9f5fd93202e34b424dde Mon Sep 17 00:00:00 2001 From: AAfghahi <48933336+AAfghahi@users.noreply.github.com> Date: Wed, 12 Jan 2022 14:02:53 -0500 Subject: [PATCH] chore(DatasourceEditor): Create Datasource Legacy Editor Feature Flag (#18003) * a lot of console logs * adding new feature flag for datasource editor --- .../packages/superset-ui-core/src/utils/featureFlags.ts | 1 + .../src/components/Datasource/DatasourceModal.test.jsx | 7 +++++-- .../src/components/Datasource/DatasourceModal.tsx | 6 +++++- superset/config.py | 4 ++++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/superset-frontend/packages/superset-ui-core/src/utils/featureFlags.ts b/superset-frontend/packages/superset-ui-core/src/utils/featureFlags.ts index 86c69ea2b..a09f9b4f9 100644 --- a/superset-frontend/packages/superset-ui-core/src/utils/featureFlags.ts +++ b/superset-frontend/packages/superset-ui-core/src/utils/featureFlags.ts @@ -31,6 +31,7 @@ export enum FeatureFlag { SQLLAB_BACKEND_PERSISTENCE = 'SQLLAB_BACKEND_PERSISTENCE', THUMBNAILS = 'THUMBNAILS', LISTVIEWS_DEFAULT_CARD_VIEW = 'LISTVIEWS_DEFAULT_CARD_VIEW', + DISABLE_LEGACY_DATASOURCE_EDITOR = 'DISABLE_LEGACY_DATASOURCE_EDITOR', ENABLE_REACT_CRUD_VIEWS = 'ENABLE_REACT_CRUD_VIEWS', DISABLE_DATASET_SOURCE_EDIT = 'DISABLE_DATASET_SOURCE_EDIT', DISPLAY_MARKDOWN_HTML = 'DISPLAY_MARKDOWN_HTML', diff --git a/superset-frontend/src/components/Datasource/DatasourceModal.test.jsx b/superset-frontend/src/components/Datasource/DatasourceModal.test.jsx index fdf0a515c..c9d608817 100644 --- a/superset-frontend/src/components/Datasource/DatasourceModal.test.jsx +++ b/superset-frontend/src/components/Datasource/DatasourceModal.test.jsx @@ -24,7 +24,7 @@ import { Provider } from 'react-redux'; import fetchMock from 'fetch-mock'; import thunk from 'redux-thunk'; import sinon from 'sinon'; -import { supersetTheme, ThemeProvider } from '@superset-ui/core'; +import { supersetTheme, ThemeProvider, FeatureFlag } from '@superset-ui/core'; import waitForComponentToPaint from 'spec/helpers/waitForComponentToPaint'; import Modal from 'src/components/Modal'; @@ -72,7 +72,9 @@ describe('DatasourceModal', () => { beforeEach(async () => { isFeatureEnabledMock = jest .spyOn(featureFlags, 'isFeatureEnabled') - .mockReturnValue(true); + .mockImplementation( + featureFlag => featureFlag === FeatureFlag.ENABLE_REACT_CRUD_VIEWS, + ); fetchMock.reset(); wrapper = await mountAndWait(); }); @@ -117,6 +119,7 @@ describe('DatasourceModal', () => { }); it('renders a legacy data source btn', () => { + featureFlags.DISABLE_LEGACY_DATASOURCE_EDITOR = false; expect( wrapper.find('button[data-test="datasource-modal-legacy-edit"]'), ).toExist(); diff --git a/superset-frontend/src/components/Datasource/DatasourceModal.tsx b/superset-frontend/src/components/Datasource/DatasourceModal.tsx index 89b7b5d69..124c40408 100644 --- a/superset-frontend/src/components/Datasource/DatasourceModal.tsx +++ b/superset-frontend/src/components/Datasource/DatasourceModal.tsx @@ -183,6 +183,10 @@ const DatasourceModal: FunctionComponent = ({ }); }; + const showLegacyDatasourceEditor = + isFeatureEnabled(FeatureFlag.ENABLE_REACT_CRUD_VIEWS) && + !isFeatureEnabled(FeatureFlag.DISABLE_LEGACY_DATASOURCE_EDITOR); + return ( = ({ } footer={ <> - {isFeatureEnabled(FeatureFlag.ENABLE_REACT_CRUD_VIEWS) && ( + {showLegacyDatasourceEditor && (