move data type manifests

This commit is contained in:
Mads Rasmussen
2023-01-02 15:35:30 +01:00
parent 3754641a06
commit cbe0191b28
7 changed files with 115 additions and 137 deletions

View File

@@ -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<ManifestTreeItemAction> = [
{
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];

View File

@@ -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<ManifestTreeItemAction> = [
{
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];

View File

@@ -21,32 +21,7 @@ export class UmbTreeDataTypesElement extends UmbContextProviderMixin(UmbContextC
}
private _registerTreeItemActions() {
const dashboards: Array<ManifestTreeItemAction> = [
{
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<ManifestTreeItemAction> = [];
dashboards.forEach((dashboard) => {
if (umbExtensionsRegistry.isRegistered(dashboard.alias)) return;

View File

@@ -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<ManifestWorkspaceView> = [
{
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<ManifestWorkspaceAction> = [
{
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];

View File

@@ -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<any> = [
{
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;

View File

@@ -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<ManifestTypes> | Array<ManifestType
});
};
registerExtensions([...settingsSectionManifests, ...dashboardManifests, ...languageManifests, ...extensionManifests]);
registerExtensions([
...settingsSectionManifests,
...dashboardManifests,
...dataTypeManifests,
...extensionManifests,
...languageManifests,
]);

View File

@@ -1,6 +1,4 @@
// TODO: temp file until we have a way to register from each extension
import { manifests as dataTypeTreeManifests } from './core/data-types/manifests';
import { manifests as extensionTreeManifests } from './core/extensions/tree/manifests';
import { manifests as memberTypesTreeManifests } from './members/member-types/tree/manifests';
import { manifests as mediaTypeTreeManifests } from './media/media-types/tree/manifests';
@@ -8,7 +6,6 @@ import { manifests as mediaTypeTreeManifests } from './media/media-types/tree/ma
import type { ManifestTree, ManifestTreeItemAction, ManifestWorkspace } from '@umbraco-cms/models';
export const manifests: Array<ManifestTree | ManifestTreeItemAction | ManifestWorkspace> = [
...dataTypeTreeManifests,
...extensionTreeManifests,
...mediaTypeTreeManifests,
...memberTypesTreeManifests,