From cbe0191b2810d4ae09c445b58d5ccaacb6fcb8c1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 2 Jan 2023 15:35:30 +0100 Subject: [PATCH] move data type manifests --- .../backoffice/core/data-types/manifests.ts | 59 +------------------ .../core/data-types/tree/manifests.ts | 45 ++++++++++++++ .../tree/tree-data-types.element.ts | 27 +-------- .../core/data-types/workspace/manifests.ts | 56 ++++++++++++++++++ .../workspace/workspace-data-type.element.ts | 49 --------------- .../src/backoffice/core/index.ts | 13 +++- .../src/backoffice/trees.manifest.ts | 3 - 7 files changed, 115 insertions(+), 137 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/tree/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/workspace/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/manifests.ts index 562f33c7f7..50ca8c1723 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/manifests.ts @@ -1,57 +1,4 @@ -import type { ManifestTree, ManifestTreeItemAction, ManifestWorkspace } from '@umbraco-cms/extensions-registry'; +import { manifests as treeManifests } from './tree/manifests'; +import { manifests as workspaceManifests } from './workspace/manifests'; -const alias = 'DataType'; -const treeAlias = `Umb.Tree.${alias}`; -const workspaceAlias = `Umb.Workspace.${alias}`; - -const tree: ManifestTree = { - type: 'tree', - alias: treeAlias, - name: 'Data Types Tree', - weight: 100, - meta: { - label: 'Data Types', - icon: 'umb:folder', - sections: ['Umb.Section.Settings'], - storeContextAlias: 'umbDataTypeStore', - }, -}; - -const treeItemActions: Array = [ - { - type: 'treeItemAction', - alias: 'Umb.TreeItemAction.DataType.Create', - name: 'Tree Item Action Create', - loader: () => import('./tree/actions/create/action-data-type-create.element'), - weight: 200, - meta: { - trees: [treeAlias], - label: 'Create', - icon: 'umb:add', - }, - }, - { - type: 'treeItemAction', - alias: 'Umb.TreeItemAction.DataType.Delete', - name: 'Tree Item Action Delete', - loader: () => import('./tree/actions/delete/action-data-type-delete.element'), - weight: 100, - meta: { - trees: [treeAlias], - label: 'Delete', - icon: 'umb:delete', - }, - }, -]; - -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]; +export const manifests = [...treeManifests, ...workspaceManifests]; 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/tree/manifests.ts new file mode 100644 index 0000000000..cc8d8c77f3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/tree/manifests.ts @@ -0,0 +1,45 @@ +import type { ManifestTree, ManifestTreeItemAction } from '@umbraco-cms/models'; + +const treeAlias = 'Umb.Tree.Documents'; + +const tree: ManifestTree = { + type: 'tree', + alias: 'Umb.Tree.DataTypes', + name: 'Data Types Tree', + weight: 100, + meta: { + label: 'Data Types', + icon: 'umb:folder', + sections: ['Umb.Section.Settings'], + storeContextAlias: 'umbDataTypeStore', + }, +}; + +const treeItemActions: Array = [ + { + type: 'treeItemAction', + alias: 'Umb.TreeItemAction.DataType.Create', + name: 'Tree Item Action Create', + loader: () => import('./actions/create/action-data-type-create.element'), + weight: 200, + meta: { + trees: ['Umb.Tree.DataTypes'], + label: 'Create', + icon: 'umb:add', + }, + }, + { + type: 'treeItemAction', + alias: 'Umb.TreeItemAction.DataType.Delete', + name: 'Tree Item Action Delete', + loader: () => import('./actions/delete/action-data-type-delete.element'), + weight: 100, + meta: { + trees: ['Umb.Tree.DataTypes'], + label: 'Delete', + icon: 'umb:delete', + }, + }, +]; + +export const manifests = [tree, ...treeItemActions]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/tree/tree-data-types.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/tree/tree-data-types.element.ts index 21f64dee1f..07ee1a8af2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/tree/tree-data-types.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/tree/tree-data-types.element.ts @@ -21,32 +21,7 @@ export class UmbTreeDataTypesElement extends UmbContextProviderMixin(UmbContextC } private _registerTreeItemActions() { - const dashboards: Array = [ - { - type: 'treeItemAction', - alias: 'Umb.TreeItemAction.DataType.Create', - name: 'Tree Item Action Create', - loader: () => import('./actions/create/action-data-type-create.element'), - weight: 200, - meta: { - trees: ['Umb.Tree.DataTypes'], - label: 'Create', - icon: 'umb:add', - }, - }, - { - type: 'treeItemAction', - alias: 'Umb.TreeItemAction.DataType.Delete', - name: 'Tree Item Action Delete', - loader: () => import('./actions/delete/action-data-type-delete.element'), - weight: 100, - meta: { - trees: ['Umb.Tree.DataTypes'], - label: 'Delete', - icon: 'umb:delete', - }, - }, - ]; + const dashboards: Array = []; dashboards.forEach((dashboard) => { if (umbExtensionsRegistry.isRegistered(dashboard.alias)) return; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/workspace/manifests.ts new file mode 100644 index 0000000000..8877b15e19 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/workspace/manifests.ts @@ -0,0 +1,56 @@ +import type { ManifestWorkspace, ManifestWorkspaceAction, ManifestWorkspaceView } from '@umbraco-cms/models'; + +const workspace: ManifestWorkspace = { + type: 'workspace', + alias: 'Umb.Workspace.DataType', + name: 'Data Type Workspace', + loader: () => import('./workspace-data-type.element'), + meta: { + entityType: 'data-type', + }, +}; + +const workspaceViews: Array = [ + { + type: 'workspaceView', + alias: 'Umb.WorkspaceView.DataType.Edit', + name: 'Data Type Workspace Edit View', + loader: () => import('./views/edit/workspace-view-data-type-edit.element'), + weight: 90, + meta: { + workspaces: ['Umb.Workspace.DataType'], + label: 'Edit', + pathname: 'edit', + icon: 'edit', + }, + }, + { + type: 'workspaceView', + alias: 'Umb.WorkspaceView.DataType.Info', + name: 'Data Type Workspace Info View', + loader: () => import('./views/info/workspace-view-data-type-info.element'), + weight: 90, + meta: { + workspaces: ['Umb.Workspace.DataType'], + label: 'Info', + pathname: 'info', + icon: 'info', + }, + }, +]; + +const workspaceActions: Array = [ + { + type: 'workspaceAction', + alias: 'Umb.WorkspaceAction.DataType.Save', + name: 'Save Data Type Workspace Action', + loader: () => import('src/backoffice/core/components/workspace/actions/save/workspace-action-node-save.element'), + meta: { + workspaces: ['Umb.Workspace.DataType'], + look: 'primary', + color: 'positive', + }, + }, +]; + +export const manifests = [workspace, ...workspaceViews, ...workspaceActions]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/workspace/workspace-data-type.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/workspace/workspace-data-type.element.ts index 009a8073b7..df0c86c417 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/workspace/workspace-data-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/data-types/workspace/workspace-data-type.element.ts @@ -52,9 +52,6 @@ export class UmbWorkspaceDataTypeElement extends UmbContextProviderMixin( constructor() { super(); - - this._registerExtensions(); - this.addEventListener('property-value-change', this._onPropertyValueChange); } @@ -76,52 +73,6 @@ export class UmbWorkspaceDataTypeElement extends UmbContextProviderMixin( this._observeWorkspace(); } } - private _registerExtensions() { - const extensions: Array = [ - { - type: 'workspaceView', - alias: 'Umb.WorkspaceView.DataType.Edit', - name: 'Data Type Workspace Edit View', - loader: () => import('./views/edit/workspace-view-data-type-edit.element'), - weight: 90, - meta: { - workspaces: ['Umb.Workspace.DataType'], - label: 'Edit', - pathname: 'edit', - icon: 'edit', - }, - }, - { - type: 'workspaceView', - alias: 'Umb.WorkspaceView.DataType.Info', - name: 'Data Type Workspace Info View', - loader: () => import('./views/info/workspace-view-data-type-info.element'), - weight: 90, - meta: { - workspaces: ['Umb.Workspace.DataType'], - label: 'Info', - pathname: 'info', - icon: 'info', - }, - }, - { - type: 'workspaceAction', - alias: 'Umb.WorkspaceAction.DataType.Save', - name: 'Save Data Type Workspace Action', - loader: () => import('../../components/workspace/actions/save/workspace-action-node-save.element'), - meta: { - workspaces: ['Umb.Workspace.DataType'], - look: 'primary', - color: 'positive' - }, - }, - ]; - - extensions.forEach((extension) => { - if (umbExtensionsRegistry.isRegistered(extension.alias)) return; - umbExtensionsRegistry.register(extension); - }); - } private _observeWorkspace() { if (!this._workspaceContext) return; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/index.ts index a9020fe5a1..7e32e57a07 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/index.ts @@ -1,7 +1,8 @@ -import { manifests as dashboardManifests } from './dashboards/manifests'; import { manifests as settingsSectionManifests } from './settings-section/manifests'; -import { manifests as languageManifests } from './languages/manifests'; +import { manifests as dashboardManifests } from './dashboards/manifests'; +import { manifests as dataTypeManifests } from './data-types/manifests'; import { manifests as extensionManifests } from './extensions/manifests'; +import { manifests as languageManifests } from './languages/manifests'; import { ManifestTypes, umbExtensionsRegistry } from '@umbraco-cms/extensions-registry'; @@ -12,4 +13,10 @@ const registerExtensions = (manifests: Array | Array = [ - ...dataTypeTreeManifests, ...extensionTreeManifests, ...mediaTypeTreeManifests, ...memberTypesTreeManifests,