diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/extensions/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/extensions/manifests.ts new file mode 100644 index 0000000000..4671ec9b04 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/trees/extensions/manifests.ts @@ -0,0 +1,18 @@ +import { ManifestTree } from '@umbraco-cms/extensions-registry'; + +const treeAlias = 'Umb.Tree.Extensions'; + +const tree: ManifestTree = { + type: 'tree', + alias: treeAlias, + name: 'Extensions Tree', + weight: 500, + meta: { + label: 'Extensions', + icon: 'umb:favorite', + sections: ['Umb.Section.Settings'], + rootNodeEntityType: 'extension-root', // TODO: how do we want to handle 'single node trees'. Trees without any children but still needs to open an workspace? Currently an workspace is chosen based on the entity type. The tree root node doesn't have one, so we need to tell which workspace to use. + }, +}; + +export const manifests = [tree]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/languages/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/languages/manifests.ts new file mode 100644 index 0000000000..bc091d0d89 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/trees/languages/manifests.ts @@ -0,0 +1,18 @@ +import type { ManifestTree } from '@umbraco-cms/models'; + +const treeAlias = 'Umb.Tree.Languages'; + +const tree: ManifestTree = { + type: 'tree', + alias: treeAlias, + name: 'Languages Tree', + weight: 100, + meta: { + label: 'Languages', + icon: 'umb:globe', + sections: ['Umb.Section.Settings'], + rootNodeEntityType: 'language-root', // TODO: how do we want to handle 'single node trees'. Trees without any children but still needs to open an workspace? Currently an workspace is chosen based on the entity type. The tree root node doesn't have one, so we need to tell which workspace to use. + }, +}; + +export const manifests = [tree]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/manifests.ts index 2f026943e5..1e794d3f9c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/trees/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/trees/manifests.ts @@ -1,86 +1,23 @@ import { manifests as dataTypeTreeManifests } from './data-types/manifests'; -import { manifests as documentTreeManifests } from './documents/manifests'; import { manifests as documentTypeTreeManifests } from './document-types/manifests'; +import { manifests as documentTreeManifests } from './documents/manifests'; +import { manifests as extensionTreeManifests } from './extensions/manifests'; +import { manifests as languageTreeManifests } from './languages/manifests'; +import { manifests as mediaTreeManifests } from './media/manifests'; +import { manifests as mediaTypeTreeManifests } from './media-types/manifests'; +import { manifests as memberGroupTreeManifests } from './member-groups/manifests'; +import { manifests as memberTypesTreeManifests } from './member-types/manifests'; + import type { ManifestTree, ManifestTreeItemAction } from '@umbraco-cms/models'; export const manifests: Array = [ - ...documentTypeTreeManifests, ...dataTypeTreeManifests, + ...documentTypeTreeManifests, ...documentTreeManifests, - { - type: 'tree', - alias: 'Umb.Tree.Extensions', - name: 'Extensions Tree', - weight: 500, - meta: { - label: 'Extensions', - icon: 'umb:favorite', - sections: ['Umb.Section.Settings'], - rootNodeEntityType: 'extension-root', // TODO: how do we want to handle 'single node trees'. Trees without any children but still needs to open an workspace? Currently an workspace is chosen based on the entity type. The tree root node doesn't have one, so we need to tell which workspace to use. - }, - }, - { - type: 'tree', - alias: 'Umb.Tree.MediaTypes', - name: 'Media Types Tree', - loader: () => import('./media-types/tree-media-types.element'), - weight: 300, - meta: { - label: 'Media Types', - icon: 'umb:folder', - sections: ['Umb.Section.Settings'], - storeContextAlias: 'umbMediaTypeStore', - }, - }, - { - type: 'tree', - alias: 'Umb.Tree.MemberTypes', - name: 'Member Types Tree', - loader: () => import('./member-types/tree-member-types.element'), - weight: 200, - meta: { - label: 'Member Types', - icon: 'umb:folder', - sections: ['Umb.Section.Settings'], - storeContextAlias: 'umbMemberTypeStore', - }, - }, - { - type: 'tree', - alias: 'Umb.Tree.MemberGroups', - name: 'Member Groups Tree', - loader: () => import('./member-groups/tree-member-groups.element'), - weight: 1, - meta: { - label: 'Member Groups', - icon: 'umb:folder', - sections: ['Umb.Section.Members'], - storeContextAlias: 'umbMemberGroupStore', - }, - }, - { - type: 'tree', - alias: 'Umb.Tree.Media', - name: 'Media Tree', - loader: () => import('./media/tree-media.element'), - weight: 100, - meta: { - label: 'Media', - icon: 'umb:folder', - sections: ['Umb.Section.Media'], - storeContextAlias: 'umbMediaStore', - }, - }, - { - type: 'tree', - alias: 'Umb.Tree.Languages', - name: 'Languages Tree', - weight: 100, - meta: { - label: 'Languages', - icon: 'umb:globe', - sections: ['Umb.Section.Settings'], - rootNodeEntityType: 'language-root', // TODO: how do we want to handle 'single node trees'. Trees without any children but still needs to open an workspace? Currently an workspace is chosen based on the entity type. The tree root node doesn't have one, so we need to tell which workspace to use. - }, - }, + ...extensionTreeManifests, + ...languageTreeManifests, + ...mediaTreeManifests, + ...mediaTypeTreeManifests, + ...memberGroupTreeManifests, + ...memberTypesTreeManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/media-types/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/media-types/manifests.ts new file mode 100644 index 0000000000..5e1e7630b3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/trees/media-types/manifests.ts @@ -0,0 +1,20 @@ +import type { ManifestTree, ManifestTreeItemAction } from '@umbraco-cms/models'; + +const treeAlias = 'Umb.Tree.MemberTypes'; + +const tree: ManifestTree = { + type: 'tree', + alias: treeAlias, + name: 'Member Types Tree', + weight: 200, + meta: { + label: 'Member Types', + icon: 'umb:folder', + sections: ['Umb.Section.Settings'], + storeContextAlias: 'umbMemberTypeStore', + }, +}; + +const treeItemActions: Array = []; + +export const manifests = [tree, ...treeItemActions]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/media-types/tree-media-types.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/media-types/tree-media-types.element.ts deleted file mode 100644 index b0fe87b975..0000000000 --- a/src/Umbraco.Web.UI.Client/src/backoffice/trees/media-types/tree-media-types.element.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { html } from 'lit'; -import { customElement } from 'lit/decorators.js'; -import { UmbTreeBase } from '../shared/tree-base.element'; - -import '../shared/tree-navigator.element'; - -@customElement('umb-tree-media-types') -export class UmbTreeMediaTypes extends UmbTreeBase { - render() { - return html``; - } -} - -export default UmbTreeMediaTypes; - -declare global { - interface HTMLElementTagNameMap { - 'umb-tree-media-types': UmbTreeMediaTypes; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/media/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/media/manifests.ts new file mode 100644 index 0000000000..78bae1f6bb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/trees/media/manifests.ts @@ -0,0 +1,20 @@ +import type { ManifestTree, ManifestTreeItemAction } from '@umbraco-cms/models'; + +const treeAlias = 'Umb.Tree.Media'; + +const tree: ManifestTree = { + type: 'tree', + alias: treeAlias, + name: 'Media Tree', + weight: 100, + meta: { + label: 'Media', + icon: 'umb:folder', + sections: ['Umb.Section.Media'], + storeContextAlias: 'umbMediaStore', + }, +}; + +const treeItemActions: Array = []; + +export const manifests = [tree, ...treeItemActions]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/media/tree-media.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/media/tree-media.element.ts deleted file mode 100644 index 8323c48540..0000000000 --- a/src/Umbraco.Web.UI.Client/src/backoffice/trees/media/tree-media.element.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { html } from 'lit'; -import { customElement } from 'lit/decorators.js'; -import { UmbTreeBase } from '../shared/tree-base.element'; - -import '../shared/tree-navigator.element'; - -@customElement('umb-tree-media') -export class UmbTreeMediaElement extends UmbTreeBase { - render() { - return html``; - } -} - -export default UmbTreeMediaElement; - -declare global { - interface HTMLElementTagNameMap { - 'umb-tree-media': UmbTreeMediaElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/member-groups/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/member-groups/manifests.ts new file mode 100644 index 0000000000..6a2c0086f6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/trees/member-groups/manifests.ts @@ -0,0 +1,20 @@ +import type { ManifestTree, ManifestTreeItemAction } from '@umbraco-cms/models'; + +const treeAlias = 'Umb.Tree.MemberGroups'; + +const tree: ManifestTree = { + type: 'tree', + alias: treeAlias, + name: 'Member Groups Tree', + weight: 1, + meta: { + label: 'Member Groups', + icon: 'umb:folder', + sections: ['Umb.Section.Members'], + storeContextAlias: 'umbMemberGroupStore', + }, +}; + +const treeItemActions: Array = []; + +export const manifests = [tree, ...treeItemActions]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/member-groups/tree-member-groups.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/member-groups/tree-member-groups.element.ts deleted file mode 100644 index 617236e5cf..0000000000 --- a/src/Umbraco.Web.UI.Client/src/backoffice/trees/member-groups/tree-member-groups.element.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { html } from 'lit'; -import { customElement } from 'lit/decorators.js'; -import { UmbTreeBase } from '../shared/tree-base.element'; - -import '../shared/tree-navigator.element'; - -@customElement('umb-tree-member-groups') -export class UmbTreeMemberGroups extends UmbTreeBase { - render() { - return html``; - } -} - -export default UmbTreeMemberGroups; - -declare global { - interface HTMLElementTagNameMap { - 'umb-tree-member-groups': UmbTreeMemberGroups; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/member-types/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/member-types/manifests.ts new file mode 100644 index 0000000000..5e1e7630b3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/trees/member-types/manifests.ts @@ -0,0 +1,20 @@ +import type { ManifestTree, ManifestTreeItemAction } from '@umbraco-cms/models'; + +const treeAlias = 'Umb.Tree.MemberTypes'; + +const tree: ManifestTree = { + type: 'tree', + alias: treeAlias, + name: 'Member Types Tree', + weight: 200, + meta: { + label: 'Member Types', + icon: 'umb:folder', + sections: ['Umb.Section.Settings'], + storeContextAlias: 'umbMemberTypeStore', + }, +}; + +const treeItemActions: Array = []; + +export const manifests = [tree, ...treeItemActions]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/member-types/tree-member-types.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/member-types/tree-member-types.element.ts deleted file mode 100644 index 23ce5b830b..0000000000 --- a/src/Umbraco.Web.UI.Client/src/backoffice/trees/member-types/tree-member-types.element.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { html } from 'lit'; -import { customElement } from 'lit/decorators.js'; -import { UmbTreeBase } from '../shared/tree-base.element'; - -import '../shared/tree-navigator.element'; - -@customElement('umb-tree-member-types') -export class UmbTreeMemberTypes extends UmbTreeBase { - render() { - return html``; - } -} - -export default UmbTreeMemberTypes; - -declare global { - interface HTMLElementTagNameMap { - 'umb-tree-member-types': UmbTreeMemberTypes; - } -}