restructure modules

This commit is contained in:
Mads Rasmussen
2024-10-29 13:18:14 +01:00
committed by Niels Lyngsø
parent ff73e5e542
commit 0664c6e5ca
22 changed files with 48 additions and 14 deletions

View File

@@ -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: {

View File

@@ -1 +1,2 @@
export { UmbCreateEntityAction } from './create.action.js';
export * from './create-option-action/index.js';

View File

@@ -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];

View File

@@ -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,

View File

@@ -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';

View File

@@ -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];

View File

@@ -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,

View File

@@ -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() {

View File

@@ -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();