reload data type folder

This commit is contained in:
Mads Rasmussen
2024-03-25 19:34:47 +01:00
parent 97429fc2d9
commit f677916ec9

View File

@@ -1,24 +1,27 @@
import { UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../tree/index.js';
import type { UmbDataTypeCreateOptionsModalData } from './index.js';
import { html, customElement } from '@umbraco-cms/backoffice/external/lit';
import { UmbModalBaseElement, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
import { UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/backoffice/tree';
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree';
@customElement('umb-data-type-create-options-modal')
export class UmbDataTypeCreateOptionsModalElement extends UmbModalBaseElement<UmbDataTypeCreateOptionsModalData> {
async #onClick(event: PointerEvent) {
event.stopPropagation();
#createFolderAction?: UmbCreateFolderEntityAction;
connectedCallback(): void {
super.connectedCallback();
if (!this.data?.parent) throw new Error('A parent is required to create a folder');
const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
const folderModalHandler = modalManager.open(this, UMB_FOLDER_CREATE_MODAL, {
data: {
// TODO: render the info from this instance in the list of actions
this.#createFolderAction = new UmbCreateFolderEntityAction(this, {
unique: this.data.parent.unique,
entityType: this.data.parent.entityType,
meta: {
icon: 'icon-folder',
label: 'New Folder...',
folderRepositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS,
parent: this.data.parent,
},
});
folderModalHandler?.onSubmit().then(() => this._submitModal());
}
#getCreateHref() {
@@ -27,6 +30,17 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbModalBaseElement<Um
}`;
}
async #onCreateFolderClick(event: PointerEvent) {
event.stopPropagation();
try {
await this.#createFolderAction?.execute();
this._submitModal();
} catch (error) {
console.error(error);
}
}
render() {
return html`
<umb-body-layout headline="Create Data Type">
@@ -35,8 +49,8 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbModalBaseElement<Um
<uui-menu-item href=${this.#getCreateHref()} label="New Data Type..." @click=${this._submitModal}>
<uui-icon slot="icon" name="icon-autofill"></uui-icon>
</uui-menu-item>
<uui-menu-item @click=${this.#onClick} label="New Folder...">
<uui-icon slot="icon" name="icon-folder"></uui-icon>
<uui-menu-item @click=${this.#onCreateFolderClick} label="New Folder...">
<uui-icon slot="icon" name="icon-folder"></uui-icon>}
</uui-menu-item>
</uui-box>
<uui-button slot="actions" id="cancel" label="Cancel" @click="${this._rejectModal}">Cancel</uui-button>