From 819c989284ccfe42acc9fc6fa1cab39f9e2adea3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 3 Mar 2024 23:14:53 +0100 Subject: [PATCH] add kinds for folder entity actions --- .../models/entity-action.model.ts | 22 +++++++++- .../models/entity-bulk-action.model.ts | 2 +- .../core/extension-registry/models/index.ts | 6 +++ .../create-folder.action.kind.ts | 20 ++++++++++ .../create-folder/create-folder.action.ts | 19 ++++----- .../delete-folder.action.kind.ts | 20 ++++++++++ .../delete-folder/delete-folder.action.ts | 40 +++++++++++++++---- .../folder-update/folder-update.action.ts | 22 ---------- .../core/tree/folder/entity-action/index.ts | 2 +- .../tree/folder/entity-action/manifests.ts | 5 +++ .../update-folder.action.kind.ts | 20 ++++++++++ .../update-folder/update-folder.action.ts | 27 +++++++++++++ .../packages/core/tree/folder/manifests.ts | 3 +- .../data-type/tree/folder/manifests.ts | 23 ++++------- .../document-types/tree/folder/manifests.ts | 4 +- .../media-types/tree/folder/manifests.ts | 4 +- 16 files changed, 176 insertions(+), 63 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.kind.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.kind.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/update-folder/update-folder.action.kind.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/update-folder/update-folder.action.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts index 9a21d60d09..7a303e1296 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts @@ -6,7 +6,7 @@ import type { ManifestElementAndApi, ManifestWithDynamicConditions } from '@umbr * An action to perform on an entity * For example for content you may wish to create a new document etc */ -export interface ManifestEntityAction +export interface ManifestEntityAction extends ManifestElementAndApi>, ManifestWithDynamicConditions { type: 'entityAction'; @@ -96,3 +96,23 @@ export interface MetaEntityActionMoveKind extends MetaEntityActionDefaultKind { itemRepositoryAlias: string; pickerModalAlias: string; } + +// FOLDER +export interface ManifestEntityActionCreateFolderKind extends ManifestEntityAction { + type: 'entityAction'; + kind: 'folderCreate'; +} + +export interface ManifestEntityActionUpdateFolderKind extends ManifestEntityAction { + type: 'entityAction'; + kind: 'folderUpdate'; +} + +export interface ManifestEntityActionDeleteFolderKind extends ManifestEntityAction { + type: 'entityAction'; + kind: 'folderDelete'; +} + +export interface MetaEntityActionFolderKind extends MetaEntityActionDefaultKind { + folderRepositoryAlias: string; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-bulk-action.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-bulk-action.model.ts index 25e7dcb6a8..984aa12384 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-bulk-action.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-bulk-action.model.ts @@ -7,7 +7,7 @@ import type { ManifestElementAndApi, ManifestWithDynamicConditions } from '@umbr * An action to perform on multiple entities * For example for content you may wish to move one or more documents in bulk */ -export interface ManifestEntityBulkAction +export interface ManifestEntityBulkAction extends ManifestElementAndApi>, ManifestWithDynamicConditions { type: 'entityBulkAction'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts index 4476167f6e..b129c8ba29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts @@ -10,6 +10,9 @@ import type { ManifestEntityActionReloadTreeItemChildrenKind, ManifestEntityActionDuplicateKind, ManifestEntityActionMoveKind, + ManifestEntityActionCreateFolderKind, + ManifestEntityActionUpdateFolderKind, + ManifestEntityActionDeleteFolderKind, } from './entity-action.model.js'; import type { ManifestDynamicRootOrigin, ManifestDynamicRootQueryStep } from './dynamic-root.model.js'; import type { ManifestEntityBulkAction } from './entity-bulk-action.model.js'; @@ -106,6 +109,9 @@ export type ManifestTypes = | ManifestEntityActionReloadTreeItemChildrenKind | ManifestEntityActionDuplicateKind | ManifestEntityActionMoveKind + | ManifestEntityActionCreateFolderKind + | ManifestEntityActionUpdateFolderKind + | ManifestEntityActionDeleteFolderKind | ManifestEntityBulkAction | ManifestEntryPoint | ManifestExternalLoginProvider diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.kind.ts new file mode 100644 index 0000000000..f1402adccf --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.kind.ts @@ -0,0 +1,20 @@ +import { UmbCreateFolderEntityAction } from './create-folder.action.js'; +import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifest: UmbBackofficeManifestKind = { + type: 'kind', + alias: 'Umb.Kind.EntityAction.Folder.Create', + matchKind: 'folderCreate', + matchType: 'entityAction', + manifest: { + type: 'entityAction', + kind: 'folderCreate', + api: UmbCreateFolderEntityAction, + weight: 900, + forEntityTypes: [], + meta: { + icon: 'icon-add', + label: 'Create folder...', + }, + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts index 98895278e9..3298b7dd21 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts @@ -1,30 +1,27 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { type UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import { UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/backoffice/tree'; -export class UmbCreateFolderEntityAction extends UmbEntityActionBase { - constructor(host: UmbControllerHost, args: any) { +export class UmbCreateFolderEntityAction extends UmbEntityActionBase { + constructor(host: UmbControllerHost, args: UmbEntityActionArgs) { super(host, args); } async execute() { - /* - if (!this.repository) return; - const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); const modalContext = modalManager.open(this, UMB_FOLDER_CREATE_MODAL, { data: { - folderRepositoryAlias: this.repositoryAlias, + folderRepositoryAlias: this.args.meta.folderRepositoryAlias, parent: { - unique: this.unique, - entityType: this.entityType, + unique: this.args.unique, + entityType: this.args.entityType, }, }, }); await modalContext.onSubmit(); - */ - console.log(`execute create-folder for: ${this.args.unique}`); } destroy(): void {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.kind.ts new file mode 100644 index 0000000000..881e14054e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.kind.ts @@ -0,0 +1,20 @@ +import { UmbDeleteFolderEntityAction } from './delete-folder.action.js'; +import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifest: UmbBackofficeManifestKind = { + type: 'kind', + alias: 'Umb.Kind.EntityAction.Folder.Delete', + matchKind: 'folderDelete', + matchType: 'entityAction', + manifest: { + type: 'entityAction', + kind: 'folderDelete', + api: UmbDeleteFolderEntityAction, + weight: 700, + forEntityTypes: [], + meta: { + icon: 'icon-trash', + label: 'Delete Folder...', + }, + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts index d9981763e3..b222b5ea5a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts @@ -1,24 +1,50 @@ +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; import type { UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; -export class UmbDeleteFolderEntityAction extends UmbEntityActionBase { - async execute() { - if (!this.unique) throw new Error('Unique is not available'); - if (!this.repository) return; +export class UmbDeleteFolderEntityAction extends UmbEntityActionBase { + // TODO: make base type for item and detail models + #folderRepository?: UmbFolderRepository; + #init: Promise; - const { data: folder } = await this.repository.request(this.unique); + constructor(host: UmbControllerHost, args: UmbEntityActionArgs) { + super(host, args); + + // TODO: We should properly look into how we can simplify the one time usage of a extension api, as its a bit of overkill to take conditions/overwrites and observation of extensions into play here: [NL] + // But since this happens when we execute an action, it does most likely not hurt any users, but it is a bit of a overkill to do this for every action: [NL] + this.#init = Promise.all([ + new UmbExtensionApiInitializer( + this._host, + umbExtensionsRegistry, + this.args.meta.folderRepositoryAlias, + [this._host], + (permitted, ctrl) => { + this.#folderRepository = permitted ? (ctrl.api as UmbFolderRepository) : undefined; + }, + ).asPromise(), + ]); + } + + async execute() { + if (!this.args.unique) throw new Error('Unique is not available'); + await this.#init; + + const { data: folder } = await this.#folderRepository!.request(this.args.unique); if (folder) { // TODO: maybe we can show something about how many items are part of the folder? - await umbConfirmModal(this._host, { headline: `Delete folder ${folder.name}`, content: 'Are you sure you want to delete this folder?', color: 'danger', confirmLabel: 'Delete', }); - await this.repository?.delete(this.unique); + + await this.#folderRepository?.delete(this.args.unique); } } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts deleted file mode 100644 index bb474770c2..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; -import { type UmbFolderRepository, UMB_FOLDER_UPDATE_MODAL } from '@umbraco-cms/backoffice/tree'; - -export class UmbFolderUpdateEntityAction< - T extends UmbFolderRepository = UmbFolderRepository, -> extends UmbEntityActionBase { - async execute() { - if (!this.unique) throw new Error('Unique is not available'); - if (!this.repository) return; - - const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); - const modalContext = modalManager.open(this, UMB_FOLDER_UPDATE_MODAL, { - data: { - folderRepositoryAlias: this.repositoryAlias, - unique: this.unique, - }, - }); - - await modalContext.onSubmit(); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/index.ts index fbdc5850f0..27afd8362f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/index.ts @@ -1,3 +1,3 @@ export * from './delete-folder/delete-folder.action.js'; -export * from './folder-update/folder-update.action.js'; +export * from './update-folder/update-folder.action.js'; export * from './create-folder/create-folder.action.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/manifests.ts new file mode 100644 index 0000000000..1f58200aa2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/manifests.ts @@ -0,0 +1,5 @@ +import { manifest as createKindManifest } from './create-folder/create-folder.action.kind.js'; +import { manifest as deleteKindManifest } from './delete-folder/delete-folder.action.kind.js'; +import { manifest as updateKindManifest } from './update-folder/update-folder.action.kind.js'; + +export const manifests = [createKindManifest, deleteKindManifest, updateKindManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/update-folder/update-folder.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/update-folder/update-folder.action.kind.ts new file mode 100644 index 0000000000..82cdb80e32 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/update-folder/update-folder.action.kind.ts @@ -0,0 +1,20 @@ +import { UmbUpdateFolderEntityAction } from './update-folder.action.js'; +import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifest: UmbBackofficeManifestKind = { + type: 'kind', + alias: 'Umb.Kind.EntityAction.Folder.Update', + matchKind: 'folderUpdate', + matchType: 'entityAction', + manifest: { + type: 'entityAction', + kind: 'folderUpdate', + api: UmbUpdateFolderEntityAction, + weight: 700, + forEntityTypes: [], + meta: { + icon: 'icon-edit', + label: 'Rename Folder...', + }, + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/update-folder/update-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/update-folder/update-folder.action.ts new file mode 100644 index 0000000000..2cd71fbf9d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/update-folder/update-folder.action.ts @@ -0,0 +1,27 @@ +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action'; +import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import { UMB_FOLDER_UPDATE_MODAL } from '@umbraco-cms/backoffice/tree'; + +export class UmbUpdateFolderEntityAction extends UmbEntityActionBase { + constructor(host: UmbControllerHost, args: UmbEntityActionArgs) { + super(host, args); + } + + async execute() { + if (!this.args.unique) throw new Error('Unique is not available'); + + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, UMB_FOLDER_UPDATE_MODAL, { + data: { + folderRepositoryAlias: this.args.meta.folderRepositoryAlias, + unique: this.args.unique, + }, + }); + + await modalContext.onSubmit(); + } + + destroy(): void {} +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/manifests.ts index 6361b1f612..e6a84fb437 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/manifests.ts @@ -1,3 +1,4 @@ import { manifests as modalManifests } from './modal/manifests.js'; +import { manifests as entityActionManifests } from './entity-action/manifests.js'; -export const manifests = [...modalManifests]; +export const manifests = [...modalManifests, ...entityActionManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/manifests.ts index 83cc7b5100..cddca44abd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/manifests.ts @@ -1,7 +1,6 @@ import { UMB_DATA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UmbDataTypeFolderRepository } from './data-type-folder.repository.js'; -import { UmbDeleteFolderEntityAction, UmbFolderUpdateEntityAction } from '@umbraco-cms/backoffice/tree'; -import type { ManifestEntityAction, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.DataType.Folder'; @@ -12,31 +11,25 @@ const folderRepository: ManifestRepository = { api: UmbDataTypeFolderRepository, }; -const entityActions: Array = [ +const entityActions: Array = [ { type: 'entityAction', - alias: 'Umb.EntityAction.DataType.RenameFolder', + alias: 'Umb.EntityAction.DataType.Folder.Rename', name: 'Rename Data Type Folder Entity Action', - weight: 800, - api: UmbFolderUpdateEntityAction, + kind: 'folderRename', forEntityTypes: [UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], meta: { - icon: 'icon-edit', - label: 'Rename Folder...', - repositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, + folderRepositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, }, }, { type: 'entityAction', - alias: 'Umb.EntityAction.DataType.DeleteFolder', + alias: 'Umb.EntityAction.DataType.Folder.Delete', name: 'Delete Data Type Folder Entity Action', - weight: 700, - api: UmbDeleteFolderEntityAction, + kind: 'folderDelete', forEntityTypes: [UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], meta: { - icon: 'icon-trash', - label: 'Delete Folder...', - repositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, + folderRepositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/manifests.ts index cff1ee1156..4cad258c2d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/manifests.ts @@ -1,6 +1,6 @@ import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UmbDocumentTypeFolderRepository } from './document-type-folder.repository.js'; -import { UmbDeleteFolderEntityAction, UmbFolderUpdateEntityAction } from '@umbraco-cms/backoffice/tree'; +import { UmbDeleteFolderEntityAction, UmbUpdateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import type { ManifestEntityAction, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.DocumentType.Folder'; @@ -18,7 +18,7 @@ const entityActions: Array = [ alias: 'Umb.EntityAction.DocumentType.RenameFolder', name: 'Rename Document Type Folder Entity Action', weight: 800, - api: UmbFolderUpdateEntityAction, + api: UmbUpdateFolderEntityAction, forEntityTypes: [UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE], meta: { icon: 'icon-edit', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts index 5fde0d3adb..8c44daaa40 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts @@ -1,5 +1,5 @@ import { UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UmbDeleteFolderEntityAction, UmbFolderUpdateEntityAction } from '@umbraco-cms/backoffice/tree'; +import { UmbDeleteFolderEntityAction, UmbUpdateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import type { ManifestEntityAction, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Folder'; @@ -17,7 +17,7 @@ const entityActions: Array = [ alias: 'Umb.EntityAction.MediaType.RenameFolder', name: 'Rename Media Type Folder Entity Action', weight: 800, - api: UmbFolderUpdateEntityAction, + api: UmbUpdateFolderEntityAction, forEntityTypes: [UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE], meta: { icon: 'icon-edit',