From 8ba77baa11556e1b6d96fb83a80e855277ad2197 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 9 Sep 2024 21:56:10 +0200 Subject: [PATCH] register root workspace --- .../src/packages/user/user/manifests.ts | 6 +- .../packages/user/user/menu-item/manifests.ts | 18 +++++ .../user/user/section-view/manifests.ts | 27 +++----- .../user-root-workspace-view.element.ts | 21 ++++++ .../users-section-view.element.ts | 67 ------------------- 5 files changed, 51 insertions(+), 88 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/user/user/menu-item/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/user-root-workspace-view.element.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/users-section-view.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/manifests.ts index 3eae6c756b..d842d25b03 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/manifests.ts @@ -9,9 +9,10 @@ import { manifests as propertyEditorManifests } from './property-editor/manifest import { manifests as repositoryManifests } from './repository/manifests.js'; import { manifests as sectionViewManifests } from './section-view/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; -import type { ManifestTypes, UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; -export const manifests: Array = [ +export const manifests: Array = [ ...clientCredentialManifests, ...collectionManifests, ...conditionsManifests, @@ -23,4 +24,5 @@ export const manifests: Array = [ ...repositoryManifests, ...sectionViewManifests, ...workspaceManifests, + ...menuItemManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/menu-item/manifests.ts new file mode 100644 index 0000000000..2239c2fe0f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/menu-item/manifests.ts @@ -0,0 +1,18 @@ +import { UMB_USER_MANAGEMENT_MENU_ALIAS } from '../../section/menu/constants.js'; +import { UMB_USER_ROOT_ENTITY_TYPE } from '../entity.js'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'menuItem', + alias: 'Umb.MenuItem.Users', + name: 'Users Menu Item', + weight: 100, + meta: { + label: '#treeHeaders_users', + icon: 'icon-user', + entityType: UMB_USER_ROOT_ENTITY_TYPE, + menus: [UMB_USER_MANAGEMENT_MENU_ALIAS], + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/manifests.ts index 8af99c6b24..aef4c6370e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/manifests.ts @@ -1,25 +1,14 @@ -import { UMB_USER_MANAGEMENT_SECTION_ALIAS } from '../../section/index.js'; -import type { ManifestSectionView, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import { UMB_USER_ROOT_ENTITY_TYPE } from '../entity.js'; +import type { ManifestTypes, UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; -const sectionsViews: Array = [ +export const manifests: Array = [ { - type: 'sectionView', - alias: 'Umb.SectionView.Users', - name: 'Users Section View', - js: () => import('./users-section-view.element.js'), - weight: 200, + type: 'workspace', + alias: 'Umb.Workspace.UserRoot', + name: 'User Root Workspace View', + element: () => import('./user-root-workspace-view.element.js'), meta: { - label: '#general_users', - pathname: 'users', - icon: 'icon-user', + entityType: UMB_USER_ROOT_ENTITY_TYPE, }, - conditions: [ - { - alias: 'Umb.Condition.SectionAlias', - match: UMB_USER_MANAGEMENT_SECTION_ALIAS, - }, - ], }, ]; - -export const manifests: Array = [...sectionsViews]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/user-root-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/user-root-workspace-view.element.ts new file mode 100644 index 0000000000..6e286dada3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/user-root-workspace-view.element.ts @@ -0,0 +1,21 @@ +import { UMB_USER_COLLECTION_ALIAS } from '../collection/index.js'; +import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; + +const elementName = 'umb-user-root-workspace'; +@customElement(elementName) +export class UmbUserRootWorkspaceElement extends UmbLitElement { + override render() { + return html` + ; + `; + } +} + +export { UmbUserRootWorkspaceElement as element }; + +declare global { + interface HTMLElementTagNameMap { + [elementName]: UmbUserRootWorkspaceElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/users-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/users-section-view.element.ts deleted file mode 100644 index 22f9d5069d..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/users-section-view.element.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { UMB_USER_COLLECTION_ALIAS } from '../collection/index.js'; -import { UMB_USER_ENTITY_TYPE, UMB_USER_ROOT_ENTITY_TYPE } from '../entity.js'; -import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UmbCollectionElement } from '@umbraco-cms/backoffice/collection'; -import { UmbWorkspaceElement } from '@umbraco-cms/backoffice/workspace'; -import { UmbEntityContext } from '@umbraco-cms/backoffice/entity'; - -@customElement('umb-section-view-users') -export class UmbSectionViewUsersElement extends UmbLitElement { - #routes: UmbRoute[] = [ - { - path: 'collection', - component: () => { - const element = new UmbCollectionElement(); - const entityContext = new UmbEntityContext(element); - entityContext.setEntityType(UMB_USER_ROOT_ENTITY_TYPE); - entityContext.setUnique(null); - element.setAttribute('alias', UMB_USER_COLLECTION_ALIAS); - return element; - }, - }, - { - path: 'user', - component: () => { - const element = new UmbWorkspaceElement(); - element.setAttribute('entity-type', UMB_USER_ENTITY_TYPE); - return element; - }, - }, - { - path: '', - redirectTo: 'collection', - }, - { - path: `**`, - component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - }, - ]; - - override render() { - return html` `; - } - - static override styles = [ - UmbTextStyles, - css` - :host { - height: 100%; - } - - #router-slot { - height: calc(100% - var(--umb-header-layout-height)); - } - `, - ]; -} - -export default UmbSectionViewUsersElement; - -declare global { - interface HTMLElementTagNameMap { - 'umb-section-view-users': UmbSectionViewUsersElement; - } -}