From 1d82901e6f4a44f59b6204d0fd0ea0a5e9460ff3 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Mon, 17 Jun 2024 10:52:36 +0200 Subject: [PATCH] user group and user start node links --- .../user-group-input.element.ts | 18 +++++++++++++++++- .../user-document-start-node.element.ts | 13 +++++++++++-- .../user-media-start-node.element.ts | 13 +++++++++++-- .../user-workspace-access.element.ts | 2 ++ 4 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/input-user-group/user-group-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/input-user-group/user-group-input.element.ts index 301e72db65..0124f429b9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/input-user-group/user-group-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/input-user-group/user-group-input.element.ts @@ -1,8 +1,11 @@ +import { UMB_USER_GROUP_ENTITY_TYPE } from '../../entity.js'; import type { UmbUserGroupItemModel } from '../../repository/index.js'; import { UmbUserGroupPickerContext } from './user-group-input.context.js'; import { css, html, customElement, property, state, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/modal'; +import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; @customElement('umb-user-group-input') @@ -74,6 +77,9 @@ export class UmbUserGroupInputElement extends UUIFormControlMixin(UmbLitElement, #pickerContext = new UmbUserGroupPickerContext(this); + @state() + private _editUserGroupPath = ''; + constructor() { super(); @@ -91,6 +97,15 @@ export class UmbUserGroupInputElement extends UUIFormControlMixin(UmbLitElement, this.observe(this.#pickerContext.selection, (selection) => (this.value = selection.join(',')), '_observeSelection'); this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems), '_observerItems'); + + new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + .addAdditionalPath(UMB_USER_GROUP_ENTITY_TYPE) + .onSetup(async () => { + return { data: { entityType: UMB_USER_GROUP_ENTITY_TYPE, preset: {} } }; + }) + .observeRouteBuilder((routeBuilder) => { + this._editUserGroupPath = routeBuilder({}); + }); } protected getFormElement() { @@ -110,8 +125,9 @@ export class UmbUserGroupInputElement extends UUIFormControlMixin(UmbLitElement, private _renderItem(item: UmbUserGroupItemModel) { if (!item.unique) return; + const href = `${this._editUserGroupPath}edit/${item.unique}`; return html` - + ${item.icon ? html`` : nothing} = []; + @property({ type: Boolean }) + readonly = false; + @state() _displayValue: Array = []; @@ -22,7 +25,10 @@ export class UmbUserDocumentStartNodeElement extends UmbLitElement { render() { if (this.uniques.length < 1) { return html` - + `; @@ -34,7 +40,10 @@ export class UmbUserDocumentStartNodeElement extends UmbLitElement { (item) => { return html` - + `; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts index 5a6912e24c..c8a9669de6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts @@ -8,6 +8,9 @@ export class UmbUserMediaStartNodeElement extends UmbLitElement { @property({ type: Array, attribute: false }) uniques: Array = []; + @property({ type: Boolean }) + readonly = false; + @state() _displayValue: Array = []; @@ -22,7 +25,10 @@ export class UmbUserMediaStartNodeElement extends UmbLitElement { render() { if (this.uniques.length < 1) { return html` - + `; @@ -34,7 +40,10 @@ export class UmbUserMediaStartNodeElement extends UmbLitElement { (item) => { return html` - + `; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-access/user-workspace-access.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-access/user-workspace-access.element.ts index d303ea8569..ecf6c1307d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-access/user-workspace-access.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-access/user-workspace-access.element.ts @@ -40,6 +40,7 @@ export class UmbUserWorkspaceAccessElement extends UmbLitElement { #renderDocumentStartNodes() { return html` Content reference.unique) || []}>`; } @@ -47,6 +48,7 @@ export class UmbUserWorkspaceAccessElement extends UmbLitElement { #renderMediaStartNodes() { return html` Media reference.unique) || []}>`; }