From efb7f1c4a100b8475281447134f5d13a36084eda Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 2 Jan 2023 09:23:16 +0100 Subject: [PATCH] move manifests --- .../src/backoffice/core/backoffice.element.ts | 1 + .../backoffice/core/dashboards/manifests.ts | 78 +++++++++++++++++ .../core/data-types/{tree => }/manifests.ts | 22 +++-- .../src/backoffice/core/index.ts | 13 +++ .../core/settings-section/manifests.ts | 85 +------------------ .../src/backoffice/sections.manifest.ts | 3 +- .../src/backoffice/trees.manifest.ts | 2 +- .../src/backoffice/workspaces.manifest.ts | 9 -- 8 files changed, 113 insertions(+), 100 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/{tree => }/manifests.ts (51%) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/core/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/backoffice.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/backoffice.element.ts index a28c3381fb..93e189fb66 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/backoffice.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/backoffice.element.ts @@ -53,6 +53,7 @@ import { umbExtensionsRegistry } from '@umbraco-cms/extensions-registry'; import type { ManifestTypes } from '@umbraco-cms/models'; // Domains +import '../core'; import '../documents'; import '../media'; import '../translation'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/dashboards/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/dashboards/manifests.ts index ae60f2a171..ecd9d794db 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/dashboards/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/dashboards/manifests.ts @@ -25,6 +25,84 @@ const dashboards: Array = [ pathname: 'redirect-management', }, }, + { + type: 'dashboard', + alias: 'Umb.Dashboard.SettingsWelcome', + name: 'Welcome Settings Dashboard', + elementName: 'umb-dashboard-settings-welcome', + loader: () => import('./settings-welcome/dashboard-settings-welcome.element'), + weight: 500, + meta: { + label: 'Welcome', + sections: ['Umb.Section.Settings'], + pathname: 'welcome', + }, + }, + { + type: 'dashboard', + alias: 'Umb.Dashboard.ExamineManagement', + name: 'Examine Management Dashboard', + elementName: 'umb-dashboard-examine-management', + loader: () => import('./examine-management/dashboard-examine-management.element'), + weight: 400, + meta: { + label: 'Examine Management', + sections: ['Umb.Section.Settings'], + pathname: 'examine-management', + }, + }, + { + type: 'dashboard', + alias: 'Umb.Dashboard.ModelsBuilder', + name: 'Models Builder Dashboard', + elementName: 'umb-dashboard-models-builder', + loader: () => import('./models-builder/dashboard-models-builder.element'), + weight: 300, + meta: { + label: 'Models Builder', + sections: ['Umb.Section.Settings'], + pathname: 'models-builder', + }, + }, + { + type: 'dashboard', + alias: 'Umb.Dashboard.PublishedStatus', + name: 'Published Status Dashboard', + elementName: 'umb-dashboard-published-status', + loader: () => import('./published-status/dashboard-published-status.element'), + weight: 200, + meta: { + label: 'Published Status', + sections: ['Umb.Section.Settings'], + pathname: 'published-status', + }, + }, + { + type: 'dashboard', + alias: 'Umb.Dashboard.Profiling', + name: 'Profiling', + elementName: 'umb-dashboard-performance-profiling', + loader: () => import('./performance-profiling/dashboard-performance-profiling.element'), + weight: 101, + meta: { + label: 'Profiling', + sections: ['Umb.Section.Settings'], + pathname: 'profiling', + }, + }, + { + type: 'dashboard', + alias: 'Umb.Dashboard.Telemetry', + name: 'Telemetry', + elementName: 'umb-dashboard-telemetry', + loader: () => import('./telemetry/dashboard-telemetry.element'), + weight: 100, + meta: { + label: 'Telemetry Data', + sections: ['Umb.Section.Settings'], + pathname: 'telemetry', + }, + }, ]; export const manifests = [...dashboards]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/manifests.ts similarity index 51% rename from src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/tree/manifests.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/manifests.ts index 687d1e0477..562f33c7f7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/manifests.ts @@ -1,6 +1,8 @@ -import type { ManifestTree, ManifestTreeItemAction } from '@umbraco-cms/models'; +import type { ManifestTree, ManifestTreeItemAction, ManifestWorkspace } from '@umbraco-cms/extensions-registry'; -const treeAlias = 'Umb.Tree.DataTypes'; +const alias = 'DataType'; +const treeAlias = `Umb.Tree.${alias}`; +const workspaceAlias = `Umb.Workspace.${alias}`; const tree: ManifestTree = { type: 'tree', @@ -20,7 +22,7 @@ const treeItemActions: Array = [ type: 'treeItemAction', alias: 'Umb.TreeItemAction.DataType.Create', name: 'Tree Item Action Create', - loader: () => import('./actions/create/action-data-type-create.element'), + loader: () => import('./tree/actions/create/action-data-type-create.element'), weight: 200, meta: { trees: [treeAlias], @@ -32,7 +34,7 @@ const treeItemActions: Array = [ type: 'treeItemAction', alias: 'Umb.TreeItemAction.DataType.Delete', name: 'Tree Item Action Delete', - loader: () => import('./actions/delete/action-data-type-delete.element'), + loader: () => import('./tree/actions/delete/action-data-type-delete.element'), weight: 100, meta: { trees: [treeAlias], @@ -42,4 +44,14 @@ const treeItemActions: Array = [ }, ]; -export const manifests = [tree, ...treeItemActions]; +const workspace: ManifestWorkspace = { + type: 'workspace', + alias: workspaceAlias, + name: 'Data Type Workspace', + loader: () => import('./workspace/workspace-data-type.element'), + meta: { + entityType: 'data-type', + }, +}; + +export const manifests = [tree, ...treeItemActions, workspace]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/index.ts new file mode 100644 index 0000000000..df1dd314a2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/index.ts @@ -0,0 +1,13 @@ +import { manifests as dashboardManifests } from './dashboards/manifests'; +import { manifests as settingsSectionManifests } from './settings-section/manifests'; + +import { ManifestTypes, umbExtensionsRegistry } from '@umbraco-cms/extensions-registry'; + +const registerExtensions = (manifests: Array | Array) => { + manifests.forEach((manifest) => { + if (umbExtensionsRegistry.isRegistered(manifest.alias)) return; + umbExtensionsRegistry.register(manifest); + }); +}; + +registerExtensions([...settingsSectionManifests, ...dashboardManifests]); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/settings-section/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/settings-section/manifests.ts index eddbd80fbf..d95812dbf5 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/settings-section/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/settings-section/manifests.ts @@ -1,4 +1,4 @@ -import type { ManifestDashboard, ManifestSection } from '@umbraco-cms/models'; +import type { ManifestSection } from '@umbraco-cms/models'; const sectionAlias = 'Umb.Section.Settings'; @@ -13,85 +13,4 @@ const section: ManifestSection = { }, }; -const dashboards: Array = [ - { - type: 'dashboard', - alias: 'Umb.Dashboard.SettingsWelcome', - name: 'Welcome Settings Dashboard', - elementName: 'umb-dashboard-settings-welcome', - loader: () => import('../dashboards/settings-welcome/dashboard-settings-welcome.element'), - weight: 500, - meta: { - label: 'Welcome', - sections: [sectionAlias], - pathname: 'welcome', - }, - }, - { - type: 'dashboard', - alias: 'Umb.Dashboard.ExamineManagement', - name: 'Examine Management Dashboard', - elementName: 'umb-dashboard-examine-management', - loader: () => import('../dashboards/examine-management/dashboard-examine-management.element'), - weight: 400, - meta: { - label: 'Examine Management', - sections: [sectionAlias], - pathname: 'examine-management', - }, - }, - { - type: 'dashboard', - alias: 'Umb.Dashboard.ModelsBuilder', - name: 'Models Builder Dashboard', - elementName: 'umb-dashboard-models-builder', - loader: () => import('../dashboards/models-builder/dashboard-models-builder.element'), - weight: 300, - meta: { - label: 'Models Builder', - sections: [sectionAlias], - pathname: 'models-builder', - }, - }, - { - type: 'dashboard', - alias: 'Umb.Dashboard.PublishedStatus', - name: 'Published Status Dashboard', - elementName: 'umb-dashboard-published-status', - loader: () => import('../dashboards/published-status/dashboard-published-status.element'), - weight: 200, - meta: { - label: 'Published Status', - sections: [sectionAlias], - pathname: 'published-status', - }, - }, - { - type: 'dashboard', - alias: 'Umb.Dashboard.Profiling', - name: 'Profiling', - elementName: 'umb-dashboard-performance-profiling', - loader: () => import('../dashboards/performance-profiling/dashboard-performance-profiling.element'), - weight: 101, - meta: { - label: 'Profiling', - sections: [sectionAlias], - pathname: 'profiling', - }, - }, - { - type: 'dashboard', - alias: 'Umb.Dashboard.Telemetry', - name: 'Telemetry', - elementName: 'umb-dashboard-telemetry', - loader: () => import('../dashboards/telemetry/dashboard-telemetry.element'), - weight: 100, - meta: { - label: 'Telemetry Data', - sections: [sectionAlias], - pathname: 'telemetry', - }, - }, -]; - -export const manifests = [section, ...dashboards]; +export const manifests = [section]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/sections.manifest.ts b/src/Umbraco.Web.UI.Client/src/backoffice/sections.manifest.ts index 2db5f42c98..bcf5983382 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/sections.manifest.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/sections.manifest.ts @@ -3,7 +3,6 @@ import { manifests as userSectionManifests } from '../auth/users-section/manifests'; import { manifests as memberSectionManifests } from './members/members-section/manifests'; import { manifests as packageSectionManifests } from './packages/packages-section/manifests'; -import { manifests as settingsSectionManifests } from './core/settings-section/manifests'; import type { ManifestDashboard, @@ -13,4 +12,4 @@ import type { } from '@umbraco-cms/models'; export const manifests: Array = - [...memberSectionManifests, ...packageSectionManifests, ...settingsSectionManifests, ...userSectionManifests]; + [...memberSectionManifests, ...packageSectionManifests, ...userSectionManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees.manifest.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees.manifest.ts index e1b9bab052..3812c9d290 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/trees.manifest.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/trees.manifest.ts @@ -1,6 +1,6 @@ // TODO: temp file until we have a way to register from each extension -import { manifests as dataTypeTreeManifests } from './core/data-types/tree/manifests'; +import { manifests as dataTypeTreeManifests } from './core/data-types/manifests'; import { manifests as extensionTreeManifests } from './core/extensions/tree/manifests'; import { manifests as languageTreeManifests } from './core/languages/tree/manifests'; import { manifests as dictionaryTreeManifests } from './translation/dictionary/tree/dictionary-tree.manifest'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/workspaces.manifest.ts b/src/Umbraco.Web.UI.Client/src/backoffice/workspaces.manifest.ts index 486e65c721..d37810e7b2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/workspaces.manifest.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/workspaces.manifest.ts @@ -21,15 +21,6 @@ export const manifests: Array = [ entityType: 'member-group', }, }, - { - type: 'workspace', - alias: 'Umb.Workspace.DataType', - name: 'Data Type Workspace', - loader: () => import('./core/data-types/workspace/workspace-data-type.element'), - meta: { - entityType: 'data-type', - }, - }, { type: 'workspace', alias: 'Umb.Workspace.MediaType',