Skip to content

Commit 7bad7fe

Browse files
authored
Merge pull request #1850 from umbraco/bugfix/request-reload-of-entity-after-unpublish
Bugfix: request reload of entity after unpublish
2 parents c35e248 + 74efd3d commit 7bad7fe

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

src/packages/documents/documents/entity-actions/unpublish.action.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,15 @@ import { UmbDocumentDetailRepository, UmbDocumentPublishingRepository } from '..
22
import type { UmbDocumentVariantOptionModel } from '../types.js';
33
import { UMB_DOCUMENT_UNPUBLISH_MODAL } from '../modals/index.js';
44
import { UMB_APP_LANGUAGE_CONTEXT, UmbLanguageCollectionRepository } from '@umbraco-cms/backoffice/language';
5-
import { type UmbEntityActionArgs, UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action';
5+
import {
6+
type UmbEntityActionArgs,
7+
UmbEntityActionBase,
8+
UmbRequestReloadStructureForEntityEvent,
9+
} from '@umbraco-cms/backoffice/entity-action';
610
import { UmbVariantId } from '@umbraco-cms/backoffice/variant';
711
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
812
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
13+
import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action';
914

1015
export class UmbUnpublishDocumentEntityAction extends UmbEntityActionBase<never> {
1116
constructor(host: UmbControllerHost, args: UmbEntityActionArgs<never>) {
@@ -73,6 +78,14 @@ export class UmbUnpublishDocumentEntityAction extends UmbEntityActionBase<never>
7378
if (variantIds.length) {
7479
const publishingRepository = new UmbDocumentPublishingRepository(this._host);
7580
await publishingRepository.unpublish(this.args.unique, variantIds);
81+
82+
const actionEventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT);
83+
const event = new UmbRequestReloadStructureForEntityEvent({
84+
unique: this.args.unique,
85+
entityType: this.args.entityType,
86+
});
87+
88+
actionEventContext.dispatchEvent(event);
7689
}
7790
}
7891
}

src/packages/documents/documents/entity-bulk-actions/unpublish/unpublish.action.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,19 @@ import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-act
88
import { UMB_APP_LANGUAGE_CONTEXT, UmbLanguageCollectionRepository } from '@umbraco-cms/backoffice/language';
99
import { UmbVariantId } from '@umbraco-cms/backoffice/variant';
1010
import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api';
11+
import { UMB_ENTITY_CONTEXT } from '@umbraco-cms/backoffice/entity';
12+
import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action';
13+
import { UmbRequestReloadChildrenOfEntityEvent } from '@umbraco-cms/backoffice/entity-action';
1114

1215
export class UmbDocumentUnpublishEntityBulkAction extends UmbEntityBulkActionBase<object> {
1316
async execute() {
17+
const entityContext = await this.getContext(UMB_ENTITY_CONTEXT);
18+
const entityType = entityContext.getEntityType();
19+
const unique = entityContext.getUnique();
20+
21+
if (!entityType) throw new Error('Entity type not found');
22+
if (unique === undefined) throw new Error('Entity unique not found');
23+
1424
// If there is only one selection, we can refer to the regular unpublish entity action:
1525
if (this.selection.length === 1) {
1626
const action = new UmbUnpublishDocumentEntityAction(this._host, {
@@ -43,6 +53,12 @@ export class UmbDocumentUnpublishEntityBulkAction extends UmbEntityBulkActionBas
4353

4454
const modalManagerContext = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
4555

56+
const eventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT);
57+
const event = new UmbRequestReloadChildrenOfEntityEvent({
58+
entityType,
59+
unique,
60+
});
61+
4662
// If there is only one language available, we can skip the modal and unpublish directly:
4763
if (options.length === 1) {
4864
const localizationController = new UmbLocalizationController(this._host);
@@ -62,6 +78,7 @@ export class UmbDocumentUnpublishEntityBulkAction extends UmbEntityBulkActionBas
6278
const variantId = new UmbVariantId(options[0].language.unique, null);
6379
const publishingRepository = new UmbDocumentPublishingRepository(this._host);
6480
await publishingRepository.unpublish(this.selection[0], [variantId]);
81+
eventContext.dispatchEvent(event);
6582
}
6683
return;
6784
}
@@ -95,6 +112,7 @@ export class UmbDocumentUnpublishEntityBulkAction extends UmbEntityBulkActionBas
95112
if (variantIds.length) {
96113
for (const unique of this.selection) {
97114
await repository.unpublish(unique, variantIds);
115+
eventContext.dispatchEvent(event);
98116
}
99117
}
100118
}

0 commit comments

Comments
 (0)