From 8f71c044da5443e8ffd0c2d8cd02d8e731f9d6b1 Mon Sep 17 00:00:00 2001 From: chvostek Date: Fri, 19 Jun 2026 15:01:23 +0200 Subject: [PATCH 1/2] [ETASK-29] Menu item creation in menu - handle frontend actions on task events --- .../src/lib/task/services/assign-task.service.ts | 7 +++++++ .../src/lib/task/services/cancel-task.service.ts | 7 +++++++ .../src/lib/task/services/finish-task.service.ts | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/projects/netgrif-components-core/src/lib/task/services/assign-task.service.ts b/projects/netgrif-components-core/src/lib/task/services/assign-task.service.ts index 8fcf82cebd..f26a6141ec 100644 --- a/projects/netgrif-components-core/src/lib/task/services/assign-task.service.ts +++ b/projects/netgrif-components-core/src/lib/task/services/assign-task.service.ts @@ -24,6 +24,8 @@ import {ChangedFieldsService} from '../../changed-fields/services/changed-fields import {EventService} from '../../event/services/event.service'; import {ChangedFieldsMap} from '../../event/services/interfaces/changed-fields-map'; import {TaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/task-event-outcome'; +import {FrontActionService} from "../../actions/services/front-action.service"; +import {FrontAction} from "../../data-fields/models/changed-fields"; /** @@ -41,6 +43,7 @@ export class AssignTaskService extends TaskHandlingService { protected _taskDataService: TaskDataService, protected _eventQueue: EventQueueService, protected _eventService: EventService, + protected _frontActionService: FrontActionService, protected _changedFieldsService: ChangedFieldsService, @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: TaskOperations, @Optional() _selectedCaseService: SelectedCaseService, @@ -124,6 +127,10 @@ export class AssignTaskService extends TaskHandlingService { if (!!changedFieldsMap) { this._changedFieldsService.emitChangedFields(changedFieldsMap); } + const frontActions: Array = this._eventService.parseFrontActionsFromOutcomeTree(outcomeResource.outcome); + if (frontActions?.length > 0) { + this._frontActionService.runAll(frontActions); + } forceReload ? this._taskOperations.forceReload() : this._taskOperations.reload(); this.completeActions(afterAction, nextEvent, true, outcomeResource.outcome as AssignTaskEventOutcome); this._snackBar.openSuccessSnackBar(!!outcomeResource.outcome.message diff --git a/projects/netgrif-components-core/src/lib/task/services/cancel-task.service.ts b/projects/netgrif-components-core/src/lib/task/services/cancel-task.service.ts index ab7a536ff9..9e490e66aa 100644 --- a/projects/netgrif-components-core/src/lib/task/services/cancel-task.service.ts +++ b/projects/netgrif-components-core/src/lib/task/services/cancel-task.service.ts @@ -26,6 +26,8 @@ import {ChangedFieldsService} from '../../changed-fields/services/changed-fields import { EventService} from '../../event/services/event.service'; import {ChangedFieldsMap} from '../../event/services/interfaces/changed-fields-map'; import {TaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/task-event-outcome'; +import {FrontActionService} from "../../actions/services/front-action.service"; +import {FrontAction} from "../../data-fields/models/changed-fields"; /** * Service that handles the logic of canceling a task. @@ -45,6 +47,7 @@ export class CancelTaskService extends TaskHandlingService { protected _eventQueue: EventQueueService, protected _eventService: EventService, protected _changedFieldsService: ChangedFieldsService, + protected _frontActionService: FrontActionService, @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: TaskOperations, @Optional() _selectedCaseService: SelectedCaseService, @Optional() protected _taskViewService: TaskViewService, @@ -126,6 +129,10 @@ export class CancelTaskService extends TaskHandlingService { if (!!changedFieldsMap) { this._changedFieldsService.emitChangedFields(changedFieldsMap); } + const frontActions: Array = this._eventService.parseFrontActionsFromOutcomeTree(outcomeResource.outcome); + if (frontActions?.length > 0) { + this._frontActionService.runAll(frontActions); + } forceReload ? this._taskOperations.forceReload() : this._taskOperations.reload(); this.completeActions(afterAction, nextEvent, true, outcomeResource.outcome as CancelTaskEventOutcome); } else if (outcomeResource.error !== undefined) { diff --git a/projects/netgrif-components-core/src/lib/task/services/finish-task.service.ts b/projects/netgrif-components-core/src/lib/task/services/finish-task.service.ts index c6c4b8af1d..5014181762 100644 --- a/projects/netgrif-components-core/src/lib/task/services/finish-task.service.ts +++ b/projects/netgrif-components-core/src/lib/task/services/finish-task.service.ts @@ -24,6 +24,8 @@ import {ChangedFieldsService} from '../../changed-fields/services/changed-fields import {EventService} from '../../event/services/event.service'; import {ChangedFieldsMap} from '../../event/services/interfaces/changed-fields-map'; import {TaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/task-event-outcome'; +import {FrontActionService} from '../../actions/services/front-action.service'; +import {FrontAction} from '../../data-fields/models/changed-fields'; /** @@ -43,6 +45,7 @@ export class FinishTaskService extends TaskHandlingService { protected _eventQueue: EventQueueService, protected _eventService: EventService, protected _changedFieldsService: ChangedFieldsService, + protected _frontActionService: FrontActionService, @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: TaskOperations, @Optional() _selectedCaseService: SelectedCaseService, _taskContentService: TaskContentService) { @@ -140,6 +143,10 @@ export class FinishTaskService extends TaskHandlingService { if (!!changedFieldsMap) { this._changedFieldsService.emitChangedFields(changedFieldsMap); } + const frontActions: Array = this._eventService.parseFrontActionsFromOutcomeTree(outcomeResource.outcome); + if (frontActions?.length > 0) { + this._frontActionService.runAll(frontActions); + } this._taskOperations.reload(); this.completeActions(afterAction, nextEvent, true, outcomeResource.outcome as FinishTaskEventOutcome); this._taskOperations.close(); From 20a14976553be1f0bd67654f324b5a3867d41897 Mon Sep 17 00:00:00 2001 From: chvostek Date: Fri, 19 Jun 2026 15:16:11 +0200 Subject: [PATCH 2/2] [ETASK-29] Menu item creation in menu - update quotes --- .../src/lib/task/services/assign-task.service.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/netgrif-components-core/src/lib/task/services/assign-task.service.ts b/projects/netgrif-components-core/src/lib/task/services/assign-task.service.ts index f26a6141ec..d2a13f9197 100644 --- a/projects/netgrif-components-core/src/lib/task/services/assign-task.service.ts +++ b/projects/netgrif-components-core/src/lib/task/services/assign-task.service.ts @@ -24,8 +24,8 @@ import {ChangedFieldsService} from '../../changed-fields/services/changed-fields import {EventService} from '../../event/services/event.service'; import {ChangedFieldsMap} from '../../event/services/interfaces/changed-fields-map'; import {TaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/task-event-outcome'; -import {FrontActionService} from "../../actions/services/front-action.service"; -import {FrontAction} from "../../data-fields/models/changed-fields"; +import {FrontActionService} from '../../actions/services/front-action.service'; +import {FrontAction} from '../../data-fields/models/changed-fields'; /**