From ca66127a09116de4b552b09635a14eee82f97649 Mon Sep 17 00:00:00 2001 From: Lin Wang Date: Tue, 27 Aug 2024 00:17:15 +0800 Subject: [PATCH] [Workspace]Remove default appended features (#7841) * Remove workspace_detail from default append features Signed-off-by: Lin Wang * Changeset file for PR #7841 created/updated --------- Signed-off-by: Lin Wang Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com> --- changelogs/fragments/7841.yml | 2 ++ src/plugins/workspace/common/constants.ts | 5 ----- .../workspace_form/use_workspace_form.test.ts | 2 +- .../components/workspace_form/use_workspace_form.ts | 7 ++----- .../public/components/workspace_form/utils.ts | 11 +---------- src/plugins/workspace/public/utils.ts | 3 +-- 6 files changed, 7 insertions(+), 23 deletions(-) create mode 100644 changelogs/fragments/7841.yml diff --git a/changelogs/fragments/7841.yml b/changelogs/fragments/7841.yml new file mode 100644 index 000000000000..06fc241b193d --- /dev/null +++ b/changelogs/fragments/7841.yml @@ -0,0 +1,2 @@ +feat: +- [Workspace]Remove default appended features ([#7841](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/7841)) \ No newline at end of file diff --git a/src/plugins/workspace/common/constants.ts b/src/plugins/workspace/common/constants.ts index 88f9a5dd9ff4..7cabf32d14c6 100644 --- a/src/plugins/workspace/common/constants.ts +++ b/src/plugins/workspace/common/constants.ts @@ -13,11 +13,6 @@ export const WORKSPACE_DETAIL_APP_ID = 'workspace_detail'; export const WORKSPACE_INITIAL_APP_ID = 'workspace_initial'; export const WORKSPACE_NAVIGATION_APP_ID = 'workspace_navigation'; -/** - * Since every workspace always have overview and update page, these features will be selected by default - * and can't be changed in the workspace form feature selector - */ -export const DEFAULT_SELECTED_FEATURES_IDS = [WORKSPACE_DETAIL_APP_ID]; export const WORKSPACE_SAVED_OBJECTS_CLIENT_WRAPPER_ID = 'workspace'; export const WORKSPACE_CONFLICT_CONTROL_SAVED_OBJECTS_CLIENT_WRAPPER_ID = 'workspace_conflict_control'; diff --git a/src/plugins/workspace/public/components/workspace_form/use_workspace_form.test.ts b/src/plugins/workspace/public/components/workspace_form/use_workspace_form.test.ts index c946cb35a68c..6e25c81d4440 100644 --- a/src/plugins/workspace/public/components/workspace_form/use_workspace_form.test.ts +++ b/src/plugins/workspace/public/components/workspace_form/use_workspace_form.test.ts @@ -123,7 +123,7 @@ describe('useWorkspaceForm', () => { expect(onSubmitMock).toHaveBeenCalledWith( expect.objectContaining({ name: 'test-workspace-name', - features: ['use-case-observability', 'workspace_detail'], + features: ['use-case-observability'], }) ); }); diff --git a/src/plugins/workspace/public/components/workspace_form/use_workspace_form.ts b/src/plugins/workspace/public/components/workspace_form/use_workspace_form.ts index fb8bf40e497c..f627df1f3aad 100644 --- a/src/plugins/workspace/public/components/workspace_form/use_workspace_form.ts +++ b/src/plugins/workspace/public/components/workspace_form/use_workspace_form.ts @@ -15,7 +15,6 @@ import { import { DataSource } from '../../../common/types'; import { WorkspaceFormProps, WorkspaceFormErrors, WorkspacePermissionSetting } from './types'; import { - appendDefaultFeatureIds, generatePermissionSettingsState, getNumberOfChanges, getNumberOfErrors, @@ -42,9 +41,7 @@ export const useWorkspaceForm = ({ generatePermissionSettingsState(operationType, defaultValues?.permissionSettings) ); - const [featureConfigs, setFeatureConfigs] = useState( - appendDefaultFeatureIds(defaultValues?.features ?? []) - ); + const [featureConfigs, setFeatureConfigs] = useState(defaultValues?.features ?? []); const selectedUseCase = useMemo(() => getFirstUseCaseOfFeatureConfigs(featureConfigs), [ featureConfigs, ]); @@ -138,7 +135,7 @@ export const useWorkspaceForm = ({ setName(resetValues?.name ?? ''); setDescription(resetValues?.description ?? ''); setColor(resetValues?.color); - setFeatureConfigs(appendDefaultFeatureIds(resetValues?.features ?? [])); + setFeatureConfigs(resetValues?.features ?? []); setPermissionSettings(initialPermissionSettingsRef.current); setFormErrors({}); setIsEditing(false); diff --git a/src/plugins/workspace/public/components/workspace_form/utils.ts b/src/plugins/workspace/public/components/workspace_form/utils.ts index a1a340a78db6..04c1f3772600 100644 --- a/src/plugins/workspace/public/components/workspace_form/utils.ts +++ b/src/plugins/workspace/public/components/workspace_form/utils.ts @@ -6,11 +6,7 @@ import { i18n } from '@osd/i18n'; import type { SavedObjectPermissions } from '../../../../../core/types'; -import { - CURRENT_USER_PLACEHOLDER, - DEFAULT_SELECTED_FEATURES_IDS, - WorkspacePermissionMode, -} from '../../../common/constants'; +import { CURRENT_USER_PLACEHOLDER, WorkspacePermissionMode } from '../../../common/constants'; import { isUseCaseFeatureConfig } from '../../utils'; import { optionIdToWorkspacePermissionModesMap, @@ -32,11 +28,6 @@ import { import { DataSource } from '../../../common/types'; import { validateWorkspaceColor } from '../../../common/utils'; -export const appendDefaultFeatureIds = (ids: string[]) => { - // concat default checked ids and unique the result - return Array.from(new Set(ids.concat(DEFAULT_SELECTED_FEATURES_IDS))); -}; - export const isValidFormTextInput = (input?: string) => { /** * This regular expression is from the workspace form name and description field UI. diff --git a/src/plugins/workspace/public/utils.ts b/src/plugins/workspace/public/utils.ts index bbadd528d73d..ff3983e415d4 100644 --- a/src/plugins/workspace/public/utils.ts +++ b/src/plugins/workspace/public/utils.ts @@ -23,7 +23,7 @@ import { WorkspaceObject, WorkspaceAvailability, } from '../../../core/public'; -import { DEFAULT_SELECTED_FEATURES_IDS, WORKSPACE_DETAIL_APP_ID } from '../common/constants'; +import { WORKSPACE_DETAIL_APP_ID } from '../common/constants'; import { WorkspaceUseCase, WorkspaceUseCaseFeature } from './types'; import { formatUrlWithWorkspaceId } from '../../../core/public/utils'; import { SigV4ServiceName } from '../../../plugins/data_source/common/data_sources'; @@ -188,7 +188,6 @@ export const filterWorkspaceConfigurableApps = (applications: PublicAppInfo[]) = const filterCondition = navLinkStatus !== AppNavLinkStatus.hidden && !chromeless && - !DEFAULT_SELECTED_FEATURES_IDS.includes(id) && workspaceAvailability !== WorkspaceAvailability.outsideWorkspace; // If the category is management, only retain Dashboards Management which contains saved objets and index patterns. // Saved objets can show all saved objects in the current workspace and index patterns is at workspace level.