wip can change alias

This commit is contained in:
Mads Rasmussen
2024-05-02 14:39:14 +02:00
parent 7fcdb604d9
commit ffbdb36465
5 changed files with 18 additions and 4 deletions

View File

@@ -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,

View File

@@ -37,13 +37,14 @@ export class UmbUserGroupServerDataSource implements UmbDetailDataSource<UmbUser
async createScaffold() {
const data: UmbUserGroupDetailModel = {
alias: '',
canChangeAlias: true,
documentRootAccess: false,
documentStartNode: null,
entityType: UMB_USER_GROUP_ENTITY_TYPE,
fallbackPermissions: [],
hasAccessToAllLanguages: false,
icon: 'icon-users',
isSystemGroup: false,
isDeletable: true,
languages: [],
mediaRootAccess: false,
mediaStartNode: null,
@@ -80,7 +81,8 @@ export class UmbUserGroupServerDataSource implements UmbDetailDataSource<UmbUser
fallbackPermissions: data.fallbackPermissions,
hasAccessToAllLanguages: data.hasAccessToAllLanguages,
icon: data.icon || null,
isSystemGroup: data.isSystemGroup,
isDeletable: false,
canChangeAlias: false,
languages: data.languages,
mediaRootAccess: data.mediaRootAccess,
mediaStartNode: data.mediaStartNode ? { unique: data.mediaStartNode.id } : null,

View File

@@ -2,13 +2,14 @@ import type { UmbUserGroupEntityType } from './entity.js';
export interface UmbUserGroupDetailModel {
alias: string;
canChangeAlias: boolean;
documentRootAccess: boolean;
documentStartNode: { unique: string } | null;
entityType: UmbUserGroupEntityType;
fallbackPermissions: Array<string>;
hasAccessToAllLanguages: boolean;
icon: string | null;
isSystemGroup: boolean;
isDeletable: boolean;
languages: Array<string>;
mediaRootAccess: boolean;
mediaStartNode: { unique: string } | null;

View File

@@ -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()}></umb-input-with-alias>
</div>

View File

@@ -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 || []);