wire up publish/unpublish entity actions with the variant manager context

This commit is contained in:
Jacob Overgaard
2024-02-21 10:53:59 +01:00
parent 9db4ce1f91
commit 7537a633c0
3 changed files with 20 additions and 8 deletions

View File

@@ -79,7 +79,7 @@ const entityActions: Array<ManifestTypes> = [
api: UmbPublishDocumentEntityAction,
meta: {
icon: 'icon-globe',
label: 'Publish (TBD)',
label: 'Publish',
repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS,
entityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
},
@@ -91,7 +91,7 @@ const entityActions: Array<ManifestTypes> = [
api: UmbUnpublishDocumentEntityAction,
meta: {
icon: 'icon-globe',
label: 'Unpublish (TBD)',
label: 'Unpublish',
repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS,
entityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
},

View File

@@ -1,15 +1,21 @@
import { UMB_DOCUMENT_VARIANT_MANAGER_CONTEXT } from '../global-contexts/index.js';
import type { UmbDocumentPublishingRepository } from '../repository/index.js';
import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action';
import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
export class UmbPublishDocumentEntityAction extends UmbEntityActionBase<UmbDocumentPublishingRepository> {
#variantManagerContext?: typeof UMB_DOCUMENT_VARIANT_MANAGER_CONTEXT.TYPE;
constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) {
super(host, repositoryAlias, unique, entityType);
this.consumeContext(UMB_DOCUMENT_VARIANT_MANAGER_CONTEXT, (context) => {
this.#variantManagerContext = context;
});
}
async execute() {
console.log(`publish: ${this.unique}`);
// TODO: implement dialog or something to handle variants.
//await this.repository?.publish();
if (!this.#variantManagerContext) throw new Error('Variant manager context is missing');
await this.#variantManagerContext.publish(this.unique);
}
}

View File

@@ -1,15 +1,21 @@
import { UMB_DOCUMENT_VARIANT_MANAGER_CONTEXT } from '../global-contexts/index.js';
import type { UmbDocumentPublishingRepository } from '../repository/index.js';
import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action';
import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
export class UmbUnpublishDocumentEntityAction extends UmbEntityActionBase<UmbDocumentPublishingRepository> {
#variantManagerContext?: typeof UMB_DOCUMENT_VARIANT_MANAGER_CONTEXT.TYPE;
constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) {
super(host, repositoryAlias, unique, entityType);
this.consumeContext(UMB_DOCUMENT_VARIANT_MANAGER_CONTEXT, (context) => {
this.#variantManagerContext = context;
});
}
async execute() {
console.log(`unpublish: ${this.unique}`);
// TODO: implement dialog or something to handle variants.
//await this.repository?.unpublish();
if (!this.#variantManagerContext) throw new Error('Variant manager context is missing');
await this.#variantManagerContext.unpublish(this.unique);
}
}