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 b2f96ef2e..4855d8267 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'; /** @@ -42,6 +44,7 @@ export class AssignTaskService 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, @@ -121,9 +124,15 @@ export class AssignTaskService extends TaskHandlingService { this._taskContentService.updateStateData(outcomeResource.outcome as AssignTaskEventOutcome); const changedFieldsMap: ChangedFieldsMap = this._eventService .parseChangedFieldsFromOutcomeTree(outcomeResource.outcome); + const frontActions: Array = this._eventService.parseFrontActionsFromOutcomeTree(outcomeResource.outcome); + if (!!changedFieldsMap) { this._changedFieldsService.emitChangedFields(changedFieldsMap); } + 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 ab7a536ff..3c7085e2f 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 @@ -23,10 +23,11 @@ import {QueuedEvent} from '../../event-queue/model/queued-event'; import {AfterAction} from '../../utility/call-chain/after-action'; import {PermissionService} from '../../authorization/permission/permission.service'; import {ChangedFieldsService} from '../../changed-fields/services/changed-fields.service'; -import { EventService} from '../../event/services/event.service'; +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. */ @@ -49,7 +50,9 @@ export class CancelTaskService extends TaskHandlingService { @Optional() _selectedCaseService: SelectedCaseService, @Optional() protected _taskViewService: TaskViewService, _taskContentService: TaskContentService, - protected permissionService: PermissionService) { + protected permissionService: PermissionService, + protected _frontActionService: FrontActionService +) { super(_taskContentService, _selectedCaseService); } @@ -123,9 +126,15 @@ export class CancelTaskService extends TaskHandlingService { this._taskContentService.updateStateData(outcomeResource.outcome as CancelTaskEventOutcome); const changedFieldsMap: ChangedFieldsMap = this._eventService .parseChangedFieldsFromOutcomeTree(outcomeResource.outcome); + const frontActions: Array = this._eventService.parseFrontActionsFromOutcomeTree(outcomeResource.outcome); + if (!!changedFieldsMap) { this._changedFieldsService.emitChangedFields(changedFieldsMap); } + 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 9b812068f..c7938d2c1 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,7 +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'; /** * Service that handles the logic of finishing a task. @@ -45,7 +46,8 @@ export class FinishTaskService extends TaskHandlingService { protected _changedFieldsService: ChangedFieldsService, @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: TaskOperations, @Optional() _selectedCaseService: SelectedCaseService, - _taskContentService: TaskContentService) { + _taskContentService: TaskContentService, + protected _frontActionService: FrontActionService) { super(_taskContentService, _selectedCaseService); } @@ -136,9 +138,15 @@ export class FinishTaskService extends TaskHandlingService { this._taskContentService.updateStateData(outcomeResource.outcome as FinishTaskEventOutcome); const changedFieldsMap: ChangedFieldsMap = this._eventService .parseChangedFieldsFromOutcomeTree(outcomeResource.outcome); + const frontActions: Array = this._eventService.parseFrontActionsFromOutcomeTree(outcomeResource.outcome); + if (!!changedFieldsMap) { this._changedFieldsService.emitChangedFields(changedFieldsMap); } + if (frontActions?.length > 0) { + this._frontActionService.runAll(frontActions); + } + this._taskOperations.reload(); this.completeActions(afterAction, nextEvent, true, outcomeResource.outcome as FinishTaskEventOutcome); this._taskOperations.close(); diff --git a/projects/netgrif-components-core/src/lib/task/services/task-data.service.ts b/projects/netgrif-components-core/src/lib/task/services/task-data.service.ts index 654296068..de6fc4e1e 100644 --- a/projects/netgrif-components-core/src/lib/task/services/task-data.service.ts +++ b/projects/netgrif-components-core/src/lib/task/services/task-data.service.ts @@ -489,7 +489,7 @@ export class TaskDataService extends TaskHandlingService implements OnDestroy { if (Object.keys(changedFieldsMap).length > 0) { this._changedFieldsService.emitChangedFields(changedFieldsMap); } - if (!!frontActions && frontActions.length > 0) { + if (frontActions?.length > 0) { this._frontActionService.runAll(frontActions); } this.clearWaitingForResponseFlag(context.body);