From b6108a097f704533cfe656771cdb0138d91c90b2 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 2 Feb 2023 10:49:50 +0100 Subject: [PATCH] rename delete to trash --- .../document-delete.entity-action.ts | 11 ----- .../document-trash.entity-action.ts | 45 +++++++++++++++++++ .../documents/entity-actions/manifests.ts | 10 ++--- 3 files changed, 50 insertions(+), 16 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/document-delete.entity-action.ts create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/document-trash.entity-action.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/document-delete.entity-action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/document-delete.entity-action.ts deleted file mode 100644 index 889c49dc61..0000000000 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/document-delete.entity-action.ts +++ /dev/null @@ -1,11 +0,0 @@ -export class DeleteDocumentEntityAction { - #host: any; - - constructor(host: any) { - this.#host = host; - } - - execute() { - alert('delete'); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/document-trash.entity-action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/document-trash.entity-action.ts new file mode 100644 index 0000000000..7bada10a2f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/document-trash.entity-action.ts @@ -0,0 +1,45 @@ +import { UmbTemplateTreeRepository } from '../../../templating/templates/tree/data/template.tree.repository'; +import { UmbTemplateDetailRepository } from '../../../templating/templates/workspace/data/template.detail.repository'; +import { UmbContextConsumerController } from '@umbraco-cms/context-api'; +import { UmbControllerHostInterface } from '@umbraco-cms/controller'; +import { UmbModalService, UMB_MODAL_SERVICE_CONTEXT_TOKEN } from '@umbraco-cms/modal'; + +export class TrashDocumentEntityAction { + #host: UmbControllerHostInterface; + #key: string; + #modalService?: UmbModalService; + #documentDetailRepo: UmbTemplateDetailRepository; + #documentTreeRepo: UmbTemplateTreeRepository; + + constructor(host: UmbControllerHostInterface, key: string) { + this.#host = host; + this.#key = key; + this.#documentTreeRepo = new UmbTemplateTreeRepository(this.#host); // TODO: change to document repo + this.#documentDetailRepo = new UmbTemplateDetailRepository(this.#host); // TODO: change to document repo + + new UmbContextConsumerController(this.#host, UMB_MODAL_SERVICE_CONTEXT_TOKEN, (instance) => { + this.#modalService = instance; + }); + } + + async execute() { + const { data } = await this.#documentTreeRepo.requestItems([this.#key]); + + if (data) { + const item = data[0]; + + const modalHandler = this.#modalService?.confirm({ + headline: `Delete ${item.name}`, + content: 'Are you sure you want to delete this item?', + color: 'danger', + confirmLabel: 'Delete', + }); + + modalHandler?.onClose().then(({ confirmed }) => { + if (confirmed) { + this.#documentDetailRepo.delete(this.#key); + } + }); + } + } +} diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/manifests.ts index 8c172251e4..ae810f12e0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/manifests.ts @@ -1,5 +1,5 @@ import { CreateDocumentEntityAction } from './document-create.entity-action'; -import { DeleteDocumentEntityAction } from './document-delete.entity-action'; +import { TrashDocumentEntityAction } from './document-trash.entity-action'; import { PublishDocumentEntityAction } from './document-publish.entity-action'; import { ManifestEntityAction } from 'libs/extensions-registry/entity-action.models'; @@ -17,13 +17,13 @@ const entityActions: Array = [ }, { type: 'entityAction', - alias: 'Umb.EntityAction.Document.Delete', - name: 'Delete Document Entity Action ', + alias: 'Umb.EntityAction.Document.Trash', + name: 'Trash Document Entity Action ', meta: { entityType: 'document', icon: 'umb:trash', - label: 'Delete', - api: DeleteDocumentEntityAction, + label: 'Trash', + api: TrashDocumentEntityAction, }, }, {