@valtimo/task 13.50.1 → 13.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1520,7 +1520,7 @@ class TaskDetailContentComponent {
1520
1520
  });
1521
1521
  }
1522
1522
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskDetailContentComponent, deps: [{ token: i1$2.ConfigService }, { token: i2$1.DocumentService }, { token: i1$2.GlobalNotificationService }, { token: i2.IconService }, { token: i4$1.NGXLogger }, { token: i9.ValtimoModalService }, { token: i3.PermissionService }, { token: i7.ProcessLinkService }, { token: i1$3.Router }, { token: i9.FormIoStateService }, { token: TaskIntermediateSaveService }, { token: TaskService }, { token: i4.TranslateService }, { token: FORM_VIEW_MODEL_TOKEN, optional: true }, { token: FORM_CUSTOM_COMPONENT_TOKEN, optional: true }, { token: i7.UrlResolverService }], target: i0.ɵɵFactoryTarget.Component }); }
1523
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TaskDetailContentComponent, isStandalone: true, selector: "valtimo-task-detail-content", inputs: { task: "task", taskAndProcessLink: "taskAndProcessLink", modalClosed: "modalClosed" }, outputs: { closeModalEvent: "closeModalEvent", formSubmit: "formSubmit", activeChange: "activeChange", taskUpdated: "taskUpdated" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "formFlow", first: true, predicate: ["formFlow"], descendants: true }, { propertyName: "formCustomComponentDynamicContainer", first: true, predicate: ["formCustomComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n task: task$ | async,\n taskId: taskInstanceId$ | async,\n formDefinition: formDefinition$ | async,\n formDefinitionId: formDefinitionId$ | async,\n formName: formName$ | async,\n formIoFormData: formIoFormData$ | async,\n submission: submission$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n processLinkIsFormViewModel: processLinkIsFormViewModel$ | async,\n processLinkIsUiComponent: processLinkIsUiComponent$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n processLinkIsExternalPluginTaskForm: processLinkIsExternalPluginTaskForm$ | async,\n externalPluginTaskForm: externalPluginTaskForm$ | async,\n errorMessage: errorMessage$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n noFormNotification: noFormNotification$ | async,\n } as obs\"\n>\n @if (obs.loading) {\n <div style=\"width: 100%; display: flex; justify-content: center; padding: 1rem\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n } @else {\n <valtimo-form-io\n #form\n *ngIf=\"\n obs.formDefinition &&\n obs.submission &&\n obs.processLinkIsForm &&\n !obs.processLinkIsUiComponent &&\n !obs.processLinkIsFormViewModel\n \"\n [form]=\"obs.formDefinition\"\n [submission]=\"obs.submission\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n ></valtimo-form-io>\n\n <valtimo-form-flow\n #formFlow\n *ngIf=\"obs.processLinkIsFormFlow\"\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask(obs.task)\"\n (formFlowChange)=\"onFormFlowChangeEvent()\"\n ></valtimo-form-flow>\n\n <valtimo-task-external-plugin-form\n *ngIf=\"obs.processLinkIsExternalPluginTaskForm && obs.externalPluginTaskForm\"\n [bundleUrl]=\"obs.externalPluginTaskForm.bundleUrl\"\n [configurationId]=\"obs.externalPluginTaskForm.configurationId\"\n [processLinkId]=\"obs.externalPluginTaskForm.processLinkId\"\n [context]=\"obs.externalPluginTaskForm.context\"\n (completedEvent)=\"completeTask(obs.task)\"\n ></valtimo-task-external-plugin-form>\n\n @if (obs.noFormNotification) {\n <cds-inline-notification [notificationObj]=\"obs.noFormNotification\"></cds-inline-notification>\n }\n\n @if (obs.errorMessage) {\n <cds-inline-notification\n [notificationObj]=\"{\n type: 'error',\n title: ('interface.error' | translate),\n message: obs.errorMessage,\n showClose: false,\n lowContrast: true,\n }\"\n ></cds-inline-notification>\n }\n }\n\n <div>\n <ng-template #formViewModelComponent></ng-template>\n <ng-template #formCustomComponent></ng-template>\n </div>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i9.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "errors", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ProcessLinkModule }, { kind: "component", type: i7.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete", "formFlowChange"] }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: i2.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "component", type: i2.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }, { kind: "component", type: TaskExternalPluginFormComponent, selector: "valtimo-task-external-plugin-form", inputs: ["bundleUrl", "configurationId", "processLinkId", "context"], outputs: ["completedEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1523
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TaskDetailContentComponent, isStandalone: true, selector: "valtimo-task-detail-content", inputs: { task: "task", taskAndProcessLink: "taskAndProcessLink", modalClosed: "modalClosed" }, outputs: { closeModalEvent: "closeModalEvent", formSubmit: "formSubmit", activeChange: "activeChange", taskUpdated: "taskUpdated" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "formFlow", first: true, predicate: ["formFlow"], descendants: true }, { propertyName: "formCustomComponentDynamicContainer", first: true, predicate: ["formCustomComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n task: task$ | async,\n taskId: taskInstanceId$ | async,\n formDefinition: formDefinition$ | async,\n formDefinitionId: formDefinitionId$ | async,\n formName: formName$ | async,\n formIoFormData: formIoFormData$ | async,\n submission: submission$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n processLinkIsFormViewModel: processLinkIsFormViewModel$ | async,\n processLinkIsUiComponent: processLinkIsUiComponent$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n processLinkIsExternalPluginTaskForm: processLinkIsExternalPluginTaskForm$ | async,\n externalPluginTaskForm: externalPluginTaskForm$ | async,\n errorMessage: errorMessage$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n noFormNotification: noFormNotification$ | async,\n } as obs\"\n>\n @if (obs.loading) {\n <div style=\"width: 100%; display: flex; justify-content: center; padding: 1rem\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n } @else {\n <valtimo-form-io\n #form\n *ngIf=\"\n obs.formDefinition &&\n obs.submission &&\n obs.processLinkIsForm &&\n !obs.processLinkIsUiComponent &&\n !obs.processLinkIsFormViewModel\n \"\n [form]=\"obs.formDefinition\"\n [submission]=\"obs.submission\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n [preventDoubleSubmit]=\"true\"\n ></valtimo-form-io>\n\n <valtimo-form-flow\n #formFlow\n *ngIf=\"obs.processLinkIsFormFlow\"\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask(obs.task)\"\n (formFlowChange)=\"onFormFlowChangeEvent()\"\n ></valtimo-form-flow>\n\n <valtimo-task-external-plugin-form\n *ngIf=\"obs.processLinkIsExternalPluginTaskForm && obs.externalPluginTaskForm\"\n [bundleUrl]=\"obs.externalPluginTaskForm.bundleUrl\"\n [configurationId]=\"obs.externalPluginTaskForm.configurationId\"\n [processLinkId]=\"obs.externalPluginTaskForm.processLinkId\"\n [context]=\"obs.externalPluginTaskForm.context\"\n (completedEvent)=\"completeTask(obs.task)\"\n ></valtimo-task-external-plugin-form>\n\n @if (obs.noFormNotification) {\n <cds-inline-notification [notificationObj]=\"obs.noFormNotification\"></cds-inline-notification>\n }\n\n @if (obs.errorMessage) {\n <cds-inline-notification\n [notificationObj]=\"{\n type: 'error',\n title: ('interface.error' | translate),\n message: obs.errorMessage,\n showClose: false,\n lowContrast: true,\n }\"\n ></cds-inline-notification>\n }\n }\n\n <div>\n <ng-template #formViewModelComponent></ng-template>\n <ng-template #formCustomComponent></ng-template>\n </div>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i9.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "errors", "formRefresh$", "preventDoubleSubmit"], outputs: ["submit", "change", "event"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ProcessLinkModule }, { kind: "component", type: i7.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete", "formFlowChange"] }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: i2.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "component", type: i2.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }, { kind: "component", type: TaskExternalPluginFormComponent, selector: "valtimo-task-external-plugin-form", inputs: ["bundleUrl", "configurationId", "processLinkId", "context"], outputs: ["completedEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1524
1524
  }
1525
1525
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskDetailContentComponent, decorators: [{
1526
1526
  type: Component,
@@ -1532,7 +1532,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
1532
1532
  LoadingModule,
1533
1533
  NotificationModule,
1534
1534
  TaskExternalPluginFormComponent,
1535
- ], template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n task: task$ | async,\n taskId: taskInstanceId$ | async,\n formDefinition: formDefinition$ | async,\n formDefinitionId: formDefinitionId$ | async,\n formName: formName$ | async,\n formIoFormData: formIoFormData$ | async,\n submission: submission$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n processLinkIsFormViewModel: processLinkIsFormViewModel$ | async,\n processLinkIsUiComponent: processLinkIsUiComponent$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n processLinkIsExternalPluginTaskForm: processLinkIsExternalPluginTaskForm$ | async,\n externalPluginTaskForm: externalPluginTaskForm$ | async,\n errorMessage: errorMessage$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n noFormNotification: noFormNotification$ | async,\n } as obs\"\n>\n @if (obs.loading) {\n <div style=\"width: 100%; display: flex; justify-content: center; padding: 1rem\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n } @else {\n <valtimo-form-io\n #form\n *ngIf=\"\n obs.formDefinition &&\n obs.submission &&\n obs.processLinkIsForm &&\n !obs.processLinkIsUiComponent &&\n !obs.processLinkIsFormViewModel\n \"\n [form]=\"obs.formDefinition\"\n [submission]=\"obs.submission\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n ></valtimo-form-io>\n\n <valtimo-form-flow\n #formFlow\n *ngIf=\"obs.processLinkIsFormFlow\"\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask(obs.task)\"\n (formFlowChange)=\"onFormFlowChangeEvent()\"\n ></valtimo-form-flow>\n\n <valtimo-task-external-plugin-form\n *ngIf=\"obs.processLinkIsExternalPluginTaskForm && obs.externalPluginTaskForm\"\n [bundleUrl]=\"obs.externalPluginTaskForm.bundleUrl\"\n [configurationId]=\"obs.externalPluginTaskForm.configurationId\"\n [processLinkId]=\"obs.externalPluginTaskForm.processLinkId\"\n [context]=\"obs.externalPluginTaskForm.context\"\n (completedEvent)=\"completeTask(obs.task)\"\n ></valtimo-task-external-plugin-form>\n\n @if (obs.noFormNotification) {\n <cds-inline-notification [notificationObj]=\"obs.noFormNotification\"></cds-inline-notification>\n }\n\n @if (obs.errorMessage) {\n <cds-inline-notification\n [notificationObj]=\"{\n type: 'error',\n title: ('interface.error' | translate),\n message: obs.errorMessage,\n showClose: false,\n lowContrast: true,\n }\"\n ></cds-inline-notification>\n }\n }\n\n <div>\n <ng-template #formViewModelComponent></ng-template>\n <ng-template #formCustomComponent></ng-template>\n </div>\n</ng-container>\n" }]
1535
+ ], template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n task: task$ | async,\n taskId: taskInstanceId$ | async,\n formDefinition: formDefinition$ | async,\n formDefinitionId: formDefinitionId$ | async,\n formName: formName$ | async,\n formIoFormData: formIoFormData$ | async,\n submission: submission$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n processLinkIsFormViewModel: processLinkIsFormViewModel$ | async,\n processLinkIsUiComponent: processLinkIsUiComponent$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n processLinkIsExternalPluginTaskForm: processLinkIsExternalPluginTaskForm$ | async,\n externalPluginTaskForm: externalPluginTaskForm$ | async,\n errorMessage: errorMessage$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n noFormNotification: noFormNotification$ | async,\n } as obs\"\n>\n @if (obs.loading) {\n <div style=\"width: 100%; display: flex; justify-content: center; padding: 1rem\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n } @else {\n <valtimo-form-io\n #form\n *ngIf=\"\n obs.formDefinition &&\n obs.submission &&\n obs.processLinkIsForm &&\n !obs.processLinkIsUiComponent &&\n !obs.processLinkIsFormViewModel\n \"\n [form]=\"obs.formDefinition\"\n [submission]=\"obs.submission\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n [preventDoubleSubmit]=\"true\"\n ></valtimo-form-io>\n\n <valtimo-form-flow\n #formFlow\n *ngIf=\"obs.processLinkIsFormFlow\"\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask(obs.task)\"\n (formFlowChange)=\"onFormFlowChangeEvent()\"\n ></valtimo-form-flow>\n\n <valtimo-task-external-plugin-form\n *ngIf=\"obs.processLinkIsExternalPluginTaskForm && obs.externalPluginTaskForm\"\n [bundleUrl]=\"obs.externalPluginTaskForm.bundleUrl\"\n [configurationId]=\"obs.externalPluginTaskForm.configurationId\"\n [processLinkId]=\"obs.externalPluginTaskForm.processLinkId\"\n [context]=\"obs.externalPluginTaskForm.context\"\n (completedEvent)=\"completeTask(obs.task)\"\n ></valtimo-task-external-plugin-form>\n\n @if (obs.noFormNotification) {\n <cds-inline-notification [notificationObj]=\"obs.noFormNotification\"></cds-inline-notification>\n }\n\n @if (obs.errorMessage) {\n <cds-inline-notification\n [notificationObj]=\"{\n type: 'error',\n title: ('interface.error' | translate),\n message: obs.errorMessage,\n showClose: false,\n lowContrast: true,\n }\"\n ></cds-inline-notification>\n }\n }\n\n <div>\n <ng-template #formViewModelComponent></ng-template>\n <ng-template #formCustomComponent></ng-template>\n </div>\n</ng-container>\n" }]
1536
1536
  }], ctorParameters: () => [{ type: i1$2.ConfigService }, { type: i2$1.DocumentService }, { type: i1$2.GlobalNotificationService }, { type: i2.IconService }, { type: i4$1.NGXLogger }, { type: i9.ValtimoModalService }, { type: i3.PermissionService }, { type: i7.ProcessLinkService }, { type: i1$3.Router }, { type: i9.FormIoStateService }, { type: TaskIntermediateSaveService }, { type: TaskService }, { type: i4.TranslateService }, { type: undefined, decorators: [{
1537
1537
  type: Optional
1538
1538
  }, {
@@ -1628,6 +1628,7 @@ class TaskDetailIntermediateSaveComponent {
1628
1628
  this.taskValue = signal(null);
1629
1629
  this.page = signal(null);
1630
1630
  this.canAssignUserToTask = signal(false);
1631
+ this._processLinkType = signal(null);
1631
1632
  this.submission$ = this.taskIntermediateSaveService.submission$;
1632
1633
  this.formIoFormData$ = this.taskIntermediateSaveService.formIoFormData$;
1633
1634
  this.intermediateSaveEnabled$ = this.configService.getFeatureToggleObservable('enableIntermediateSave');
@@ -1637,7 +1638,10 @@ class TaskDetailIntermediateSaveComponent {
1637
1638
  saveCurrentProgress() {
1638
1639
  combineLatest([this.submission$, this.formIoFormData$])
1639
1640
  .pipe(take$1(1), switchMap(([submission, formIoFormData]) => {
1640
- const dataToSave = submission?.data ? submission.data : formIoFormData;
1641
+ // Form.io data is live; submission only tracks form-view-models
1642
+ const dataToSave = this._processLinkType() === 'form-view-model' && submission?.data
1643
+ ? submission.data
1644
+ : formIoFormData;
1641
1645
  const intermediateSaveRequest = {
1642
1646
  submission: dataToSave,
1643
1647
  taskInstanceId: this.taskValue()?.id ?? '',
@@ -1684,6 +1688,7 @@ class TaskDetailIntermediateSaveComponent {
1684
1688
  });
1685
1689
  }
1686
1690
  setFormFlow(processLink) {
1691
+ this._processLinkType.set(processLink?.type ?? null);
1687
1692
  if (processLink !== null && processLink.type === 'form-flow') {
1688
1693
  this.formFlowInstanceId$.next(processLink.properties.formFlowInstanceId);
1689
1694
  }
@@ -2086,7 +2091,7 @@ class TaskDetailModalComponent {
2086
2091
  }
2087
2092
  refreshTask(response) {
2088
2093
  const currentTask = this.task$.getValue();
2089
- const fetchedTask = response.task;
2094
+ const fetchedTask = response?.task;
2090
2095
  if (!currentTask || !fetchedTask)
2091
2096
  return;
2092
2097
  const mergedTask = { ...currentTask };
@@ -2097,6 +2102,16 @@ class TaskDetailModalComponent {
2097
2102
  }
2098
2103
  this.task$.next(mergedTask);
2099
2104
  }
2105
+ loadFullTask(taskId) {
2106
+ // No error toast on 403/404 — view permission check closes the modal
2107
+ this.taskService
2108
+ .getTask(taskId, ['403', '404'])
2109
+ .pipe(catchError$1(() => EMPTY))
2110
+ .subscribe(response => {
2111
+ if (this.task$.getValue()?.id === taskId)
2112
+ this.refreshTask(response);
2113
+ });
2114
+ }
2100
2115
  showAssigneeNotification(task) {
2101
2116
  if (task.assignee) {
2102
2117
  this.globalNotificationService.showToast({
@@ -2119,6 +2134,9 @@ class TaskDetailModalComponent {
2119
2134
  this.processLinkPreloaded$.next(false);
2120
2135
  if (task) {
2121
2136
  this.task$.next({ ...task });
2137
+ // Case-specific list rows only hold column values, not the assignment
2138
+ if (!('assignedTeam' in task))
2139
+ this.loadFullTask(task.id);
2122
2140
  }
2123
2141
  this.setPageFromTask(task);
2124
2142
  this.openModal();