@valtimo/dossier 4.15.3-next-main.15 → 4.15.3-next-main.16
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.
- package/bundles/valtimo-dossier.umd.js +158 -108
- package/bundles/valtimo-dossier.umd.js.map +1 -1
- package/bundles/valtimo-dossier.umd.min.js +1 -1
- package/bundles/valtimo-dossier.umd.min.js.map +1 -1
- package/esm2015/lib/dossier-detail/dossier-detail.component.js +15 -10
- package/esm2015/lib/dossier-detail/tab/audit/audit.component.js +2 -2
- package/esm2015/lib/dossier-detail/tab/contact-moments/contact-moments.component.js +3 -3
- package/esm2015/lib/dossier-detail/tab/documents/documents.component.js +39 -21
- package/esm2015/lib/dossier-detail/tab/progress/progress.component.js +5 -3
- package/esm2015/lib/dossier-detail/tab/summary/summary.component.js +7 -5
- package/esm2015/lib/dossier-detail-tab-enum.js +1 -1
- package/esm2015/lib/dossier-list/dossier-list.component.js +11 -7
- package/esm2015/lib/dossier-process-start-modal/dossier-process-start-modal.component.js +16 -7
- package/esm2015/lib/dossier-routing.module.js +12 -11
- package/esm2015/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.js +16 -7
- package/esm2015/lib/dossier-update/dossier-update.component.js +6 -6
- package/esm2015/lib/dossier.config.js +2 -2
- package/esm2015/lib/dossier.module.js +13 -16
- package/esm2015/lib/dossier.service.js +6 -3
- package/esm2015/lib/tab.service.js +2 -2
- package/esm2015/public_api.js +1 -1
- package/esm2015/valtimo-dossier.js +1 -1
- package/fesm2015/valtimo-dossier.js +129 -82
- package/fesm2015/valtimo-dossier.js.map +1 -1
- package/lib/dossier-detail/tab/documents/documents.component.d.ts +10 -4
- package/package.json +1 -1
- package/valtimo-dossier.metadata.json +1 -1
|
@@ -78,7 +78,8 @@ class DossierProcessStartModalComponent {
|
|
|
78
78
|
}
|
|
79
79
|
loadFormDefinition() {
|
|
80
80
|
this.formDefinition = null;
|
|
81
|
-
this.formLinkService
|
|
81
|
+
this.formLinkService
|
|
82
|
+
.getStartEventFormDefinitionByProcessDefinitionKey(this.processDefinitionKey)
|
|
82
83
|
.subscribe(formDefinition => {
|
|
83
84
|
this.formAssociation = formDefinition.formAssociation;
|
|
84
85
|
const className = this.formAssociation.formLink.className.split('.');
|
|
@@ -123,15 +124,23 @@ class DossierProcessStartModalComponent {
|
|
|
123
124
|
}
|
|
124
125
|
onSubmit(submission) {
|
|
125
126
|
this.formioSubmission = submission;
|
|
126
|
-
this.formLinkService
|
|
127
|
+
this.formLinkService
|
|
128
|
+
.onSubmit(this.processDefinitionKey, this.formAssociation.formLink.id, submission.data)
|
|
129
|
+
.subscribe((formSubmissionResult) => {
|
|
127
130
|
this.modal.hide();
|
|
128
|
-
this.router.navigate([
|
|
131
|
+
this.router.navigate([
|
|
132
|
+
'dossiers',
|
|
133
|
+
this.documentDefinitionName,
|
|
134
|
+
'document',
|
|
135
|
+
formSubmissionResult.documentId,
|
|
136
|
+
'summary',
|
|
137
|
+
]);
|
|
129
138
|
}, errors => {
|
|
130
139
|
this.form.showErrors(errors);
|
|
131
140
|
});
|
|
132
141
|
}
|
|
133
142
|
isUserAdmin() {
|
|
134
|
-
this.userProviderService.getUserSubject().subscribe(
|
|
143
|
+
this.userProviderService.getUserSubject().subscribe(userIdentity => {
|
|
135
144
|
this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');
|
|
136
145
|
}, error => {
|
|
137
146
|
this.logger.error('Failed to retrieve user identity', error);
|
|
@@ -142,7 +151,7 @@ class DossierProcessStartModalComponent {
|
|
|
142
151
|
DossierProcessStartModalComponent.decorators = [
|
|
143
152
|
{ type: Component, args: [{
|
|
144
153
|
selector: 'valtimo-dossier-process-start-modal',
|
|
145
|
-
template: "<!--\n ~ Copyright 2015-2020 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<valtimo-modal #processStartModal elementId=\"processStartModal\" [title]=\"modalTitle\">\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io #form [form]=\"formDefinition\"
|
|
154
|
+
template: "<!--\n ~ Copyright 2015-2020 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<valtimo-modal #processStartModal elementId=\"processStartModal\" [title]=\"modalTitle\">\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io #form [form]=\"formDefinition\" [options]=\"options\" (submit)=\"onSubmit($event)\">\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"!formDefinition && isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundAdmin'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n <div body *ngIf=\"!formDefinition && !isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundUser'\"\n ></div>\n </div>\n</valtimo-modal>\n",
|
|
146
155
|
encapsulation: ViewEncapsulation.None,
|
|
147
156
|
styles: ["/*!\n * Copyright 2015-2020 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 */#processStartModal .formio-component-submit{text-align:right}"]
|
|
148
157
|
},] }
|
|
@@ -193,14 +202,17 @@ class DossierService {
|
|
|
193
202
|
const defaultColumn = columns.find(column => column.default);
|
|
194
203
|
return {
|
|
195
204
|
isSorting: false,
|
|
196
|
-
state: {
|
|
205
|
+
state: {
|
|
206
|
+
name: defaultColumn ? defaultColumn.propertyName : columns[0].propertyName,
|
|
207
|
+
direction: 'DESC',
|
|
208
|
+
},
|
|
197
209
|
};
|
|
198
210
|
}
|
|
199
211
|
}
|
|
200
212
|
DossierService.ɵprov = ɵɵdefineInjectable({ factory: function DossierService_Factory() { return new DossierService(ɵɵinject(ConfigService)); }, token: DossierService, providedIn: "root" });
|
|
201
213
|
DossierService.decorators = [
|
|
202
214
|
{ type: Injectable, args: [{
|
|
203
|
-
providedIn: 'root'
|
|
215
|
+
providedIn: 'root',
|
|
204
216
|
},] }
|
|
205
217
|
];
|
|
206
218
|
DossierService.ctorParameters = () => [
|
|
@@ -242,7 +254,7 @@ class DossierListComponent {
|
|
|
242
254
|
page: 1,
|
|
243
255
|
size: 10,
|
|
244
256
|
maxPaginationItemSize: 5,
|
|
245
|
-
sort: undefined
|
|
257
|
+
sort: undefined,
|
|
246
258
|
};
|
|
247
259
|
this.selectedProcessDocumentDefinition = null;
|
|
248
260
|
this.modalListenerAdded = false;
|
|
@@ -313,8 +325,8 @@ class DossierListComponent {
|
|
|
313
325
|
this.processDefinitionListFields = [
|
|
314
326
|
{
|
|
315
327
|
key: 'processName',
|
|
316
|
-
label: 'Proces'
|
|
317
|
-
}
|
|
328
|
+
label: 'Proces',
|
|
329
|
+
},
|
|
318
330
|
];
|
|
319
331
|
});
|
|
320
332
|
}
|
|
@@ -323,7 +335,9 @@ class DossierListComponent {
|
|
|
323
335
|
return new DocumentSearchRequestImpl(json.definitionName, this.pagination.page - 1, this.pagination.size, json.sequence, json.createdBy, json.globalSearchFilter, json.sort);
|
|
324
336
|
}
|
|
325
337
|
buildDocumentSearchRequest() {
|
|
326
|
-
return new DocumentSearchRequestImpl(this.documentDefinitionName, this.pagination.page - 1, this.pagination.size, this.sequence, this.createdBy, this.globalSearchFilter, this.pagination.sort && this.pagination.sort.isSorting
|
|
338
|
+
return new DocumentSearchRequestImpl(this.documentDefinitionName, this.pagination.page - 1, this.pagination.size, this.sequence, this.createdBy, this.globalSearchFilter, this.pagination.sort && this.pagination.sort.isSorting
|
|
339
|
+
? this.pagination.sort
|
|
340
|
+
: this.initialSortState);
|
|
327
341
|
}
|
|
328
342
|
storeSearch(documentSearchRequest) {
|
|
329
343
|
localStorage.setItem(this.getCachedKey(), JSON.stringify(documentSearchRequest));
|
|
@@ -338,7 +352,9 @@ class DossierListComponent {
|
|
|
338
352
|
return 'list-search-' + this.documentDefinitionName;
|
|
339
353
|
}
|
|
340
354
|
rowClick(document) {
|
|
341
|
-
this.router.navigate([
|
|
355
|
+
this.router.navigate([
|
|
356
|
+
`/dossiers/${this.documentDefinitionName}/document/${document.id}/${DefaultTabs.summary}`,
|
|
357
|
+
]);
|
|
342
358
|
}
|
|
343
359
|
startDossier() {
|
|
344
360
|
if (this.processDocumentDefinitions.length > 1) {
|
|
@@ -394,7 +410,7 @@ class DossierListComponent {
|
|
|
394
410
|
DossierListComponent.decorators = [
|
|
395
411
|
{ type: Component, args: [{
|
|
396
412
|
selector: 'valtimo-dossier-list',
|
|
397
|
-
template: "<!--\n ~ Copyright 2015-2020 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 *ngTemplateOutlet=\"sidebar\"></ng-container>\n\n<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <div>\n <div class=\"text-right mt-m3px mb-3\">\n <button\n type=\"button\"\n class=\"btn btn-space btn-primary mr-0\"\n (click)=\"startDossier()\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n placement=\"bottom\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n >\n {{ 'Start Dossier' | translate }}\n </button>\n </div>\n\n <div\n class=\"modal fade\"\n id=\"startProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"startProcessLabel\"\n aria-hidden=\"true\"\n >\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"startProcessLabel\"
|
|
413
|
+
template: "<!--\n ~ Copyright 2015-2020 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 *ngTemplateOutlet=\"sidebar\"></ng-container>\n\n<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <div>\n <div class=\"text-right mt-m3px mb-3\">\n <button\n type=\"button\"\n class=\"btn btn-space btn-primary mr-0\"\n (click)=\"startDossier()\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n placement=\"bottom\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n >\n {{ 'Start Dossier' | translate }}\n </button>\n </div>\n\n <div\n class=\"modal fade\"\n id=\"startProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"startProcessLabel\"\n aria-hidden=\"true\"\n >\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"startProcessLabel\">\n {{ 'dashboard.startProcess.title' | translate }}\n </h3>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"table-responsive\">\n <table class=\"table m-0\">\n <tr\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n (click)=\"selectProcess(processDocumentDefinition)\"\n style=\"cursor: pointer\"\n >\n <td>{{ processDocumentDefinition.processName }}</td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">\n {{ 'cta.close' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <valtimo-widget>\n <valtimo-list\n [items]=\"items\"\n [fields]=\"fields\"\n (rowClicked)=\"rowClick($event)\"\n [pagination]=\"pagination\"\n [viewMode]=\"true\"\n [header]=\"true\"\n paginationIdentifier=\"dossierList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet()\"\n [initialSortState]=\"getInitialSortState()\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n {{ schema?.title }}\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{\n documents?.content.length || 0\n }}</sup>\n </h3>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </div>\n </div>\n <valtimo-dossier-process-start-modal #processStartModal></valtimo-dossier-process-start-modal>\n</div>\n\n<ng-template #sidebar>\n <valtimo-filter-sidebar>\n <h4 class=\"title\">Search</h4>\n <div class=\"mb-4\">\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'dossier.forms.globalSearchPlaceHolder' | translate }}\"\n [(ngModel)]=\"globalSearchFilter\"\n (blur)=\"doSearch()\"\n (keyup.enter)=\"doSearch()\"\n />\n </div>\n\n <div class=\"mb-4\">\n <input\n type=\"number\"\n class=\"form-control\"\n placeholder=\"{{ 'dossier.forms.referenceNumberPlaceHolder' | translate }}\"\n [(ngModel)]=\"sequence\"\n (blur)=\"doSearch()\"\n (keyup.enter)=\"doSearch()\"\n />\n </div>\n </valtimo-filter-sidebar>\n</ng-template>\n",
|
|
398
414
|
styles: [""]
|
|
399
415
|
},] }
|
|
400
416
|
];
|
|
@@ -468,7 +484,9 @@ class DossierDetailTabSummaryComponent {
|
|
|
468
484
|
});
|
|
469
485
|
}
|
|
470
486
|
loadProcessDocumentInstances(documentId) {
|
|
471
|
-
this.documentService
|
|
487
|
+
this.documentService
|
|
488
|
+
.findProcessDocumentInstances(documentId)
|
|
489
|
+
.subscribe(processDocumentInstances => {
|
|
472
490
|
this.processDocumentInstances = processDocumentInstances;
|
|
473
491
|
this.processDocumentInstances.forEach(instance => {
|
|
474
492
|
this.loadProcessInstanceTasks(instance.id.processInstanceId);
|
|
@@ -504,7 +522,7 @@ class DossierDetailTabSummaryComponent {
|
|
|
504
522
|
DossierDetailTabSummaryComponent.decorators = [
|
|
505
523
|
{ type: Component, args: [{
|
|
506
524
|
selector: 'valtimo-dossier-detail-tab-summary',
|
|
507
|
-
template: "<!--\n ~ Copyright 2015-2020 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<div class=\"container-fluid\">\n <div class=\"row py-4\">\n <div class=\"col-sm-12 col-md-8 col-xl-9\">\n <div *ngIf=\"document\">\n <div *ngIf=\"formDefinition\" class=\"summaryForm\">\n <div class=\"mb-4\">\n <valtimo-form-io [form]=\"formDefinition\" [options]=\"options\"></valtimo-form-io>\n </div>\n </div>\n </div>\n </div>\n\n <!--Current user tasks right side-->\n <div class=\"col-sm-12 col-md-4 col-xl-3\">\n <h4 class=\"user-tasks-title\">User tasks</h4>\n <ng-container *ngIf=\"!tasks.length\">\n <valtimo-widget>\n <div class=\"p-3\">\n <img class=\"float-left\" src=\"assets/audit-2.png\" height=\"25\" />\n <span class=\"float-right\">{{ 'summary.userTasksDoneState' | translate }}</span>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </ng-container>\n <ng-container *ngFor=\"let task of tasks\">\n <valtimo-widget>\n <div
|
|
525
|
+
template: "<!--\n ~ Copyright 2015-2020 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<div class=\"container-fluid\">\n <div class=\"row py-4\">\n <div class=\"col-sm-12 col-md-8 col-xl-9\">\n <div *ngIf=\"document\">\n <div *ngIf=\"formDefinition\" class=\"summaryForm\">\n <div class=\"mb-4\">\n <valtimo-form-io [form]=\"formDefinition\" [options]=\"options\"></valtimo-form-io>\n </div>\n </div>\n </div>\n </div>\n\n <!--Current user tasks right side-->\n <div class=\"col-sm-12 col-md-4 col-xl-3\">\n <h4 class=\"user-tasks-title\">User tasks</h4>\n <ng-container *ngIf=\"!tasks.length\">\n <valtimo-widget>\n <div class=\"p-3\">\n <img class=\"float-left\" src=\"assets/audit-2.png\" height=\"25\" />\n <span class=\"float-right\">{{ 'summary.userTasksDoneState' | translate }}</span>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </ng-container>\n <ng-container *ngFor=\"let task of tasks\">\n <valtimo-widget>\n <div\n class=\"p-3 clickable hoverable\"\n (click)=\"rowTaskClick(task)\"\n *ngIf=\"!task.isLocked()\"\n >\n <span class=\"float-right badge badge-pill badge-primary\">Open</span>\n <strong>{{ task.name }}</strong>\n <div>Created {{ task.created }}</div>\n </div>\n <div class=\"p-3 hoverable\" *ngIf=\"task.isLocked()\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ 'summary.taskLocked' | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n <strong>{{ task.name }}</strong>\n <div>Created {{ task.created }}</div>\n </div>\n </valtimo-widget>\n </ng-container>\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"init()\"\n (assignmentOfTaskChanged)=\"init()\"\n ></valtimo-task-detail-modal>\n </div>\n </div>\n</div>\n",
|
|
508
526
|
encapsulation: ViewEncapsulation.None,
|
|
509
527
|
styles: ["/*!\n * Copyright 2015-2020 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 */.hoverable:hover{background-color:#eee}.summaryForm .formio-component{margin-bottom:0!important}.summaryForm .formio-component div[ref=element] .form-control{background-color:#fff;border:0;font-size:13px;height:24px!important;margin:0;padding:0!important}.summaryForm .formio-field div[ref=element] .form-control{font-weight:400}.summaryForm .formio-value div[ref=element] .form-control{font-weight:700}.user-tasks-title{color:#000;font-weight:400;height:20px;margin-bottom:12px;margin-top:0}"]
|
|
510
528
|
},] }
|
|
@@ -547,7 +565,9 @@ class DossierDetailTabProgressComponent {
|
|
|
547
565
|
this.documentId = snapshot.get('documentId') || '';
|
|
548
566
|
}
|
|
549
567
|
ngOnInit() {
|
|
550
|
-
this.documentService
|
|
568
|
+
this.documentService
|
|
569
|
+
.findProcessDocumentInstances(this.documentId)
|
|
570
|
+
.subscribe(processDocumentInstances => {
|
|
551
571
|
this.processDocumentInstances = processDocumentInstances;
|
|
552
572
|
this.selectedProcessInstanceId = processDocumentInstances[0].id.processInstanceId;
|
|
553
573
|
});
|
|
@@ -559,7 +579,7 @@ class DossierDetailTabProgressComponent {
|
|
|
559
579
|
DossierDetailTabProgressComponent.decorators = [
|
|
560
580
|
{ type: Component, args: [{
|
|
561
581
|
selector: 'valtimo-dossier-detail-tab-progress',
|
|
562
|
-
template: "<!--\n ~ Copyright 2015-2020 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<div class=\"full-height-tab-content\" *ngIf=\"processDocumentInstances\">\n <div class=\"col-3\">\n <label><strong>Process</strong></label><br/>\n <select class=\"form-control\" (change)=\"loadProcessInstance($event.target.value)\">\n <option
|
|
582
|
+
template: "<!--\n ~ Copyright 2015-2020 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<div class=\"full-height-tab-content\" *ngIf=\"processDocumentInstances\">\n <div class=\"col-3\">\n <label><strong>Process</strong></label\n ><br />\n <select class=\"form-control\" (change)=\"loadProcessInstance($event.target.value)\">\n <option\n *ngFor=\"let processDocumentInstance of processDocumentInstances\"\n [value]=\"processDocumentInstance.id.processInstanceId\"\n [selected]=\"selectedProcessInstanceId === processDocumentInstance.id.processInstanceId\"\n >\n {{ processDocumentInstance.processName }}\n </option>\n </select>\n </div>\n <valtimo-process-diagram\n [processInstanceId]=\"selectedProcessInstanceId\"\n ></valtimo-process-diagram>\n</div>\n",
|
|
563
583
|
styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}"]
|
|
564
584
|
},] }
|
|
565
585
|
];
|
|
@@ -628,7 +648,7 @@ class DossierDetailTabAuditComponent {
|
|
|
628
648
|
DossierDetailTabAuditComponent.decorators = [
|
|
629
649
|
{ type: Component, args: [{
|
|
630
650
|
selector: 'valtimo-dossier-detail-tab-audit',
|
|
631
|
-
template: "<!--\n ~ Copyright 2015-2020 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<div *ngIf=\"timelineItems\">\n <valtimo-timeline [items]=\"timelineItems\"></valtimo-timeline>\n</div>\n<valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n>\n</valtimo-spinner>\n<div\n
|
|
651
|
+
template: "<!--\n ~ Copyright 2015-2020 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<div *ngIf=\"timelineItems\">\n <valtimo-timeline [items]=\"timelineItems\"></valtimo-timeline>\n</div>\n<valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n>\n</valtimo-spinner>\n<div\n class=\"pagination-holder audit-pagination bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && pagination.totalElements > pagination.size\"\n>\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage' | translate: {current: pagination.number, total: pagination.totalPages}\n }}</strong>\n <br />\n {{\n pagination.totalElements === 1\n ? ('list.showingResult' | translate: {number: pagination.content.length})\n : ('list.showingResults'\n | translate: {number: pagination.content.length, total: pagination.totalElements})\n }}\n </div>\n <div class=\"col-8\">\n <ngb-pagination\n *ngIf=\"pagination.totalElements > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.totalElements\"\n [(page)]=\"pagination.number\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.size\"\n [rotate]=\"true\"\n (pageChange)=\"onChangePagination(pagination.number)\"\n ></ngb-pagination>\n </div>\n</div>\n",
|
|
632
652
|
styles: [".audit-pagination{border-top:1px solid #dee2e6;margin:0 -1.923rem -1.923rem!important}"]
|
|
633
653
|
},] }
|
|
634
654
|
];
|
|
@@ -657,30 +677,41 @@ DossierDetailTabAuditComponent.propDecorators = {
|
|
|
657
677
|
* limitations under the License.
|
|
658
678
|
*/
|
|
659
679
|
class DossierDetailTabDocumentsComponent {
|
|
660
|
-
constructor(route, documentService, toastrService, uploadProviderService, downloadService) {
|
|
680
|
+
constructor(route, documentService, toastrService, uploadProviderService, downloadService, translateService, configService) {
|
|
681
|
+
var _a, _b;
|
|
661
682
|
this.route = route;
|
|
662
683
|
this.documentService = documentService;
|
|
663
684
|
this.toastrService = toastrService;
|
|
664
685
|
this.uploadProviderService = uploadProviderService;
|
|
665
686
|
this.downloadService = downloadService;
|
|
666
|
-
this.
|
|
687
|
+
this.translateService = translateService;
|
|
688
|
+
this.configService = configService;
|
|
689
|
+
this.maxFileSize = ((_b = (_a = this.configService) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.caseFileSizeUploadLimitMB) || 5;
|
|
690
|
+
this.refetch$ = new BehaviorSubject(null);
|
|
691
|
+
this.relatedFiles$ = this.refetch$.pipe(switchMap(() => combineLatest([this.documentService.getDocument(this.documentId), this.translateService.stream('key')])), map(([document]) => {
|
|
692
|
+
const relatedFiles = (document === null || document === void 0 ? void 0 : document.relatedFiles) || [];
|
|
693
|
+
const translatedFiles = relatedFiles.map(file => {
|
|
694
|
+
return Object.assign(Object.assign({}, file), { createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated') });
|
|
695
|
+
});
|
|
696
|
+
return translatedFiles || [];
|
|
697
|
+
}));
|
|
667
698
|
this.fields = [
|
|
668
699
|
{ key: 'fileName', label: 'File name' },
|
|
669
700
|
{ key: 'sizeInBytes', label: 'Size in bytes' },
|
|
670
701
|
{ key: 'createdOn', label: 'Created on', viewType: 'date' },
|
|
671
|
-
{ key: 'createdBy', label: 'Created by' }
|
|
702
|
+
{ key: 'createdBy', label: 'Created by' },
|
|
672
703
|
];
|
|
673
704
|
this.actions = [
|
|
674
705
|
{
|
|
675
706
|
columnName: '',
|
|
676
707
|
iconClass: 'fas fa-external-link-alt',
|
|
677
|
-
callback: this.downloadDocument.bind(this)
|
|
708
|
+
callback: this.downloadDocument.bind(this),
|
|
678
709
|
},
|
|
679
710
|
{
|
|
680
711
|
columnName: '',
|
|
681
712
|
iconClass: 'fas fa-trash-alt',
|
|
682
|
-
callback: this.removeRelatedFile.bind(this)
|
|
683
|
-
}
|
|
713
|
+
callback: this.removeRelatedFile.bind(this),
|
|
714
|
+
},
|
|
684
715
|
];
|
|
685
716
|
this.uploading$ = new BehaviorSubject(false);
|
|
686
717
|
const snapshot = this.route.snapshot.paramMap;
|
|
@@ -688,42 +719,45 @@ class DossierDetailTabDocumentsComponent {
|
|
|
688
719
|
this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';
|
|
689
720
|
}
|
|
690
721
|
ngOnInit() {
|
|
691
|
-
this.
|
|
722
|
+
this.refetchDocuments();
|
|
692
723
|
}
|
|
693
724
|
fileSelected(file) {
|
|
694
725
|
this.uploading$.next(true);
|
|
695
|
-
this.uploadProviderService
|
|
726
|
+
this.uploadProviderService
|
|
727
|
+
.uploadFile(file, this.documentDefinitionName)
|
|
728
|
+
.pipe(switchMap(resourceFile => this.documentService.assignResource(this.documentId, resourceFile.data.resourceId)))
|
|
729
|
+
.subscribe(() => {
|
|
696
730
|
this.toastrService.success('Successfully uploaded document to dossier');
|
|
697
|
-
this.
|
|
731
|
+
this.refetchDocuments();
|
|
698
732
|
this.uploading$.next(false);
|
|
699
733
|
}, () => {
|
|
700
734
|
this.toastrService.error('Failed to upload document to dossier');
|
|
701
735
|
this.uploading$.next(false);
|
|
702
736
|
});
|
|
703
737
|
}
|
|
704
|
-
loadDocuments() {
|
|
705
|
-
this.documentService.getDocument(this.documentId).subscribe((document) => {
|
|
706
|
-
this.relatedFiles = document.relatedFiles;
|
|
707
|
-
});
|
|
708
|
-
}
|
|
709
738
|
downloadDocument(relatedFile) {
|
|
710
|
-
this.uploadProviderService
|
|
739
|
+
this.uploadProviderService
|
|
740
|
+
.getResource(relatedFile.fileId)
|
|
741
|
+
.subscribe((resource) => {
|
|
711
742
|
this.downloadService.downloadFile(resource.url, resource.resource.name);
|
|
712
743
|
});
|
|
713
744
|
}
|
|
714
745
|
removeRelatedFile(relatedFile) {
|
|
715
746
|
this.documentService.removeResource(this.documentId, relatedFile.fileId).subscribe(() => {
|
|
716
747
|
this.toastrService.success('Successfully removed document from dossier');
|
|
717
|
-
this.
|
|
748
|
+
this.refetchDocuments();
|
|
718
749
|
}, () => {
|
|
719
750
|
this.toastrService.error('Failed to remove document from dossier');
|
|
720
751
|
});
|
|
721
752
|
}
|
|
753
|
+
refetchDocuments() {
|
|
754
|
+
this.refetch$.next(null);
|
|
755
|
+
}
|
|
722
756
|
}
|
|
723
757
|
DossierDetailTabDocumentsComponent.decorators = [
|
|
724
758
|
{ type: Component, args: [{
|
|
725
759
|
selector: 'valtimo-dossier-detail-tab-documents',
|
|
726
|
-
template: "<!--\n ~ Copyright 2015-2020 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<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"
|
|
760
|
+
template: "<!--\n ~ Copyright 2015-2020 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<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"true\"\n [camera]=\"false\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [fields]=\"fields\"\n [items]=\"relatedFiles$ | async\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [viewMode]=\"true\"\n [actions]=\"actions\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n",
|
|
727
761
|
styles: [""]
|
|
728
762
|
},] }
|
|
729
763
|
];
|
|
@@ -732,7 +766,9 @@ DossierDetailTabDocumentsComponent.ctorParameters = () => [
|
|
|
732
766
|
{ type: DocumentService },
|
|
733
767
|
{ type: ToastrService },
|
|
734
768
|
{ type: UploadProviderService },
|
|
735
|
-
{ type: DownloadService }
|
|
769
|
+
{ type: DownloadService },
|
|
770
|
+
{ type: TranslateService },
|
|
771
|
+
{ type: ConfigService }
|
|
736
772
|
];
|
|
737
773
|
|
|
738
774
|
/*
|
|
@@ -755,7 +791,7 @@ const DEFAULT_TABS = new Map([
|
|
|
755
791
|
[DefaultTabs.summary, DossierDetailTabSummaryComponent],
|
|
756
792
|
[DefaultTabs.progress, DossierDetailTabProgressComponent],
|
|
757
793
|
[DefaultTabs.audit, DossierDetailTabAuditComponent],
|
|
758
|
-
[DefaultTabs.documents, DossierDetailTabDocumentsComponent]
|
|
794
|
+
[DefaultTabs.documents, DossierDetailTabDocumentsComponent],
|
|
759
795
|
]);
|
|
760
796
|
|
|
761
797
|
/*
|
|
@@ -790,7 +826,7 @@ class TabService {
|
|
|
790
826
|
TabService.ɵprov = ɵɵdefineInjectable({ factory: function TabService_Factory() { return new TabService(ɵɵinject(TAB_MAP)); }, token: TabService, providedIn: "root" });
|
|
791
827
|
TabService.decorators = [
|
|
792
828
|
{ type: Injectable, args: [{
|
|
793
|
-
providedIn: 'root'
|
|
829
|
+
providedIn: 'root',
|
|
794
830
|
},] }
|
|
795
831
|
];
|
|
796
832
|
TabService.ctorParameters = () => [
|
|
@@ -824,7 +860,8 @@ class DossierSupportingProcessStartModalComponent {
|
|
|
824
860
|
}
|
|
825
861
|
loadFormDefinition() {
|
|
826
862
|
this.formDefinition = null;
|
|
827
|
-
this.formLinkService
|
|
863
|
+
this.formLinkService
|
|
864
|
+
.getStartEventFormDefinitionByProcessDefinitionKey(this.processDefinitionKey)
|
|
828
865
|
.subscribe(formDefinition => {
|
|
829
866
|
this.formAssociation = formDefinition.formAssociation;
|
|
830
867
|
const className = this.formAssociation.formLink.className.split('.');
|
|
@@ -834,7 +871,7 @@ class DossierSupportingProcessStartModalComponent {
|
|
|
834
871
|
this.formDefinition = formDefinition;
|
|
835
872
|
this.documentService.getDocument(this.documentId).subscribe(document => {
|
|
836
873
|
this.submission = {
|
|
837
|
-
data: document.content
|
|
874
|
+
data: document.content,
|
|
838
875
|
};
|
|
839
876
|
}, () => noop());
|
|
840
877
|
this.modal.show();
|
|
@@ -844,7 +881,12 @@ class DossierSupportingProcessStartModalComponent {
|
|
|
844
881
|
window.open(url, '_blank');
|
|
845
882
|
break;
|
|
846
883
|
case 'BpmnElementAngularStateUrlLink':
|
|
847
|
-
this.
|
|
884
|
+
this.route.params.pipe(take(1)).subscribe(params => {
|
|
885
|
+
const documentId = params === null || params === void 0 ? void 0 : params.documentId;
|
|
886
|
+
this.router.navigate([formDefinition.formAssociation.formLink.url], {
|
|
887
|
+
state: Object.assign({}, (documentId && { documentId })),
|
|
888
|
+
});
|
|
889
|
+
});
|
|
848
890
|
break;
|
|
849
891
|
default:
|
|
850
892
|
this.logger.fatal('Unsupported class name');
|
|
@@ -871,7 +913,9 @@ class DossierSupportingProcessStartModalComponent {
|
|
|
871
913
|
}
|
|
872
914
|
onSubmit(submission) {
|
|
873
915
|
this.formioSubmission = submission;
|
|
874
|
-
this.formLinkService
|
|
916
|
+
this.formLinkService
|
|
917
|
+
.onSubmit(this.processDefinitionKey, this.formAssociation.formLink.id, submission.data, this.documentId)
|
|
918
|
+
.subscribe((formSubmissionResult) => {
|
|
875
919
|
this.modal.hide();
|
|
876
920
|
this.formSubmit.emit();
|
|
877
921
|
}, errors => {
|
|
@@ -886,7 +930,7 @@ class DossierSupportingProcessStartModalComponent {
|
|
|
886
930
|
DossierSupportingProcessStartModalComponent.decorators = [
|
|
887
931
|
{ type: Component, args: [{
|
|
888
932
|
selector: 'valtimo-dossier-supporting-process-start-modal',
|
|
889
|
-
template: "<!--\n ~ Copyright 2015-2020 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<valtimo-modal
|
|
933
|
+
template: "<!--\n ~ Copyright 2015-2020 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<valtimo-modal\n #supportingProcessStartModal\n elementId=\"supportingProcessStartModal\"\n [title]=\"modalTitle\"\n>\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io\n #form\n [submission]=\"submission\"\n [form]=\"formDefinition\"\n [options]=\"options\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"!formDefinition\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFound'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n",
|
|
890
934
|
encapsulation: ViewEncapsulation.None,
|
|
891
935
|
styles: ["/*!\n * Copyright 2015-2020 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 */#supportingProcessStartModal .formio-component-submit{text-align:right}"]
|
|
892
936
|
},] }
|
|
@@ -940,7 +984,9 @@ class DossierDetailComponent {
|
|
|
940
984
|
}
|
|
941
985
|
ngOnInit() {
|
|
942
986
|
this.tabLoader = new TabLoaderImpl(this.tabService.getTabs(), this.componentFactoryResolver, this.viewContainerRef, this.translateService, this.router, this.location);
|
|
943
|
-
this.documentService
|
|
987
|
+
this.documentService
|
|
988
|
+
.getDocumentDefinition(this.documentDefinitionName)
|
|
989
|
+
.subscribe(definition => {
|
|
944
990
|
this.documentDefinitionNameTitle = definition.schema.title;
|
|
945
991
|
});
|
|
946
992
|
this.initialTabName = this.snapshot.get('tab');
|
|
@@ -948,13 +994,16 @@ class DossierDetailComponent {
|
|
|
948
994
|
this.getAllAssociatedProcessDefinitions();
|
|
949
995
|
}
|
|
950
996
|
getAllAssociatedProcessDefinitions() {
|
|
951
|
-
this.documentService
|
|
952
|
-
this.
|
|
953
|
-
|
|
954
|
-
this.
|
|
997
|
+
this.documentService
|
|
998
|
+
.findProcessDocumentDefinitions(this.documentDefinitionName)
|
|
999
|
+
.subscribe(processDocumentDefinitions => {
|
|
1000
|
+
this.processDocumentDefinitions = processDocumentDefinitions.filter(processDocumentDefinition => processDocumentDefinition.startableByUser);
|
|
1001
|
+
this.processDefinitionListFields = [
|
|
1002
|
+
{
|
|
955
1003
|
key: 'processName',
|
|
956
|
-
label: 'Proces'
|
|
957
|
-
}
|
|
1004
|
+
label: 'Proces',
|
|
1005
|
+
},
|
|
1006
|
+
];
|
|
958
1007
|
});
|
|
959
1008
|
}
|
|
960
1009
|
startProcess(processDocumentDefinition) {
|
|
@@ -964,7 +1013,7 @@ class DossierDetailComponent {
|
|
|
964
1013
|
DossierDetailComponent.decorators = [
|
|
965
1014
|
{ type: Component, args: [{
|
|
966
1015
|
selector: 'valtimo-dossier-detail',
|
|
967
|
-
template: "<!--\n ~ Copyright 2015-2020 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<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <div class=\"card-header bg-light card-header-divider pb-5\">\n {{ documentDefinitionNameTitle }}\n <div class=\"btn-group mt-m3px mb-3 float-right\">\n <valtimo-extension\n module=\"dossier\"\n page=\"dossier-detail\"\n section=\"card-header\"\n ></valtimo-extension>\n <div class=\"dropdown\">\n <button
|
|
1016
|
+
template: "<!--\n ~ Copyright 2015-2020 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<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <div class=\"card-header bg-light card-header-divider pb-5\">\n {{ documentDefinitionNameTitle }}\n <div class=\"btn-group mt-m3px mb-3 float-right\">\n <valtimo-extension\n module=\"dossier\"\n page=\"dossier-detail\"\n section=\"card-header\"\n ></valtimo-extension>\n <div class=\"dropdown\">\n <button\n class=\"btn btn-primary dropdown-toggle\"\n type=\"button\"\n id=\"startProcessDropdown\"\n placement=\"bottom\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <span>Start</span>\n <i class=\"pl-2 fas fa-caret-down\"></i>\n </button>\n <div class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"startProcessDropdown\">\n <button\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n class=\"dropdown-item p\"\n href=\"#\"\n (click)=\"startProcess(processDocumentDefinition)\"\n >\n {{ processDocumentDefinition.processName }}\n </button>\n </div>\n </div>\n </div>\n </div>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\" *ngFor=\"let tab of tabLoader.tabs\">\n <a\n id=\"{{ tab.name }}-tab\"\n class=\"nav-link clickable\"\n [ngClass]=\"{active: tab.isActive()}\"\n data-toggle=\"tab\"\n (click)=\"tabLoader.load(tab)\"\n >\n {{ tabLoader.translateTabName(tab) }}\n </a>\n </li>\n </ul>\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <ng-template #tabContainer>Loading...</ng-template>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </div>\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n",
|
|
968
1017
|
styles: [".tab-container{min-height:300px}"]
|
|
969
1018
|
},] }
|
|
970
1019
|
];
|
|
@@ -1006,7 +1055,7 @@ class DossierDetailTabContactMomentsComponent {
|
|
|
1006
1055
|
this.alertService = alertService;
|
|
1007
1056
|
this.translateService = translateService;
|
|
1008
1057
|
this.refetchContactMoments$ = new BehaviorSubject('');
|
|
1009
|
-
this.contactMoments$ = this.refetchContactMoments$.pipe(switchMap(() => this.contactMomentService.getContactMoments()), map(
|
|
1058
|
+
this.contactMoments$ = this.refetchContactMoments$.pipe(switchMap(() => this.contactMomentService.getContactMoments()), map(contactMoments => contactMoments.map(contactMoment => {
|
|
1010
1059
|
const registratieDatum = moment$3(contactMoment.registratiedatum);
|
|
1011
1060
|
return new TimelineItemImpl(registratieDatum.format('DD MMM YYYY'), registratieDatum.format('HH:mm'), contactMoment.medewerkerIdentificatie.achternaam, contactMoment.kanaal, contactMoment.tekst, null);
|
|
1012
1061
|
})));
|
|
@@ -1052,7 +1101,7 @@ class DossierDetailTabContactMomentsComponent {
|
|
|
1052
1101
|
DossierDetailTabContactMomentsComponent.decorators = [
|
|
1053
1102
|
{ type: Component, args: [{
|
|
1054
1103
|
selector: 'valtimo-dossier-detail-tab-contact-moments',
|
|
1055
|
-
template: "<!--\n ~ Copyright 2015-2021 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<div class=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n
|
|
1104
|
+
template: "<!--\n ~ Copyright 2015-2021 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<div class=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-calendar-note\"></i>\n {{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\n </div>\n</ng-template>\n",
|
|
1056
1105
|
styles: ["/*!\n * Copyright 2015-2021 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 */.contact-moments-container{display:flex;flex-direction:column}.button-container{align-self:flex-end;display:inline}"]
|
|
1057
1106
|
},] }
|
|
1058
1107
|
];
|
|
@@ -1120,7 +1169,7 @@ class DossierUpdateComponent {
|
|
|
1120
1169
|
this.task.task.created = moment$4(this.task.task.created).format('DD MMM YYYY HH:mm');
|
|
1121
1170
|
this.page = {
|
|
1122
1171
|
title: this.task.task.name,
|
|
1123
|
-
subtitle: `Created ${moment$4(this.task.task.created).fromNow()}
|
|
1172
|
+
subtitle: `Created ${moment$4(this.task.task.created).fromNow()}`,
|
|
1124
1173
|
};
|
|
1125
1174
|
});
|
|
1126
1175
|
}
|
|
@@ -1134,7 +1183,7 @@ class DossierUpdateComponent {
|
|
|
1134
1183
|
const document = {
|
|
1135
1184
|
documentId: this.document.id,
|
|
1136
1185
|
content: this.document.content,
|
|
1137
|
-
versionBasedOn: this.document.version
|
|
1186
|
+
versionBasedOn: this.document.version,
|
|
1138
1187
|
};
|
|
1139
1188
|
this.documentService.modifyDocument(document).subscribe(result => {
|
|
1140
1189
|
this.document = result.document;
|
|
@@ -1149,9 +1198,9 @@ class DossierUpdateComponent {
|
|
|
1149
1198
|
request: {
|
|
1150
1199
|
documentId: this.document.id,
|
|
1151
1200
|
content: mergedData,
|
|
1152
|
-
versionBasedOn: this.document.version
|
|
1201
|
+
versionBasedOn: this.document.version,
|
|
1153
1202
|
},
|
|
1154
|
-
taskId: this.task.task.id
|
|
1203
|
+
taskId: this.task.task.id,
|
|
1155
1204
|
};
|
|
1156
1205
|
this.documentService.modifyDocumentAndCompleteTask(documentData).subscribe(result => {
|
|
1157
1206
|
this.toastr.success(this.task.task.name + ' has successfully been completed');
|
|
@@ -1165,7 +1214,7 @@ class DossierUpdateComponent {
|
|
|
1165
1214
|
DossierUpdateComponent.decorators = [
|
|
1166
1215
|
{ type: Component, args: [{
|
|
1167
1216
|
selector: 'valtimo-dossier-update',
|
|
1168
|
-
template: "<!--\n ~ Copyright 2015-2020 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<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget [title]=\"page?.title\" [subtitle]=\"page?.subtitle\" [divider]=\"true\">\n <div class=\"card-body\">\n
|
|
1217
|
+
template: "<!--\n ~ Copyright 2015-2020 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<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget [title]=\"page?.title\" [subtitle]=\"page?.subtitle\" [divider]=\"true\">\n <div class=\"card-body\">\n <!--view with custom definitions-->\n <div *ngIf=\"this.customDefinitions\">\n <div\n class=\"mb-4\"\n *ngFor=\"let definition of this.customDefinitions | keyvalue: returnZero\"\n ></div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-sm-12\">\n <div class=\"text-right\">\n <button\n class=\"btn btn-space btn-default float-left\"\n type=\"button\"\n (click)=\"back()\"\n id=\"back-button\"\n >\n Back\n </button>\n <button\n class=\"btn btn-space btn-secondary\"\n type=\"button\"\n (click)=\"reset()\"\n id=\"reset-button\"\n >\n Reset\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"button\"\n (click)=\"save()\"\n id=\"save-button\"\n >\n Save\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"submit\"\n (click)=\"submit({})\"\n id=\"submit-button\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <valtimo-camunda-form\n *ngIf=\"task?.formFields && !this.customDefinitions\"\n (submitted)=\"submit($event)\"\n [formFields]=\"task.formFields\"\n [componentName]=\"task.formLocation\"\n ></valtimo-camunda-form>\n </div>\n </valtimo-widget>\n </div>\n </div>\n</div>\n",
|
|
1169
1218
|
styles: [""]
|
|
1170
1219
|
},] }
|
|
1171
1220
|
];
|
|
@@ -1193,36 +1242,37 @@ DossierUpdateComponent.ctorParameters = () => [
|
|
|
1193
1242
|
* See the License for the specific language governing permissions and
|
|
1194
1243
|
* limitations under the License.
|
|
1195
1244
|
*/
|
|
1196
|
-
const ɵ0 = { title: 'Dossiers', roles: [ROLE_USER] }, ɵ1 = { title: 'Dossiers', parentPath: 'dossiers/:documentDefinitionName', roles: [ROLE_USER] }, ɵ2 = {
|
|
1245
|
+
const ɵ0 = { title: 'Dossiers', roles: [ROLE_USER] }, ɵ1 = { title: 'Dossiers', parentPath: 'dossiers/:documentDefinitionName', roles: [ROLE_USER] }, ɵ2 = {
|
|
1246
|
+
title: 'Task details',
|
|
1247
|
+
parentPath: 'dossiers/:documentDefinitionName/document/:documentId/:tab',
|
|
1248
|
+
roles: [ROLE_USER],
|
|
1249
|
+
};
|
|
1197
1250
|
const routes = [
|
|
1198
1251
|
{
|
|
1199
1252
|
path: 'dossiers/:documentDefinitionName',
|
|
1200
1253
|
component: DossierListComponent,
|
|
1201
1254
|
canActivate: [AuthGuardService],
|
|
1202
|
-
data: ɵ0
|
|
1255
|
+
data: ɵ0,
|
|
1203
1256
|
},
|
|
1204
1257
|
{
|
|
1205
1258
|
path: 'dossiers/:documentDefinitionName/document/:documentId/:tab',
|
|
1206
1259
|
component: DossierDetailComponent,
|
|
1207
1260
|
canActivate: [AuthGuardService],
|
|
1208
|
-
data: ɵ1
|
|
1261
|
+
data: ɵ1,
|
|
1209
1262
|
},
|
|
1210
1263
|
{
|
|
1211
1264
|
path: 'dossiers/:documentDefinitionName/document/:documentId/:tab/tasks/:taskId',
|
|
1212
1265
|
component: DossierUpdateComponent,
|
|
1213
1266
|
canActivate: [AuthGuardService],
|
|
1214
|
-
data: ɵ2
|
|
1215
|
-
}
|
|
1267
|
+
data: ɵ2,
|
|
1268
|
+
},
|
|
1216
1269
|
];
|
|
1217
1270
|
class DossierRoutingModule {
|
|
1218
1271
|
}
|
|
1219
1272
|
DossierRoutingModule.decorators = [
|
|
1220
1273
|
{ type: NgModule, args: [{
|
|
1221
|
-
imports: [
|
|
1222
|
-
|
|
1223
|
-
RouterModule.forChild(routes),
|
|
1224
|
-
],
|
|
1225
|
-
exports: [RouterModule]
|
|
1274
|
+
imports: [CommonModule, RouterModule.forChild(routes)],
|
|
1275
|
+
exports: [RouterModule],
|
|
1226
1276
|
},] }
|
|
1227
1277
|
];
|
|
1228
1278
|
|
|
@@ -1251,14 +1301,14 @@ class DossierModule {
|
|
|
1251
1301
|
TabService,
|
|
1252
1302
|
{
|
|
1253
1303
|
provide: TAB_MAP,
|
|
1254
|
-
useFactory: tabsFactory
|
|
1304
|
+
useFactory: tabsFactory,
|
|
1255
1305
|
},
|
|
1256
1306
|
{
|
|
1257
1307
|
provide: ANALYZE_FOR_ENTRY_COMPONENTS,
|
|
1258
1308
|
useValue: Array.from(tabsFactory().values()),
|
|
1259
|
-
multi: true
|
|
1260
|
-
}
|
|
1261
|
-
]
|
|
1309
|
+
multi: true,
|
|
1310
|
+
},
|
|
1311
|
+
],
|
|
1262
1312
|
};
|
|
1263
1313
|
}
|
|
1264
1314
|
}
|
|
@@ -1274,7 +1324,7 @@ DossierModule.decorators = [
|
|
|
1274
1324
|
DossierDetailTabContactMomentsComponent,
|
|
1275
1325
|
DossierUpdateComponent,
|
|
1276
1326
|
DossierProcessStartModalComponent,
|
|
1277
|
-
DossierSupportingProcessStartModalComponent
|
|
1327
|
+
DossierSupportingProcessStartModalComponent,
|
|
1278
1328
|
],
|
|
1279
1329
|
imports: [
|
|
1280
1330
|
CommonModule,
|
|
@@ -1297,8 +1347,8 @@ DossierModule.decorators = [
|
|
|
1297
1347
|
loader: {
|
|
1298
1348
|
provide: TranslateLoader,
|
|
1299
1349
|
useFactory: ɵ0$1,
|
|
1300
|
-
deps: [HttpClient]
|
|
1301
|
-
}
|
|
1350
|
+
deps: [HttpClient],
|
|
1351
|
+
},
|
|
1302
1352
|
}),
|
|
1303
1353
|
TaskModule,
|
|
1304
1354
|
ModalModule,
|
|
@@ -1306,19 +1356,16 @@ DossierModule.decorators = [
|
|
|
1306
1356
|
UploaderModule,
|
|
1307
1357
|
DropzoneModule,
|
|
1308
1358
|
NgbPaginationModule,
|
|
1309
|
-
ConfigModule
|
|
1310
|
-
],
|
|
1311
|
-
exports: [
|
|
1312
|
-
DossierListComponent,
|
|
1313
|
-
DossierDetailComponent
|
|
1359
|
+
ConfigModule,
|
|
1314
1360
|
],
|
|
1361
|
+
exports: [DossierListComponent, DossierDetailComponent],
|
|
1315
1362
|
entryComponents: [
|
|
1316
1363
|
DossierDetailTabSummaryComponent,
|
|
1317
1364
|
DossierDetailTabProgressComponent,
|
|
1318
1365
|
DossierDetailTabAuditComponent,
|
|
1319
1366
|
DossierDetailTabDocumentsComponent,
|
|
1320
|
-
DossierDetailTabContactMomentsComponent
|
|
1321
|
-
]
|
|
1367
|
+
DossierDetailTabContactMomentsComponent,
|
|
1368
|
+
],
|
|
1322
1369
|
},] }
|
|
1323
1370
|
];
|
|
1324
1371
|
|