From ffbdb364658ce92a96a1fbd032db4961648d76f8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 2 May 2024 14:39:14 +0200 Subject: [PATCH] wip can change alias --- .../user-group-collection.server.data-source.ts | 3 ++- .../detail/user-group-detail.server.data-source.ts | 6 ++++-- .../src/packages/user/user-group/types.ts | 3 ++- .../workspace/user-group-workspace-editor.element.ts | 9 +++++++++ .../user-group/workspace/user-group-workspace.context.ts | 1 + 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.server.data-source.ts index c656550ed3..3626d5c4e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.server.data-source.ts @@ -34,13 +34,14 @@ export class UmbUserGroupCollectionServerDataSource implements UmbCollectionData const mappedItems = data.items.map((item) => { const userGroup: UmbUserGroupDetailModel = { alias: item.alias, + canChangeAlias: item.canChangeAlias, documentRootAccess: item.documentRootAccess, documentStartNode: item.documentStartNode ? { unique: item.documentStartNode.id } : null, entityType: UMB_USER_GROUP_ENTITY_TYPE, fallbackPermissions: item.fallbackPermissions, hasAccessToAllLanguages: item.hasAccessToAllLanguages, icon: item.icon || null, - isSystemGroup: item.isSystemGroup, + isDeletable: item.isDeletable, languages: item.languages, mediaRootAccess: item.mediaRootAccess, mediaStartNode: item.mediaStartNode ? { unique: item.mediaStartNode.id } : null, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/detail/user-group-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/detail/user-group-detail.server.data-source.ts index 32d6660a13..eede272151 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/detail/user-group-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/detail/user-group-detail.server.data-source.ts @@ -37,13 +37,14 @@ export class UmbUserGroupServerDataSource implements UmbDetailDataSource; hasAccessToAllLanguages: boolean; icon: string | null; - isSystemGroup: boolean; + isDeletable: boolean; languages: Array; mediaRootAccess: boolean; mediaStartNode: { unique: string } | null; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace-editor.element.ts index f9f40d8fb1..6454f8c037 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace-editor.element.ts @@ -30,6 +30,9 @@ export class UmbUserGroupWorkspaceEditorElement extends UmbLitElement { @state() private _alias?: UmbUserGroupDetailModel['alias']; + @state() + private _canChangeAlias: UmbUserGroupDetailModel['canChangeAlias'] = true; + @state() private _icon: UmbUserGroupDetailModel['icon'] = null; @@ -71,6 +74,11 @@ export class UmbUserGroupWorkspaceEditorElement extends UmbLitElement { this.observe(this.#workspaceContext.unique, (value) => (this._unique = value), '_observeUnique'); this.observe(this.#workspaceContext.name, (value) => (this._name = value), '_observeName'); this.observe(this.#workspaceContext.alias, (value) => (this._alias = value), '_observeAlias'); + this.observe( + this.#workspaceContext.canChangeAlias, + (value) => (this._canChangeAlias = value), + '_observeCanChangeAlias', + ); this.observe(this.#workspaceContext.icon, (value) => (this._icon = value), '_observeIcon'); this.observe(this.#workspaceContext.sections, (value) => (this._sections = value), '_observeSections'); this.observe(this.#workspaceContext.languages, (value) => (this._languages = value), '_observeLanguages'); @@ -212,6 +220,7 @@ export class UmbUserGroupWorkspaceEditorElement extends UmbLitElement { .value=${this._name} alias=${ifDefined(this._alias)} ?auto-generate-alias=${this._isNew} + alias-readonly=${!this._canChangeAlias} @change="${this.#onNameAndAliasChange}" ${umbFocus()}> diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts index f2690e03ab..eeb6e04eac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts @@ -24,6 +24,7 @@ export class UmbUserGroupWorkspaceContext readonly unique = this.#data.asObservablePart((data) => data?.unique); readonly name = this.#data.asObservablePart((data) => data?.name || ''); readonly alias = this.#data.asObservablePart((data) => data?.alias || ''); + readonly canChangeAlias = this.#data.asObservablePart((data) => data?.canChangeAlias || true); readonly icon = this.#data.asObservablePart((data) => data?.icon || null); readonly sections = this.#data.asObservablePart((data) => data?.sections || []); readonly languages = this.#data.asObservablePart((data) => data?.languages || []);