From 2f8fba9512cae3c537beb0597dde79db71cc6014 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 2 Nov 2024 21:00:48 +0100 Subject: [PATCH] add create collection action kind --- .../collection-create-action.element.ts | 0 .../collection/action/create/manifests.ts | 19 +++++++++++++++++++ .../core/collection/action/create/types.ts | 12 ++++++++++++ .../core/collection/action/manifests.ts | 4 ++++ .../src/packages/core/collection/manifests.ts | 2 ++ ...create-option-action-list-modal.element.ts | 16 +++++++++------- .../user/user/collection/action/manifests.ts | 3 +-- 7 files changed, 47 insertions(+), 9 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/{user/user/collection/action => core/collection/action/create}/collection-create-action.element.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/types.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/collection/action/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/collection-create-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/collection-create-action.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/collection-create-action.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/collection-create-action.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/manifests.ts new file mode 100644 index 0000000000..429fb41b26 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/manifests.ts @@ -0,0 +1,19 @@ +import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'kind', + alias: 'Umb.Kind.CollectionAction.Create', + matchKind: 'create', + matchType: 'collectionAction', + manifest: { + type: 'collectionAction', + kind: 'create', + element: () => import('./collection-create-action.element.js'), + weight: 1200, + meta: { + label: '#actions_create', + }, + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/types.ts new file mode 100644 index 0000000000..50ef773e2c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/types.ts @@ -0,0 +1,12 @@ +import type { ManifestCollectionAction } from '../../extensions/index.js'; + +export interface ManifestCollectionActionCreateKind extends ManifestCollectionAction { + type: 'collectionAction'; + kind: 'create'; +} + +declare global { + interface UmbExtensionManifestMap { + umbCollectionActionCreateKind: ManifestCollectionActionCreateKind; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/manifests.ts new file mode 100644 index 0000000000..19f4780244 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/manifests.ts @@ -0,0 +1,4 @@ +import { manifests as createManifests } from './create/manifests.js'; +import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [...createManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/manifests.ts index 1ee0674ee8..7433177e0c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/manifests.ts @@ -1,9 +1,11 @@ import type { UmbExtensionManifestKind } from '../extension-registry/registry.js'; import { manifest as collectionAliasCondition } from './collection-alias.manifest.js'; import { manifest as collectionBulkActionPermissionCondition } from './collection-bulk-action-permission.manifest.js'; +import { manifests as actionManifests } from './action/manifests.js'; import { manifests as workspaceViewManifests } from './workspace-view/manifests.js'; export const manifests: Array = [ + ...actionManifests, ...workspaceViewManifests, collectionAliasCondition, collectionBulkActionPermissionCondition, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/modal/entity-create-option-action-list-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/modal/entity-create-option-action-list-modal.element.ts index 3675770b96..2cb2537636 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/modal/entity-create-option-action-list-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/modal/entity-create-option-action-list-modal.element.ts @@ -85,13 +85,15 @@ export class UmbEntityCreateOptionActionListModalElement extends UmbModalBaseEle return html` - - ${repeat( - this._apiControllers, - (controller) => controller.manifest?.alias, - (controller, index) => this.#renderRefItem(controller, index), - )} - + ${this._apiControllers.length === 0 + ? html`
No create options available.
` + : html` + ${repeat( + this._apiControllers, + (controller) => controller.manifest?.alias, + (controller, index) => this.#renderRefItem(controller, index), + )} + `}
= [ { type: 'collectionAction', + kind: 'create', name: 'Create User Collection Action', alias: 'Umb.CollectionAction.User.Create', - element: () => import('./collection-create-action.element.js'), - weight: 200, conditions: [ { alias: UMB_COLLECTION_ALIAS_CONDITION,