set headline

This commit is contained in:
Mads Rasmussen
2023-10-04 20:54:17 +02:00
parent c942acadb3
commit bff2dc439b
3 changed files with 34 additions and 11 deletions

View File

@@ -3,9 +3,13 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
export interface UmbEntityUserPermissionSettingsModalData {
unique: string;
entityType: string;
allowedPermissions: Array<string>;
headline?: string;
}
export type UmbEntityUserPermissionSettingsModalValue = undefined;
export type UmbEntityUserPermissionSettingsModalValue = {
allowedPermissions: Array<string>;
};
export const UMB_ENTITY_USER_PERMISSION_MODAL = new UmbModalToken<
UmbEntityUserPermissionSettingsModalData,

View File

@@ -110,9 +110,13 @@ export class UmbPermissionsModalElement extends UmbLitElement {
if (!id) throw new Error('Could not open permissions modal, no id was provided');
if (!this.data?.entityType) throw new Error('Could not open permissions modal, no entity type was provided');
const userGroupRef = this._userGroupRefs.find((userGroup) => userGroup.id == id);
const modalContext = this.#modalManagerContext?.open(UMB_ENTITY_USER_PERMISSION_MODAL, {
unique: id,
entityType: this.data.entityType,
allowedPermissions: userGroupRef?.permissions || [],
headline: `Permissions for ${userGroupRef?.name}`,
});
modalContext?.onSubmit().then((value) => {
@@ -124,6 +128,7 @@ export class UmbPermissionsModalElement extends UmbLitElement {
return html`
<umb-body-layout headline="Permissions for ${this._entityItem?.name}">
<uui-box>
Permissions set for User Groups for document: ${this.data?.entityType}:
<uui-ref-list>
${this._userGroupRefs.map(
(userGroup) =>

View File

@@ -1,4 +1,4 @@
import { html, customElement, property, state, css, nothing } from '@umbraco-cms/backoffice/external/lit';
import { html, customElement, property, css, nothing, state } from '@umbraco-cms/backoffice/external/lit';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
import {
UmbEntityUserPermissionSettingsModalData,
@@ -13,14 +13,29 @@ export class UmbEntityUserPermissionSettingsModalElement extends UmbLitElement {
@property({ attribute: false })
modalContext?: UmbModalContext<UmbEntityUserPermissionSettingsModalData, UmbEntityUserPermissionSettingsModalValue>;
#data?: UmbEntityUserPermissionSettingsModalData;
@property({ type: Object })
data?: UmbEntityUserPermissionSettingsModalData;
get data(): UmbEntityUserPermissionSettingsModalData | undefined {
return this.#data;
}
set data(data: UmbEntityUserPermissionSettingsModalData | undefined) {
this._entityType = data?.entityType;
this._allowedPermissions = data?.allowedPermissions ?? [];
this._headline = data?.headline ?? this._headline;
}
@state()
private _currentUserPermissionsForEntity: Array<string> = [];
_headline: string = 'Set permissions';
@state()
_entityType?: string;
@state()
_allowedPermissions: Array<string> = [];
private _handleConfirm() {
this.modalContext?.submit();
this.modalContext?.submit({ allowedPermissions: this._allowedPermissions });
}
private _handleCancel() {
@@ -29,18 +44,17 @@ export class UmbEntityUserPermissionSettingsModalElement extends UmbLitElement {
#onSelectedUserPermission(event: UmbSelectionChangeEvent) {
const target = event.target as any;
const selection = target.selectedPermissions;
this._allowedPermissions = target.selectedPermissions;
}
render() {
return html`
<umb-body-layout headline="Permissions">
<umb-body-layout headline=${this._headline}>
<uui-box>
Permissions for ${this.data?.entityType} + Render name here
${this.data?.entityType
${this._entityType
? html` <umb-entity-user-permission-settings-list
.entityType=${this.data?.entityType}
.selectedPermissions=${this._currentUserPermissionsForEntity || []}
.entityType=${this._entityType}
.selectedPermissions=${this._allowedPermissions}
@selection-change=${this.#onSelectedUserPermission}></umb-entity-user-permission-settings-list>`
: nothing}
</uui-box>