restructure modules
This commit is contained in:
committed by
Niels Lyngsø
parent
ff73e5e542
commit
0664c6e5ca
@@ -1,10 +1,49 @@
|
||||
import { UmbEntityActionBase } from '../../entity-action-base.js';
|
||||
import type { UmbEntityActionArgs } from '../../types.js';
|
||||
import type { MetaEntityActionCreateKind } from './types.js';
|
||||
import { UMB_ENTITY_CREATE_OPTION_ACTION_LIST_MODAL } from './modal/index.js';
|
||||
import type { ManifestEntityCreateOptionAction } from './create-option-action/index.js';
|
||||
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import { createExtensionApi, UmbExtensionsManifestInitializer } from '@umbraco-cms/backoffice/extension-api';
|
||||
|
||||
export class UmbCreateEntityAction extends UmbEntityActionBase<MetaEntityActionCreateKind> {
|
||||
#hasSingleOption = true;
|
||||
#singleActionOptionManifest?: ManifestEntityCreateOptionAction;
|
||||
|
||||
constructor(host: UmbControllerHost, args: UmbEntityActionArgs<MetaEntityActionCreateKind>) {
|
||||
super(host, args);
|
||||
|
||||
new UmbExtensionsManifestInitializer(
|
||||
this,
|
||||
umbExtensionsRegistry,
|
||||
'entityCreateOptionAction',
|
||||
(ext) => ext.forEntityTypes.includes(this.args.entityType),
|
||||
async (actionOptions) => {
|
||||
this.#hasSingleOption = actionOptions.length === 1;
|
||||
this.#singleActionOptionManifest = this.#hasSingleOption
|
||||
? (actionOptions[0].manifest as ManifestEntityCreateOptionAction)
|
||||
: undefined;
|
||||
},
|
||||
'umbEntityActionsObserver',
|
||||
);
|
||||
}
|
||||
|
||||
override async execute() {
|
||||
if (this.#hasSingleOption) {
|
||||
if (!this.#singleActionOptionManifest) throw new Error('No first action manifest found');
|
||||
|
||||
const api = await createExtensionApi(this, this.#singleActionOptionManifest, [
|
||||
{ unique: this.args.unique, entityType: this.args.entityType, meta: this.#singleActionOptionManifest.meta },
|
||||
]);
|
||||
|
||||
if (!api) throw new Error(`Could not create api for ${this.#singleActionOptionManifest.alias}`);
|
||||
|
||||
await api.execute();
|
||||
return;
|
||||
}
|
||||
|
||||
const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
|
||||
const modalContext = modalManager.open(this, UMB_ENTITY_CREATE_OPTION_ACTION_LIST_MODAL, {
|
||||
data: {
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
export { UmbCreateEntityAction } from './create.action.js';
|
||||
export * from './create-option-action/index.js';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { manifest as createKindManifest } from './create.action.kind.js';
|
||||
import { manifests as modalManifests } from './modal/manifests.js';
|
||||
import { manifests as createOptionActionManifests } from './create-option-action/manifests.js';
|
||||
|
||||
export const manifests = [createKindManifest, ...modalManifests];
|
||||
export const manifests = [createKindManifest, ...modalManifests, ...createOptionActionManifests];
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { manifests as createEntityActionManifests } from './common/create/manifests.js';
|
||||
import { manifests as defaultEntityActionManifests } from './default/manifests.js';
|
||||
import { manifests as deleteEntityActionManifests } from './common/delete/manifests.js';
|
||||
import { manifests as duplicateEntityActionManifests } from './common/duplicate/manifests.js';
|
||||
@@ -6,7 +5,6 @@ import { manifests as duplicateEntityActionManifests } from './common/duplicate/
|
||||
import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest | UmbExtensionManifestKind> = [
|
||||
...createEntityActionManifests,
|
||||
...defaultEntityActionManifests,
|
||||
...deleteEntityActionManifests,
|
||||
...duplicateEntityActionManifests,
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
export { UMB_ENTITY_CONTEXT } from './entity.context-token.js';
|
||||
export { UmbEntityContext } from './entity.context.js';
|
||||
export * from './create-option-action/index.js';
|
||||
export type * from './types.js';
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
import { manifests as createOptionActionManifests } from './create-option-action/manifests.js';
|
||||
import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest | UmbExtensionManifestKind> = [...createOptionActionManifests];
|
||||
@@ -7,7 +7,6 @@ import { manifests as cultureManifests } from './culture/manifests.js';
|
||||
import { manifests as debugManifests } from './debug/manifests.js';
|
||||
import { manifests as entityActionManifests } from './entity-action/manifests.js';
|
||||
import { manifests as entityBulkActionManifests } from './entity-bulk-action/manifests.js';
|
||||
import { manifests as entityManifests } from './entity/manifests.js';
|
||||
import { manifests as extensionManifests } from './extension-registry/manifests.js';
|
||||
import { manifests as iconRegistryManifests } from './icon-registry/manifests.js';
|
||||
import { manifests as localizationManifests } from './localization/manifests.js';
|
||||
@@ -37,7 +36,6 @@ export const manifests: Array<UmbExtensionManifest | UmbExtensionManifestKind> =
|
||||
...debugManifests,
|
||||
...entityActionManifests,
|
||||
...entityBulkActionManifests,
|
||||
...entityManifests,
|
||||
...extensionManifests,
|
||||
...iconRegistryManifests,
|
||||
...localizationManifests,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { UmbEntityCreateOptionActionBase } from '@umbraco-cms/backoffice/entity';
|
||||
import { UmbEntityCreateOptionActionBase } from '@umbraco-cms/backoffice/entity-action';
|
||||
|
||||
export class UmbApiUserEntityCreateOptionAction extends UmbEntityCreateOptionActionBase<never> {
|
||||
override async execute() {
|
||||
|
||||
@@ -2,8 +2,10 @@ import { UMB_CREATE_USER_MODAL } from '../../../modals/create/create-user-modal.
|
||||
import type { UmbUserKindType } from '../../../utils/index.js';
|
||||
import { UmbUserKind } from '../../../utils/index.js';
|
||||
import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action';
|
||||
import { UmbEntityCreateOptionActionBase } from '@umbraco-cms/backoffice/entity';
|
||||
import { UmbRequestReloadChildrenOfEntityEvent } from '@umbraco-cms/backoffice/entity-action';
|
||||
import {
|
||||
UmbEntityCreateOptionActionBase,
|
||||
UmbRequestReloadChildrenOfEntityEvent,
|
||||
} from '@umbraco-cms/backoffice/entity-action';
|
||||
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
|
||||
|
||||
export class UmbDefaultUserEntityCreateOptionAction extends UmbEntityCreateOptionActionBase<never> {
|
||||
@@ -19,7 +21,7 @@ export class UmbDefaultUserEntityCreateOptionAction extends UmbEntityCreateOptio
|
||||
},
|
||||
});
|
||||
|
||||
modalContext
|
||||
await modalContext
|
||||
?.onSubmit()
|
||||
.then(() => {
|
||||
this.#requestReloadChildrenOfEntity();
|
||||
|
||||
Reference in New Issue
Block a user