@valtimo/dossier 5.11.0 → 5.13.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.
- package/esm2020/lib/dossier-assign-user/dossier-assign-user.component.mjs +119 -0
- package/esm2020/lib/dossier-detail/dossier-detail.component.mjs +65 -22
- package/esm2020/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +2 -2
- package/esm2020/lib/dossier-detail/tab/progress/progress.component.mjs +2 -3
- package/esm2020/lib/dossier-detail/tab/s3-documents/s3-documents.component.mjs +2 -2
- package/esm2020/lib/dossier-detail/tab/summary/summary.component.mjs +36 -29
- package/esm2020/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.mjs +1 -1
- package/esm2020/lib/dossier-list/dossier-list.component.mjs +17 -12
- package/esm2020/lib/dossier.module.mjs +13 -4
- package/esm2020/lib/models/index.mjs +2 -1
- package/esm2020/lib/models/search.model.mjs +2 -0
- package/fesm2015/valtimo-dossier.mjs +246 -79
- package/fesm2015/valtimo-dossier.mjs.map +1 -1
- package/fesm2020/valtimo-dossier.mjs +244 -77
- package/fesm2020/valtimo-dossier.mjs.map +1 -1
- package/lib/dossier-assign-user/dossier-assign-user.component.d.ts +33 -0
- package/lib/dossier-assign-user/dossier-assign-user.component.d.ts.map +1 -0
- package/lib/dossier-detail/dossier-detail.component.d.ts +23 -11
- package/lib/dossier-detail/dossier-detail.component.d.ts.map +1 -1
- package/lib/dossier-detail/tab/progress/progress.component.d.ts.map +1 -1
- package/lib/dossier-detail/tab/s3-documents/s3-documents.component.d.ts.map +1 -1
- package/lib/dossier-detail/tab/summary/summary.component.d.ts +4 -2
- package/lib/dossier-detail/tab/summary/summary.component.d.ts.map +1 -1
- package/lib/dossier-list/dossier-list.component.d.ts +9 -2
- package/lib/dossier-list/dossier-list.component.d.ts.map +1 -1
- package/lib/dossier.module.d.ts +13 -12
- package/lib/dossier.module.d.ts.map +1 -1
- package/lib/models/index.d.ts +1 -0
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/search.model.d.ts +11 -0
- package/lib/models/search.model.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { __rest } from 'tslib';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Injectable, Component, ViewEncapsulation, ViewChild, EventEmitter, Output, InjectionToken, Inject, ViewContainerRef, NgModule, ANALYZE_FOR_ENTRY_COMPONENTS } from '@angular/core';
|
|
3
|
+
import { Injectable, Component, ViewEncapsulation, ViewChild, EventEmitter, Output, InjectionToken, Inject, Input, ViewContainerRef, NgModule, ANALYZE_FOR_ENTRY_COMPONENTS } from '@angular/core';
|
|
4
4
|
import * as i2$1 from '@valtimo/document';
|
|
5
5
|
import { DocumentSearchRequestImpl } from '@valtimo/document';
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import { BehaviorSubject, map, tap, switchMap, of, combineLatest, filter, distinctUntilChanged, take, Subject, noop } from 'rxjs';
|
|
6
|
+
import moment from 'moment';
|
|
7
|
+
import { BehaviorSubject, map, tap, distinctUntilChanged, switchMap, of, combineLatest, filter, take, Subscription, Subject, noop, from, startWith } from 'rxjs';
|
|
9
8
|
import * as i1$1 from '@angular/router';
|
|
10
9
|
import { NavigationEnd, RouterModule } from '@angular/router';
|
|
11
10
|
import * as i6$1 from '@ngx-translate/core';
|
|
@@ -14,7 +13,7 @@ import * as i1 from '@valtimo/config';
|
|
|
14
13
|
import { UploadProvider, ROLE_USER, ConfigModule, HttpLoaderFactory } from '@valtimo/config';
|
|
15
14
|
import * as i5 from 'ngx-logger';
|
|
16
15
|
import * as i7 from '@valtimo/components';
|
|
17
|
-
import { FormioOptionsImpl, TimelineItemImpl, ListModule, WidgetModule, BpmnJsDiagramModule, TimelineModule, CamundaFormModule, FilterSidebarModule, DataListModule, FormIoModule, ModalModule, SpinnerModule, UploaderModule, DropzoneModule, DocumentenApiMetadataModalModule } from '@valtimo/components';
|
|
16
|
+
import { FormioOptionsImpl, TimelineItemImpl, ListModule, WidgetModule, BpmnJsDiagramModule, TimelineModule, CamundaFormModule, FilterSidebarModule, DataListModule, FormIoModule, ModalModule, SpinnerModule, UploaderModule, DropzoneModule, DocumentenApiMetadataModalModule, SearchableDropdownSelectModule, SearchFieldsModule } from '@valtimo/components';
|
|
18
17
|
import * as i2 from '@valtimo/process';
|
|
19
18
|
import { ProcessModule } from '@valtimo/process';
|
|
20
19
|
import * as i4 from '@valtimo/form-link';
|
|
@@ -22,7 +21,7 @@ import * as i6 from '@valtimo/security';
|
|
|
22
21
|
import { AuthGuardService } from '@valtimo/security';
|
|
23
22
|
import * as i5$1 from '@angular/common';
|
|
24
23
|
import { CommonModule } from '@angular/common';
|
|
25
|
-
import * as
|
|
24
|
+
import * as i10 from '@ng-bootstrap/ng-bootstrap';
|
|
26
25
|
import { NgbButtonsModule, NgbTooltipModule, NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap';
|
|
27
26
|
import * as i5$2 from '@angular/forms';
|
|
28
27
|
import { FormsModule } from '@angular/forms';
|
|
@@ -38,6 +37,7 @@ import * as i3$3 from '@valtimo/user-interface';
|
|
|
38
37
|
import { SelectModule, InputLabelModule, ParagraphModule, TableModule, ModalModule as ModalModule$1, TitleModule, ButtonModule } from '@valtimo/user-interface';
|
|
39
38
|
import * as i2$2 from '@angular/common/http';
|
|
40
39
|
import { HttpClient } from '@angular/common/http';
|
|
40
|
+
import * as i8 from 'keycloak-angular';
|
|
41
41
|
import * as i1$2 from '@valtimo/contact-moment';
|
|
42
42
|
|
|
43
43
|
/*
|
|
@@ -351,22 +351,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
351
351
|
args: ['processStartModal', { static: false }]
|
|
352
352
|
}] } });
|
|
353
353
|
|
|
354
|
-
|
|
354
|
+
moment.locale(localStorage.getItem('langKey') || '');
|
|
355
355
|
class DossierListComponent {
|
|
356
|
-
constructor(route, router, documentService, translateService, dossierService, logger) {
|
|
356
|
+
constructor(route, router, documentService, translateService, dossierService, logger, configService) {
|
|
357
357
|
this.route = route;
|
|
358
358
|
this.router = router;
|
|
359
359
|
this.documentService = documentService;
|
|
360
360
|
this.translateService = translateService;
|
|
361
361
|
this.dossierService = dossierService;
|
|
362
362
|
this.logger = logger;
|
|
363
|
+
this.configService = configService;
|
|
363
364
|
this.selectedProcessDocumentDefinition = null;
|
|
364
365
|
this.modalListenerAdded = false;
|
|
365
366
|
this.loading$ = new BehaviorSubject(true);
|
|
366
367
|
this.settingPaginationForDocName$ = new BehaviorSubject(undefined);
|
|
368
|
+
this.loadingDocumentSearchFields$ = new BehaviorSubject(true);
|
|
367
369
|
this.documentDefinitionName$ = this.route.params.pipe(map(params => params.documentDefinitionName || ''), tap(documentDefinitionName => {
|
|
368
370
|
this.resetPagination(documentDefinitionName);
|
|
369
371
|
}));
|
|
372
|
+
this.documentSearchFields$ = this.documentDefinitionName$.pipe(distinctUntilChanged(), tap(() => this.loadingDocumentSearchFields$.next(true)), switchMap(documentDefinitionName => this.documentService.getDocumentSearchFields(documentDefinitionName)), tap(() => this.loadingDocumentSearchFields$.next(false)));
|
|
370
373
|
this.associatedProcessDocumentDefinitions$ = this.documentDefinitionName$.pipe(switchMap(documentDefinitionName => documentDefinitionName
|
|
371
374
|
? this.documentService.findProcessDocumentDefinitions(documentDefinitionName)
|
|
372
375
|
: of([])), map(processDocumentDefinitions => processDocumentDefinitions.filter(definition => definition.canInitializeDocument)));
|
|
@@ -397,7 +400,7 @@ class DossierListComponent {
|
|
|
397
400
|
this.createdBy$,
|
|
398
401
|
this.globalSearchFilter$,
|
|
399
402
|
]).pipe(filter(([pagination]) => !!pagination), map(([pagination, documentDefinitionName, sequence, createdBy, globalSearchFilter]) => new DocumentSearchRequestImpl(documentDefinitionName, pagination.page - 1, pagination.size, sequence, createdBy, globalSearchFilter, pagination.sort)));
|
|
400
|
-
this.documentsRequest$ = this.documentSearchRequest$.pipe(distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)), tap(request => {
|
|
403
|
+
this.documentsRequest$ = this.documentSearchRequest$.pipe(distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)), tap(() => this.loading$.next(true)), tap(request => {
|
|
401
404
|
this.storedSearchRequestKey$.pipe(take(1)).subscribe(storedSearchRequestKey => {
|
|
402
405
|
this.logger.debug(`store request in local storage: ${JSON.stringify(request)}`);
|
|
403
406
|
localStorage.setItem(storedSearchRequestKey, JSON.stringify(request));
|
|
@@ -409,6 +412,7 @@ class DossierListComponent {
|
|
|
409
412
|
const { content } = document, others = __rest(document, ["content"]);
|
|
410
413
|
return Object.assign(Object.assign({}, content), others);
|
|
411
414
|
})), tap(() => this.loading$.next(false)));
|
|
415
|
+
this.enableCaseSearchFields = configService.config.featureToggles.caseSearchFields;
|
|
412
416
|
}
|
|
413
417
|
ngOnInit() {
|
|
414
418
|
this.modalListenerAdded = false;
|
|
@@ -518,12 +522,12 @@ class DossierListComponent {
|
|
|
518
522
|
}
|
|
519
523
|
}
|
|
520
524
|
}
|
|
521
|
-
DossierListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierListComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i2$1.DocumentService }, { token: i6$1.TranslateService }, { token: DossierService }, { token: i5.NGXLogger }], target: i0.ɵɵFactoryTarget.Component });
|
|
522
|
-
DossierListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DossierListComponent, selector: "valtimo-dossier-list", viewQueries: [{ propertyName: "processStart", first: true, predicate: ["processStartModal"], descendants: true }], ngImport: i0, 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\" *ngIf=\"{loading: loading$ | async} as obs\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <div\n *ngIf=\"\n associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\n \"\n >\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]=\"associatedProcessDocumentDefinitions.length === 0 ? 'No action' : null\"\n placement=\"bottom\"\n [disabled]=\"associatedProcessDocumentDefinitions.length === 0 || obs.loading\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\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 associatedProcessDocumentDefinitions\"\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-spinner *ngIf=\"obs.loading\"></valtimo-spinner>\n <ng-container *ngTemplateOutlet=\"list; context:{obs: obs}\"></ng-container>\n </div>\n </div>\n <valtimo-dossier-process-start-modal #processStartModal></valtimo-dossier-process-start-modal>\n</div>\n\n<ng-template #list let-obs=\"obs\">\n
|
|
525
|
+
DossierListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierListComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i2$1.DocumentService }, { token: i6$1.TranslateService }, { token: DossierService }, { token: i5.NGXLogger }, { token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
526
|
+
DossierListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DossierListComponent, selector: "valtimo-dossier-list", viewQueries: [{ propertyName: "processStart", first: true, predicate: ["processStartModal"], descendants: true }], ngImport: i0, 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\" *ngIf=\"{loading: loading$ | async} as obs\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <div\n *ngIf=\"\n associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\n \"\n >\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]=\"associatedProcessDocumentDefinitions.length === 0 ? 'No action' : null\"\n placement=\"bottom\"\n [disabled]=\"associatedProcessDocumentDefinitions.length === 0 || obs.loading\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\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 associatedProcessDocumentDefinitions\"\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-spinner *ngIf=\"obs.loading\"></valtimo-spinner>\n <ng-container *ngTemplateOutlet=\"searchFields\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n <valtimo-dossier-process-start-modal #processStartModal></valtimo-dossier-process-start-modal>\n</div>\n\n<ng-template #searchFields>\n <div class=\"mb-3\" *ngIf=\"enableCaseSearchFields\">\n <valtimo-search-fields\n [loading]=\"loadingDocumentSearchFields$ | async\"\n [searchFields]=\"documentSearchFields$ | async\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <ng-container *ngIf=\"paginationCopy$ | async as pagination\">\n <ng-container *ngIf=\"fields$ | async as fields\">\n <ng-container *ngIf=\"documentItems$ | async as documentItems\">\n <valtimo-widget *ngIf=\"obs.loading === false\">\n <valtimo-list\n [items]=\"documentItems\"\n [fields]=\"fields\"\n (rowClicked)=\"rowClick($event)\"\n [pagination]=\"pagination\"\n [viewMode]=\"true\"\n [header]=\"true\"\n paginationIdentifier=\"dossierList\"\n (paginationClicked)=\"pageChange($event)\"\n (paginationSet)=\"pageSizeChange($event)\"\n [initialSortState]=\"pagination.sort\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n {{ (schema$ | async)?.title }}\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{\n documentItems?.length || 0\n }}</sup>\n </h3>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #sidebar>\n <valtimo-filter-sidebar *ngIf=\"!enableCaseSearchFields\">\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$ | async\"\n (ngModelChange)=\"globalSearchFilterChange($event)\"\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$ | async\"\n (ngModelChange)=\"sequenceChange($event)\"\n />\n </div>\n </valtimo-filter-sidebar>\n</ng-template>\n", styles: [""], components: [{ type: i7.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { type: DossierProcessStartModalComponent, selector: "valtimo-dossier-process-start-modal" }, { type: i7.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields"], outputs: ["valueChange", "doSearch"] }, { type: i7.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { type: i7.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { type: i7.FilterSidebarComponent, selector: "valtimo-filter-sidebar" }], directives: [{ type: i5$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }], pipes: { "async": i5$1.AsyncPipe, "translate": i6$1.TranslatePipe } });
|
|
523
527
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierListComponent, decorators: [{
|
|
524
528
|
type: Component,
|
|
525
|
-
args: [{ selector: 'valtimo-dossier-list', 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\" *ngIf=\"{loading: loading$ | async} as obs\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <div\n *ngIf=\"\n associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\n \"\n >\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]=\"associatedProcessDocumentDefinitions.length === 0 ? 'No action' : null\"\n placement=\"bottom\"\n [disabled]=\"associatedProcessDocumentDefinitions.length === 0 || obs.loading\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\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 associatedProcessDocumentDefinitions\"\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-spinner *ngIf=\"obs.loading\"></valtimo-spinner>\n <ng-container *ngTemplateOutlet=\"list; context:{obs: obs}\"></ng-container>\n </div>\n </div>\n <valtimo-dossier-process-start-modal #processStartModal></valtimo-dossier-process-start-modal>\n</div>\n\n<ng-template #list let-obs=\"obs\">\n
|
|
526
|
-
}], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i2$1.DocumentService }, { type: i6$1.TranslateService }, { type: DossierService }, { type: i5.NGXLogger }]; }, propDecorators: { processStart: [{
|
|
529
|
+
args: [{ selector: 'valtimo-dossier-list', 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\" *ngIf=\"{loading: loading$ | async} as obs\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <div\n *ngIf=\"\n associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\n \"\n >\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]=\"associatedProcessDocumentDefinitions.length === 0 ? 'No action' : null\"\n placement=\"bottom\"\n [disabled]=\"associatedProcessDocumentDefinitions.length === 0 || obs.loading\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\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 associatedProcessDocumentDefinitions\"\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-spinner *ngIf=\"obs.loading\"></valtimo-spinner>\n <ng-container *ngTemplateOutlet=\"searchFields\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n <valtimo-dossier-process-start-modal #processStartModal></valtimo-dossier-process-start-modal>\n</div>\n\n<ng-template #searchFields>\n <div class=\"mb-3\" *ngIf=\"enableCaseSearchFields\">\n <valtimo-search-fields\n [loading]=\"loadingDocumentSearchFields$ | async\"\n [searchFields]=\"documentSearchFields$ | async\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <ng-container *ngIf=\"paginationCopy$ | async as pagination\">\n <ng-container *ngIf=\"fields$ | async as fields\">\n <ng-container *ngIf=\"documentItems$ | async as documentItems\">\n <valtimo-widget *ngIf=\"obs.loading === false\">\n <valtimo-list\n [items]=\"documentItems\"\n [fields]=\"fields\"\n (rowClicked)=\"rowClick($event)\"\n [pagination]=\"pagination\"\n [viewMode]=\"true\"\n [header]=\"true\"\n paginationIdentifier=\"dossierList\"\n (paginationClicked)=\"pageChange($event)\"\n (paginationSet)=\"pageSizeChange($event)\"\n [initialSortState]=\"pagination.sort\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n {{ (schema$ | async)?.title }}\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{\n documentItems?.length || 0\n }}</sup>\n </h3>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #sidebar>\n <valtimo-filter-sidebar *ngIf=\"!enableCaseSearchFields\">\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$ | async\"\n (ngModelChange)=\"globalSearchFilterChange($event)\"\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$ | async\"\n (ngModelChange)=\"sequenceChange($event)\"\n />\n </div>\n </valtimo-filter-sidebar>\n</ng-template>\n", styles: [""] }]
|
|
530
|
+
}], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i2$1.DocumentService }, { type: i6$1.TranslateService }, { type: DossierService }, { type: i5.NGXLogger }, { type: i1.ConfigService }]; }, propDecorators: { processStart: [{
|
|
527
531
|
type: ViewChild,
|
|
528
532
|
args: ['processStartModal']
|
|
529
533
|
}] } });
|
|
@@ -543,8 +547,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
543
547
|
* See the License for the specific language governing permissions and
|
|
544
548
|
* limitations under the License.
|
|
545
549
|
*/
|
|
546
|
-
|
|
547
|
-
|
|
550
|
+
moment.locale(localStorage.getItem('langKey') || '');
|
|
551
|
+
moment.defaultFormat = 'DD MMM YYYY HH:mm';
|
|
548
552
|
class DossierDetailTabSummaryComponent {
|
|
549
553
|
constructor(router, documentService, taskService, processService, el, renderer, route, formService, userProviderService) {
|
|
550
554
|
this.router = router;
|
|
@@ -560,6 +564,7 @@ class DossierDetailTabSummaryComponent {
|
|
|
560
564
|
this.tasks = [];
|
|
561
565
|
this.formDefinition = null;
|
|
562
566
|
this.roles = [];
|
|
567
|
+
this._subscriptions = new Subscription();
|
|
563
568
|
this.snapshot = this.route.snapshot.paramMap;
|
|
564
569
|
this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';
|
|
565
570
|
this.documentId = this.snapshot.get('documentId') || '';
|
|
@@ -567,65 +572,70 @@ class DossierDetailTabSummaryComponent {
|
|
|
567
572
|
this.options.disableAlerts = true;
|
|
568
573
|
}
|
|
569
574
|
ngOnInit() {
|
|
570
|
-
this.moment =
|
|
575
|
+
this.moment = moment;
|
|
571
576
|
this.init();
|
|
572
577
|
}
|
|
578
|
+
ngOnDestroy() {
|
|
579
|
+
this._subscriptions.unsubscribe();
|
|
580
|
+
}
|
|
573
581
|
init() {
|
|
574
|
-
this.documentService.getDocument(this.documentId).subscribe(document => {
|
|
582
|
+
this._subscriptions.add(this.documentService.getDocument(this.documentId).subscribe(document => {
|
|
575
583
|
this.document = document;
|
|
576
|
-
});
|
|
577
|
-
this.formService
|
|
584
|
+
}));
|
|
585
|
+
this._subscriptions.add(this.formService
|
|
578
586
|
.getFormDefinitionByNamePreFilled(`${this.documentDefinitionName}.summary`, this.documentId)
|
|
579
587
|
.subscribe(formDefinition => {
|
|
580
588
|
this.formDefinition = formDefinition;
|
|
581
|
-
});
|
|
582
|
-
this.userProviderService.getUserSubject().subscribe(user => {
|
|
589
|
+
}));
|
|
590
|
+
this._subscriptions.add(this.userProviderService.getUserSubject().subscribe(user => {
|
|
583
591
|
this.roles = user.roles;
|
|
584
592
|
this.tasks = [];
|
|
585
593
|
this.loadProcessDocumentInstances(this.documentId);
|
|
586
|
-
});
|
|
594
|
+
}));
|
|
587
595
|
}
|
|
588
596
|
loadProcessDocumentInstances(documentId) {
|
|
589
|
-
this.documentService
|
|
597
|
+
this._subscriptions.add(this.documentService
|
|
590
598
|
.findProcessDocumentInstances(documentId)
|
|
591
599
|
.subscribe(processDocumentInstances => {
|
|
592
600
|
this.processDocumentInstances = processDocumentInstances;
|
|
593
601
|
this.processDocumentInstances.forEach(instance => {
|
|
594
602
|
this.loadProcessInstanceTasks(instance.id.processInstanceId);
|
|
595
603
|
});
|
|
596
|
-
});
|
|
604
|
+
}));
|
|
597
605
|
}
|
|
598
606
|
loadProcessInstanceTasks(processInstanceId) {
|
|
599
|
-
this.processService.getProcessInstanceTasks(processInstanceId).subscribe(tasks => {
|
|
600
|
-
tasks
|
|
601
|
-
task
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
if (
|
|
608
|
-
|
|
609
|
-
|
|
607
|
+
this._subscriptions.add(this.processService.getProcessInstanceTasks(processInstanceId).subscribe(tasks => {
|
|
608
|
+
if (tasks != null) {
|
|
609
|
+
tasks.forEach(task => {
|
|
610
|
+
task.createdUnix = this.moment(task.created).unix();
|
|
611
|
+
task.created = this.moment(task.created).format('DD MMM YYYY HH:mm');
|
|
612
|
+
task.isLocked = () => {
|
|
613
|
+
let locked = true;
|
|
614
|
+
for (const link of task.identityLinks) {
|
|
615
|
+
if (link.type === 'candidate' && link.groupId) {
|
|
616
|
+
if (this.roles.includes(link.groupId)) {
|
|
617
|
+
locked = false;
|
|
618
|
+
break;
|
|
619
|
+
}
|
|
610
620
|
}
|
|
611
621
|
}
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
};
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
});
|
|
622
|
+
return locked;
|
|
623
|
+
};
|
|
624
|
+
});
|
|
625
|
+
this.tasks = this.tasks.concat(tasks);
|
|
626
|
+
this.tasks.sort((t1, t2) => t2.createdUnix - t1.createdUnix);
|
|
627
|
+
}
|
|
628
|
+
}));
|
|
619
629
|
}
|
|
620
630
|
rowTaskClick(task) {
|
|
621
631
|
this.taskDetail.openTaskDetails(task);
|
|
622
632
|
}
|
|
623
633
|
}
|
|
624
634
|
DossierDetailTabSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierDetailTabSummaryComponent, deps: [{ token: i1$1.Router }, { token: i2$1.DocumentService }, { token: i3.TaskService }, { token: i2.ProcessService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1$1.ActivatedRoute }, { token: i5$3.FormService }, { token: i6.UserProviderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
625
|
-
DossierDetailTabSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DossierDetailTabSummaryComponent, selector: "valtimo-dossier-detail-tab-summary", viewQueries: [{ propertyName: "taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], ngImport: i0, 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\">
|
|
635
|
+
DossierDetailTabSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DossierDetailTabSummaryComponent, selector: "valtimo-dossier-detail-tab-summary", viewQueries: [{ propertyName: "taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], ngImport: i0, 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\">{{ 'summary.userTasks' | translate }}</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\">{{\n 'summary.taskOpen' | translate\n }}</span>\n <strong>{{ task.name }}</strong>\n <div>{{ 'summary.taskCreated' | translate }} {{ 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>{{ 'summary.taskCreated' | translate }} {{ 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", 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{height:24px!important;background-color:#fff;border:0px;margin:0;padding:0!important;font-size:13px}.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{margin-top:0;margin-bottom:12px;font-weight:400;color:#000;height:20px}\n"], components: [{ type: i7.FormioComponent, selector: "valtimo-form-io", inputs: ["form", "options", "submission", "formRefresh$"], outputs: ["submit", "change"] }, { type: i7.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { type: i3.TaskDetailModalComponent, selector: "valtimo-task-detail-modal", outputs: ["formSubmit", "assignmentOfTaskChanged"] }], directives: [{ type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }], pipes: { "translate": i6$1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
626
636
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierDetailTabSummaryComponent, decorators: [{
|
|
627
637
|
type: Component,
|
|
628
|
-
args: [{ selector: 'valtimo-dossier-detail-tab-summary', encapsulation: ViewEncapsulation.None, 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\">
|
|
638
|
+
args: [{ selector: 'valtimo-dossier-detail-tab-summary', encapsulation: ViewEncapsulation.None, 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\">{{ 'summary.userTasks' | translate }}</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\">{{\n 'summary.taskOpen' | translate\n }}</span>\n <strong>{{ task.name }}</strong>\n <div>{{ 'summary.taskCreated' | translate }} {{ 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>{{ 'summary.taskCreated' | translate }} {{ 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", 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{height:24px!important;background-color:#fff;border:0px;margin:0;padding:0!important;font-size:13px}.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{margin-top:0;margin-bottom:12px;font-weight:400;color:#000;height:20px}\n"] }]
|
|
629
639
|
}], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i2$1.DocumentService }, { type: i3.TaskService }, { type: i2.ProcessService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1$1.ActivatedRoute }, { type: i5$3.FormService }, { type: i6.UserProviderService }]; }, propDecorators: { taskDetail: [{
|
|
630
640
|
type: ViewChild,
|
|
631
641
|
args: ['taskDetail']
|
|
@@ -657,8 +667,7 @@ class DossierDetailTabProgressComponent {
|
|
|
657
667
|
this.documentService
|
|
658
668
|
.findProcessDocumentInstances(this.documentId)
|
|
659
669
|
.subscribe(processDocumentInstances => {
|
|
660
|
-
this.processDocumentInstances = processDocumentInstances
|
|
661
|
-
.sort((a, b) => (a.isActive === b.isActive) ? 0 : a.isActive ? -1 : 1);
|
|
670
|
+
this.processDocumentInstances = processDocumentInstances.sort((a, b) => a.isActive === b.isActive ? 0 : a.isActive ? -1 : 1);
|
|
662
671
|
if (processDocumentInstances.length > 0) {
|
|
663
672
|
this.selectedProcessInstanceId = processDocumentInstances[0].id.processInstanceId;
|
|
664
673
|
}
|
|
@@ -690,8 +699,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
690
699
|
* See the License for the specific language governing permissions and
|
|
691
700
|
* limitations under the License.
|
|
692
701
|
*/
|
|
693
|
-
|
|
694
|
-
|
|
702
|
+
moment.locale(localStorage.getItem('langKey') || '');
|
|
703
|
+
moment.defaultFormat = 'DD MMM YYYY HH:mm';
|
|
695
704
|
class DossierDetailTabAuditComponent {
|
|
696
705
|
constructor(route, documentService, spinnerService) {
|
|
697
706
|
this.route = route;
|
|
@@ -715,7 +724,7 @@ class DossierDetailTabAuditComponent {
|
|
|
715
724
|
this.documentService.getAuditLog(this.documentId, pageNumber).subscribe(page => {
|
|
716
725
|
const timelineItems = [];
|
|
717
726
|
page.content.forEach(auditRecord => {
|
|
718
|
-
const occurredOn =
|
|
727
|
+
const occurredOn = moment(auditRecord.metaData.occurredOn);
|
|
719
728
|
const fromNow = occurredOn.fromNow();
|
|
720
729
|
timelineItems.push(new TimelineItemImpl(occurredOn.format('DD MMM YYYY'), occurredOn.format('HH:mm'), auditRecord.metaData.user, fromNow, DossierDetailTabAuditComponent.getTranslationKey(auditRecord.auditEvent), auditRecord.auditEvent));
|
|
721
730
|
});
|
|
@@ -732,7 +741,7 @@ class DossierDetailTabAuditComponent {
|
|
|
732
741
|
}
|
|
733
742
|
}
|
|
734
743
|
DossierDetailTabAuditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierDetailTabAuditComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i2$1.DocumentService }, { token: i3$1.NgxSpinnerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
735
|
-
DossierDetailTabAuditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DossierDetailTabAuditComponent, selector: "valtimo-dossier-detail-tab-audit", outputs: { paginationClicked: "paginationClicked" }, ngImport: i0, 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", styles: [".audit-pagination{margin:0 -1.923rem -1.923rem!important;border-top:1px solid #dee2e6}\n"], components: [{ type: i7.TimelineComponent, selector: "valtimo-timeline", inputs: ["items"] }, { type: i7.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { type:
|
|
744
|
+
DossierDetailTabAuditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DossierDetailTabAuditComponent, selector: "valtimo-dossier-detail-tab-audit", outputs: { paginationClicked: "paginationClicked" }, ngImport: i0, 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", styles: [".audit-pagination{margin:0 -1.923rem -1.923rem!important;border-top:1px solid #dee2e6}\n"], components: [{ type: i7.TimelineComponent, selector: "valtimo-timeline", inputs: ["items"] }, { type: i7.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { type: i10.NgbPagination, selector: "ngb-pagination", inputs: ["disabled", "boundaryLinks", "directionLinks", "ellipses", "rotate", "collectionSize", "maxSize", "page", "pageSize", "size"], outputs: ["pageChange"] }], directives: [{ type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i6$1.TranslatePipe } });
|
|
736
745
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierDetailTabAuditComponent, decorators: [{
|
|
737
746
|
type: Component,
|
|
738
747
|
args: [{ selector: 'valtimo-dossier-detail-tab-audit', 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", styles: [".audit-pagination{margin:0 -1.923rem -1.923rem!important;border-top:1px solid #dee2e6}\n"] }]
|
|
@@ -843,7 +852,7 @@ class DossierDetailTabS3DocumentsComponent {
|
|
|
843
852
|
}, () => {
|
|
844
853
|
this.toastrService.error('Failed to remove document from dossier');
|
|
845
854
|
});
|
|
846
|
-
}
|
|
855
|
+
},
|
|
847
856
|
});
|
|
848
857
|
}
|
|
849
858
|
refetchDocuments() {
|
|
@@ -958,7 +967,7 @@ class DossierDetailTabDocumentenApiDocumentsComponent {
|
|
|
958
967
|
}, () => {
|
|
959
968
|
this.toastrService.error('Failed to remove document from dossier');
|
|
960
969
|
});
|
|
961
|
-
}
|
|
970
|
+
},
|
|
962
971
|
});
|
|
963
972
|
}
|
|
964
973
|
metadataSet(metadata) {
|
|
@@ -1397,6 +1406,118 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
1397
1406
|
type: Output
|
|
1398
1407
|
}] } });
|
|
1399
1408
|
|
|
1409
|
+
/*
|
|
1410
|
+
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
1411
|
+
*
|
|
1412
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1413
|
+
* you may not use this file except in compliance with the License.
|
|
1414
|
+
* You may obtain a copy of the License at
|
|
1415
|
+
*
|
|
1416
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1417
|
+
*
|
|
1418
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1419
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1420
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1421
|
+
* See the License for the specific language governing permissions and
|
|
1422
|
+
* limitations under the License.
|
|
1423
|
+
*/
|
|
1424
|
+
class DossierAssignUserComponent {
|
|
1425
|
+
constructor(documentService) {
|
|
1426
|
+
this.documentService = documentService;
|
|
1427
|
+
this.assignmentOfDocumentChanged = new EventEmitter();
|
|
1428
|
+
this.userIdToAssign = null;
|
|
1429
|
+
this.candidateUsersForDocument$ = new BehaviorSubject(undefined);
|
|
1430
|
+
this.disabled$ = new BehaviorSubject(true);
|
|
1431
|
+
this.assignedIdOnServer$ = new BehaviorSubject(null);
|
|
1432
|
+
this.assignedUserFullName$ = new BehaviorSubject(null);
|
|
1433
|
+
this._subscriptions = new Subscription();
|
|
1434
|
+
}
|
|
1435
|
+
ngOnInit() {
|
|
1436
|
+
this._subscriptions.add(this.documentService.getCandidateUsers(this.documentId).subscribe(candidateUsers => {
|
|
1437
|
+
this.candidateUsersForDocument$.next(candidateUsers);
|
|
1438
|
+
if (this.assigneeId) {
|
|
1439
|
+
this.assignedIdOnServer$.next(this.assigneeId);
|
|
1440
|
+
this.userIdToAssign = this.assigneeId;
|
|
1441
|
+
this.assignedUserFullName$.next(this.assigneeFullName);
|
|
1442
|
+
}
|
|
1443
|
+
this.enable();
|
|
1444
|
+
}));
|
|
1445
|
+
}
|
|
1446
|
+
ngOnChanges(changes) {
|
|
1447
|
+
var _a, _b;
|
|
1448
|
+
const assigneeId = (_a = changes === null || changes === void 0 ? void 0 : changes.assigneeId) === null || _a === void 0 ? void 0 : _a.currentValue;
|
|
1449
|
+
const assigneeFullName = (_b = changes === null || changes === void 0 ? void 0 : changes.assigneeFullName) === null || _b === void 0 ? void 0 : _b.currentValue;
|
|
1450
|
+
if (assigneeId && assigneeFullName) {
|
|
1451
|
+
this.assignedIdOnServer$.next(assigneeId || null);
|
|
1452
|
+
this.userIdToAssign = assigneeId || null;
|
|
1453
|
+
this.assignedUserFullName$.next(assigneeFullName);
|
|
1454
|
+
}
|
|
1455
|
+
else {
|
|
1456
|
+
this.clear();
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1459
|
+
ngOnDestroy() {
|
|
1460
|
+
this._subscriptions.unsubscribe();
|
|
1461
|
+
}
|
|
1462
|
+
assignDocument(userId) {
|
|
1463
|
+
this.disable();
|
|
1464
|
+
this.documentService
|
|
1465
|
+
.assignHandlerToDocument(this.documentId, userId)
|
|
1466
|
+
.pipe(tap$1(() => {
|
|
1467
|
+
this.userIdToAssign = userId;
|
|
1468
|
+
this.assignedIdOnServer$.next(userId);
|
|
1469
|
+
this.assignedUserFullName$.next(this.assigneeFullName);
|
|
1470
|
+
this.emitChange();
|
|
1471
|
+
this.enable();
|
|
1472
|
+
}))
|
|
1473
|
+
.subscribe();
|
|
1474
|
+
}
|
|
1475
|
+
unassignDocument() {
|
|
1476
|
+
this.disable();
|
|
1477
|
+
this.documentService
|
|
1478
|
+
.unassignHandlerFromDocument(this.documentId)
|
|
1479
|
+
.pipe(tap$1(() => {
|
|
1480
|
+
this.clear();
|
|
1481
|
+
this.emitChange();
|
|
1482
|
+
this.enable();
|
|
1483
|
+
}))
|
|
1484
|
+
.subscribe();
|
|
1485
|
+
}
|
|
1486
|
+
mapUsersForDropdown(users) {
|
|
1487
|
+
return (users &&
|
|
1488
|
+
users
|
|
1489
|
+
.sort((a, b) => a.lastName.localeCompare(b.lastName))
|
|
1490
|
+
.map(user => ({ text: `${user.firstName} ${user.lastName}`, id: user.id })));
|
|
1491
|
+
}
|
|
1492
|
+
clear() {
|
|
1493
|
+
this.assignedIdOnServer$.next(null);
|
|
1494
|
+
this.userIdToAssign = null;
|
|
1495
|
+
}
|
|
1496
|
+
emitChange() {
|
|
1497
|
+
this.assignmentOfDocumentChanged.emit();
|
|
1498
|
+
}
|
|
1499
|
+
enable() {
|
|
1500
|
+
this.disabled$.next(false);
|
|
1501
|
+
}
|
|
1502
|
+
disable() {
|
|
1503
|
+
this.disabled$.next(true);
|
|
1504
|
+
}
|
|
1505
|
+
}
|
|
1506
|
+
DossierAssignUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierAssignUserComponent, deps: [{ token: i2$1.DocumentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1507
|
+
DossierAssignUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DossierAssignUserComponent, selector: "valtimo-dossier-assign-user", inputs: { documentId: "documentId", assigneeId: "assigneeId", assigneeFullName: "assigneeFullName" }, outputs: { assignmentOfDocumentChanged: "assignmentOfDocumentChanged" }, usesOnChanges: true, ngImport: i0, 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\n *ngIf=\"{\n candidateUsers: candidateUsersForDocument$ | async,\n idOnServer: assignedIdOnServer$ | async,\n fullName: assignedUserFullName$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"row mt-2 mb-2\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <ng-container *ngIf=\"obs.candidateUsers; else loading\">\n <valtimo-searchable-dropdown-select\n [disabled]=\"obs.disabled\"\n id=\"dossier-candidates-dropdown\"\n [style]=\"'underlinedText'\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [buttonText]=\"'assignDocument.header' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [selectedText]=\"'assignDocument.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [clearSelectionButtonTitle]=\"'assignDocument.remove' | translate\"\n [hasSelection]=\"\n userIdToAssign === obs.idOnServer && obs.idOnServer !== null && obs.fullName\n \"\n [width]=\"250\"\n (itemSelected)=\"assignDocument($event)\"\n (clearSelection)=\"unassignDocument()\"\n >\n </valtimo-searchable-dropdown-select>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5>\n <b>{{ 'assignDocument.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n", 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 */.container-fluid{color:#959595}valtimo-searchable-dropdown-select{font-size:13px}:host::ng-deep #dossier-candidates-dropdown h5{margin-block:0}\n"], components: [{ type: i7.SearchableDropdownSelectComponent, selector: "valtimo-searchable-dropdown-select", inputs: ["style", "items", "buttonText", "searchText", "noResultsText", "disabled", "selectedText", "selectedTextValue", "clearSelectionButtonTitle", "hasSelection", "width"], outputs: ["itemSelected", "clearSelection"] }], directives: [{ type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5$1.AsyncPipe, "translate": i6$1.TranslatePipe } });
|
|
1508
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierAssignUserComponent, decorators: [{
|
|
1509
|
+
type: Component,
|
|
1510
|
+
args: [{ selector: 'valtimo-dossier-assign-user', 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\n *ngIf=\"{\n candidateUsers: candidateUsersForDocument$ | async,\n idOnServer: assignedIdOnServer$ | async,\n fullName: assignedUserFullName$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"row mt-2 mb-2\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <ng-container *ngIf=\"obs.candidateUsers; else loading\">\n <valtimo-searchable-dropdown-select\n [disabled]=\"obs.disabled\"\n id=\"dossier-candidates-dropdown\"\n [style]=\"'underlinedText'\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [buttonText]=\"'assignDocument.header' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [selectedText]=\"'assignDocument.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [clearSelectionButtonTitle]=\"'assignDocument.remove' | translate\"\n [hasSelection]=\"\n userIdToAssign === obs.idOnServer && obs.idOnServer !== null && obs.fullName\n \"\n [width]=\"250\"\n (itemSelected)=\"assignDocument($event)\"\n (clearSelection)=\"unassignDocument()\"\n >\n </valtimo-searchable-dropdown-select>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5>\n <b>{{ 'assignDocument.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n", 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 */.container-fluid{color:#959595}valtimo-searchable-dropdown-select{font-size:13px}:host::ng-deep #dossier-candidates-dropdown h5{margin-block:0}\n"] }]
|
|
1511
|
+
}], ctorParameters: function () { return [{ type: i2$1.DocumentService }]; }, propDecorators: { documentId: [{
|
|
1512
|
+
type: Input
|
|
1513
|
+
}], assigneeId: [{
|
|
1514
|
+
type: Input
|
|
1515
|
+
}], assigneeFullName: [{
|
|
1516
|
+
type: Input
|
|
1517
|
+
}], assignmentOfDocumentChanged: [{
|
|
1518
|
+
type: Output
|
|
1519
|
+
}] } });
|
|
1520
|
+
|
|
1400
1521
|
/*
|
|
1401
1522
|
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
1402
1523
|
*
|
|
@@ -1413,7 +1534,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
1413
1534
|
* limitations under the License.
|
|
1414
1535
|
*/
|
|
1415
1536
|
class DossierDetailComponent {
|
|
1416
|
-
constructor(componentFactoryResolver, translateService, documentService, processService, route, router, location, tabService, configService) {
|
|
1537
|
+
constructor(componentFactoryResolver, translateService, documentService, processService, route, router, location, tabService, configService, keyCloakService, logger) {
|
|
1417
1538
|
this.componentFactoryResolver = componentFactoryResolver;
|
|
1418
1539
|
this.translateService = translateService;
|
|
1419
1540
|
this.documentService = documentService;
|
|
@@ -1423,11 +1544,32 @@ class DossierDetailComponent {
|
|
|
1423
1544
|
this.location = location;
|
|
1424
1545
|
this.tabService = tabService;
|
|
1425
1546
|
this.configService = configService;
|
|
1547
|
+
this.keyCloakService = keyCloakService;
|
|
1548
|
+
this.logger = logger;
|
|
1426
1549
|
this.document = null;
|
|
1427
1550
|
this.tabLoader = null;
|
|
1428
1551
|
this.processDefinitionListFields = [];
|
|
1429
1552
|
this.processDocumentDefinitions = [];
|
|
1430
1553
|
this.customDossierHeaderItems = [];
|
|
1554
|
+
this.refreshDocument$ = new BehaviorSubject(null);
|
|
1555
|
+
this.assigneeId$ = new BehaviorSubject('');
|
|
1556
|
+
this.document$ = this.refreshDocument$.pipe(switchMap(() => this.route.params), map(params => params === null || params === void 0 ? void 0 : params.documentId), switchMap(documentId => documentId ? this.documentService.getDocument(this.documentId) : of(null)), tap(document => {
|
|
1557
|
+
var _a, _b;
|
|
1558
|
+
if (document) {
|
|
1559
|
+
this.assigneeId$.next(document.assigneeId);
|
|
1560
|
+
this.document = document;
|
|
1561
|
+
if (((_a = this.configService.config.customDossierHeader) === null || _a === void 0 ? void 0 : _a.hasOwnProperty(this.documentDefinitionName.toLowerCase())) &&
|
|
1562
|
+
this.customDossierHeaderItems.length === 0) {
|
|
1563
|
+
(_b = this.configService.config.customDossierHeader[this.documentDefinitionName.toLowerCase()]) === null || _b === void 0 ? void 0 : _b.forEach(item => this.getCustomDossierHeaderItem(item));
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1566
|
+
}));
|
|
1567
|
+
this.userId$ = from(this.keyCloakService.isLoggedIn()).pipe(switchMap(() => this.keyCloakService.loadUserProfile()), map(profile => profile === null || profile === void 0 ? void 0 : profile.id));
|
|
1568
|
+
this.isAssigning$ = new BehaviorSubject(false);
|
|
1569
|
+
this.isAssignedToCurrentUser$ = combineLatest([
|
|
1570
|
+
this.assigneeId$,
|
|
1571
|
+
this.userId$,
|
|
1572
|
+
]).pipe(map(([assigneeId, userId]) => assigneeId && userId && assigneeId === userId), startWith(true));
|
|
1431
1573
|
this.snapshot = this.route.snapshot.paramMap;
|
|
1432
1574
|
this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';
|
|
1433
1575
|
this.documentId = this.snapshot.get('documentId') || '';
|
|
@@ -1440,7 +1582,6 @@ class DossierDetailComponent {
|
|
|
1440
1582
|
.subscribe(definition => {
|
|
1441
1583
|
this.documentDefinitionNameTitle = definition.schema.title;
|
|
1442
1584
|
});
|
|
1443
|
-
this.getCustomDossierHeader();
|
|
1444
1585
|
this.initialTabName = this.snapshot.get('tab');
|
|
1445
1586
|
this.tabLoader.initial(this.initialTabName);
|
|
1446
1587
|
this.getAllAssociatedProcessDefinitions();
|
|
@@ -1461,15 +1602,20 @@ class DossierDetailComponent {
|
|
|
1461
1602
|
startProcess(processDocumentDefinition) {
|
|
1462
1603
|
this.supportingProcessStart.openModal(processDocumentDefinition, this.documentId);
|
|
1463
1604
|
}
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
this.documentService.
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1605
|
+
claimAssignee() {
|
|
1606
|
+
this.isAssigning$.next(true);
|
|
1607
|
+
this.userId$
|
|
1608
|
+
.pipe(take(1), switchMap(userId => this.documentService.assignHandlerToDocument(this.documentId, userId)))
|
|
1609
|
+
.subscribe(() => {
|
|
1610
|
+
this.isAssigning$.next(false);
|
|
1611
|
+
this.refreshDocument$.next(null);
|
|
1612
|
+
}, () => {
|
|
1613
|
+
this.isAssigning$.next(false);
|
|
1614
|
+
this.logger.debug('Something went wrong while assigning user to case');
|
|
1615
|
+
});
|
|
1616
|
+
}
|
|
1617
|
+
assignmentOfDocumentChanged() {
|
|
1618
|
+
this.refreshDocument$.next(null);
|
|
1473
1619
|
}
|
|
1474
1620
|
getCustomDossierHeaderItem(item) {
|
|
1475
1621
|
var _a;
|
|
@@ -1478,23 +1624,36 @@ class DossierDetailComponent {
|
|
|
1478
1624
|
columnSize: item['columnSize'] || 3,
|
|
1479
1625
|
textSize: item['textSize'] || 'md',
|
|
1480
1626
|
customClass: item['customClass'] || '',
|
|
1627
|
+
modifier: item['modifier'] || '',
|
|
1481
1628
|
value: (_a = item['propertyPaths']) === null || _a === void 0 ? void 0 : _a.reduce((prev, curr) => prev + this.getStringFromDocumentPath(item, curr), ''),
|
|
1482
1629
|
});
|
|
1483
1630
|
}
|
|
1484
1631
|
getStringFromDocumentPath(item, path) {
|
|
1485
1632
|
const prefix = item['propertyPaths'].indexOf(path) > 0 ? ' ' : '';
|
|
1486
|
-
|
|
1487
|
-
const
|
|
1488
|
-
|
|
1489
|
-
|
|
1633
|
+
let string = path.split('.').reduce((o, i) => o[i], this.document.content) || item['noValueText'] || '';
|
|
1634
|
+
const dateFormats = [moment.ISO_8601, 'MM-DD-YYYY', 'DD-MM-YYYY', 'YYYY-MM-DD'];
|
|
1635
|
+
switch (item['modifier']) {
|
|
1636
|
+
case 'age': {
|
|
1637
|
+
if (moment(string, dateFormats, true).isValid()) {
|
|
1638
|
+
string = moment().diff(string, 'years');
|
|
1639
|
+
}
|
|
1640
|
+
break;
|
|
1641
|
+
}
|
|
1642
|
+
default: {
|
|
1643
|
+
if (moment(string, dateFormats, true).isValid()) {
|
|
1644
|
+
string = moment(string).format('DD-MM-YYYY');
|
|
1645
|
+
}
|
|
1646
|
+
}
|
|
1647
|
+
}
|
|
1648
|
+
return prefix + string;
|
|
1490
1649
|
}
|
|
1491
1650
|
}
|
|
1492
|
-
DossierDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierDetailComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i6$1.TranslateService }, { token: i2$1.DocumentService }, { token: i2.ProcessService }, { token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i5$1.Location }, { token: TabService }, { token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1493
|
-
DossierDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DossierDetailComponent, selector: "valtimo-dossier-detail", viewQueries: [{ propertyName: "viewContainerRef", first: true, predicate: ["tabContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "supportingProcessStart", first: true, predicate: ["supportingProcessStartModal"], descendants: true }], ngImport: i0, 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-2\">\n <div class=\"row\">\n <div class=\"col\">\n <
|
|
1651
|
+
DossierDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierDetailComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i6$1.TranslateService }, { token: i2$1.DocumentService }, { token: i2.ProcessService }, { token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i5$1.Location }, { token: TabService }, { token: i1.ConfigService }, { token: i8.KeycloakService }, { token: i5.NGXLogger }], target: i0.ɵɵFactoryTarget.Component });
|
|
1652
|
+
DossierDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DossierDetailComponent, selector: "valtimo-dossier-detail", viewQueries: [{ propertyName: "viewContainerRef", first: true, predicate: ["tabContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "supportingProcessStart", first: true, predicate: ["supportingProcessStartModal"], descendants: true }], ngImport: i0, 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-2\">\n <div class=\"row\">\n <div class=\"col\">\n <ng-container *ngTemplateOutlet=\"caseDetailHeader\"></ng-container>\n </div>\n <div class=\"btn-group mt-m3px mb-3 col-auto\">\n <valtimo-extension\n module=\"dossier\"\n page=\"dossier-detail\"\n section=\"card-header\"\n ></valtimo-extension>\n <ng-container *ngTemplateOutlet=\"claimButton\"></ng-container>\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>{{ 'dossier.startSubProcess' | translate }}</span>\n <i class=\"ml-1 mdi mdi-chevron-down\"></i>\n </button>\n <div\n class=\"dropdown-menu dropdown-menu-right\"\n aria-labelledby=\"startProcessDropdown\"\n >\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 </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\n<ng-template #caseDetailHeader>\n <div class=\"row\" *ngIf=\"customDossierHeaderItems.length > 0; else defaultTitle\">\n <span\n class=\"mb-0 mt-0 pb-2 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n [ngClass]=\"{\n h1: item.textSize === 'xl',\n h2: item.textSize === 'lg',\n h3: item.textSize === 'md',\n h4: item.textSize === 'sm',\n h5: item.textSize === 'xs'\n }\"\n *ngFor=\"let item of customDossierHeaderItems\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.label && item.value\">: </span>\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n <ng-container *ngTemplateOutlet=\"caseDetailAssignee\"></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n <div class=\"row ml-0 mr-0\">{{ documentDefinitionNameTitle?.trim() }}</div>\n</ng-template>\n\n<ng-template #caseDetailAssignee>\n <div class=\"row ml-0 mr-0 mt-1 mb-1\" *ngIf=\"document$ | async as document\">\n <valtimo-dossier-assign-user\n [documentId]=\"document.id\"\n [assigneeId]=\"document.assigneeId\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton>\n <div class=\"user-full-name\">\n <button\n class=\"btn btn-space btn-primary mr-1\"\n type=\"button\"\n id=\"\"\n placement=\"bottom\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"claimAssignee()\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </button>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}\n"], components: [{ type: i7.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { type: i1.ExtensionComponent, selector: "valtimo-extension", inputs: ["module", "page", "section"] }, { type: DossierSupportingProcessStartModalComponent, selector: "valtimo-dossier-supporting-process-start-modal", outputs: ["formSubmit"] }, { type: DossierAssignUserComponent, selector: "valtimo-dossier-assign-user", inputs: ["documentId", "assigneeId", "assigneeFullName"], outputs: ["assignmentOfDocumentChanged"] }], directives: [{ type: i5$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i10.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i6$1.TranslatePipe, "async": i5$1.AsyncPipe } });
|
|
1494
1653
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierDetailComponent, decorators: [{
|
|
1495
1654
|
type: Component,
|
|
1496
|
-
args: [{ selector: 'valtimo-dossier-detail', 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-2\">\n <div class=\"row\">\n <div class=\"col\">\n <
|
|
1497
|
-
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i6$1.TranslateService }, { type: i2$1.DocumentService }, { type: i2.ProcessService }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i5$1.Location }, { type: TabService }, { type: i1.ConfigService }]; }, propDecorators: { viewContainerRef: [{
|
|
1655
|
+
args: [{ selector: 'valtimo-dossier-detail', 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-2\">\n <div class=\"row\">\n <div class=\"col\">\n <ng-container *ngTemplateOutlet=\"caseDetailHeader\"></ng-container>\n </div>\n <div class=\"btn-group mt-m3px mb-3 col-auto\">\n <valtimo-extension\n module=\"dossier\"\n page=\"dossier-detail\"\n section=\"card-header\"\n ></valtimo-extension>\n <ng-container *ngTemplateOutlet=\"claimButton\"></ng-container>\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>{{ 'dossier.startSubProcess' | translate }}</span>\n <i class=\"ml-1 mdi mdi-chevron-down\"></i>\n </button>\n <div\n class=\"dropdown-menu dropdown-menu-right\"\n aria-labelledby=\"startProcessDropdown\"\n >\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 </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\n<ng-template #caseDetailHeader>\n <div class=\"row\" *ngIf=\"customDossierHeaderItems.length > 0; else defaultTitle\">\n <span\n class=\"mb-0 mt-0 pb-2 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n [ngClass]=\"{\n h1: item.textSize === 'xl',\n h2: item.textSize === 'lg',\n h3: item.textSize === 'md',\n h4: item.textSize === 'sm',\n h5: item.textSize === 'xs'\n }\"\n *ngFor=\"let item of customDossierHeaderItems\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.label && item.value\">: </span>\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n <ng-container *ngTemplateOutlet=\"caseDetailAssignee\"></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n <div class=\"row ml-0 mr-0\">{{ documentDefinitionNameTitle?.trim() }}</div>\n</ng-template>\n\n<ng-template #caseDetailAssignee>\n <div class=\"row ml-0 mr-0 mt-1 mb-1\" *ngIf=\"document$ | async as document\">\n <valtimo-dossier-assign-user\n [documentId]=\"document.id\"\n [assigneeId]=\"document.assigneeId\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton>\n <div class=\"user-full-name\">\n <button\n class=\"btn btn-space btn-primary mr-1\"\n type=\"button\"\n id=\"\"\n placement=\"bottom\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"claimAssignee()\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </button>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}\n"] }]
|
|
1656
|
+
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i6$1.TranslateService }, { type: i2$1.DocumentService }, { type: i2.ProcessService }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i5$1.Location }, { type: TabService }, { type: i1.ConfigService }, { type: i8.KeycloakService }, { type: i5.NGXLogger }]; }, propDecorators: { viewContainerRef: [{
|
|
1498
1657
|
type: ViewChild,
|
|
1499
1658
|
args: ['tabContainer', { read: ViewContainerRef, static: true }]
|
|
1500
1659
|
}], supportingProcessStart: [{
|
|
@@ -1517,7 +1676,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
1517
1676
|
* See the License for the specific language governing permissions and
|
|
1518
1677
|
* limitations under the License.
|
|
1519
1678
|
*/
|
|
1520
|
-
|
|
1679
|
+
moment.locale(localStorage.getItem('langKey') || '');
|
|
1521
1680
|
class DossierDetailTabContactMomentsComponent {
|
|
1522
1681
|
constructor(contactMomentService, alertService, translateService) {
|
|
1523
1682
|
this.contactMomentService = contactMomentService;
|
|
@@ -1525,7 +1684,7 @@ class DossierDetailTabContactMomentsComponent {
|
|
|
1525
1684
|
this.translateService = translateService;
|
|
1526
1685
|
this.refetchContactMoments$ = new BehaviorSubject('');
|
|
1527
1686
|
this.contactMoments$ = this.refetchContactMoments$.pipe(switchMap$1(() => this.contactMomentService.getContactMoments()), map$1(contactMoments => contactMoments.map(contactMoment => {
|
|
1528
|
-
const registratieDatum =
|
|
1687
|
+
const registratieDatum = moment(contactMoment.registratiedatum);
|
|
1529
1688
|
return new TimelineItemImpl(registratieDatum.format('DD MMM YYYY'), registratieDatum.format('HH:mm'), contactMoment.medewerkerIdentificatie.achternaam, contactMoment.kanaal, contactMoment.tekst, null);
|
|
1530
1689
|
})));
|
|
1531
1690
|
this.text$ = new BehaviorSubject('');
|
|
@@ -1668,7 +1827,7 @@ class DossierDetailTabZaakobjectenComponent {
|
|
|
1668
1827
|
}
|
|
1669
1828
|
}
|
|
1670
1829
|
DossierDetailTabZaakobjectenComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierDetailTabZaakobjectenComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: ZaakobjectenService }, { token: i3$3.ModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1671
|
-
DossierDetailTabZaakobjectenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DossierDetailTabZaakobjectenComponent, selector: "valtimo-dossier-detail-tab-zaakobjecten", viewQueries: [{ propertyName: "viewZaakobjectModal", first: true, predicate: ["viewZaakobjectModal"], descendants: true }], ngImport: i0, 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\n *ngIf=\"{\n objecttypeSelectItems: objecttypeSelectItems$ | async,\n objects: objects$ | async,\n columns: columns$ | async,\n selectedObjectTypeUrl: selectedObjecttypeUrl$ | async\n } as obs\"\n>\n <v-select\n [items]=\"obs.objecttypeSelectItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypes\"\n [title]=\"'dossier.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'dossier.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"dossier.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'dossier.zaakobjecten.objectenPlaceholder' | translate\n }}</v-paragraph>\n <v-table\n *ngIf=\"obs.selectedObjectTypeUrl\"\n [loading]=\"!obs.objects\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n (editButtonClicked)=\"rowClicked($event, obs.objecttypeSelectItems)\"\n ></v-table>\n</ng-container>\n\n<v-modal #viewZaakobjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n", 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 */\n"], components: [{ type: i3$3.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "clearable", "disabled", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder"], outputs: ["selectedChange", "clear"] }, { type: i3$3.InputLabelComponent, selector: "v-input-label", inputs: ["name", "title", "titleTranslationKey", "tooltip", "required", "largeMargin"] }, { type: i3$3.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { type: i3$3.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "maxPaginationItemSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { type: i3$3.ModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { type: i3$3.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { type: i7.FormioComponent, selector: "valtimo-form-io", inputs: ["form", "options", "submission", "formRefresh$"], outputs: ["submit", "change"] }], directives: [{ type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5$1.AsyncPipe, "translate": i6$1.TranslatePipe } });
|
|
1830
|
+
DossierDetailTabZaakobjectenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DossierDetailTabZaakobjectenComponent, selector: "valtimo-dossier-detail-tab-zaakobjecten", viewQueries: [{ propertyName: "viewZaakobjectModal", first: true, predicate: ["viewZaakobjectModal"], descendants: true }], ngImport: i0, 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\n *ngIf=\"{\n objecttypeSelectItems: objecttypeSelectItems$ | async,\n objects: objects$ | async,\n columns: columns$ | async,\n selectedObjectTypeUrl: selectedObjecttypeUrl$ | async\n } as obs\"\n>\n <v-select\n [items]=\"obs.objecttypeSelectItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypes\"\n [title]=\"'dossier.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'dossier.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"dossier.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'dossier.zaakobjecten.objectenPlaceholder' | translate\n }}</v-paragraph>\n <v-table\n *ngIf=\"obs.selectedObjectTypeUrl\"\n [loading]=\"!obs.objects\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n (editButtonClicked)=\"rowClicked($event, obs.objecttypeSelectItems)\"\n ></v-table>\n</ng-container>\n\n<v-modal #viewZaakobjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n", 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 */\n"], components: [{ type: i3$3.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "clearable", "disabled", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder"], outputs: ["selectedChange", "clear"] }, { type: i3$3.InputLabelComponent, selector: "v-input-label", inputs: ["name", "title", "titleTranslationKey", "tooltip", "required", "largeMargin", "small"] }, { type: i3$3.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { type: i3$3.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "maxPaginationItemSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { type: i3$3.ModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { type: i3$3.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { type: i7.FormioComponent, selector: "valtimo-form-io", inputs: ["form", "options", "submission", "formRefresh$"], outputs: ["submit", "change"] }], directives: [{ type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5$1.AsyncPipe, "translate": i6$1.TranslatePipe } });
|
|
1672
1831
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierDetailTabZaakobjectenComponent, decorators: [{
|
|
1673
1832
|
type: Component,
|
|
1674
1833
|
args: [{ selector: 'valtimo-dossier-detail-tab-zaakobjecten', 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\n *ngIf=\"{\n objecttypeSelectItems: objecttypeSelectItems$ | async,\n objects: objects$ | async,\n columns: columns$ | async,\n selectedObjectTypeUrl: selectedObjecttypeUrl$ | async\n } as obs\"\n>\n <v-select\n [items]=\"obs.objecttypeSelectItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypes\"\n [title]=\"'dossier.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'dossier.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"dossier.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'dossier.zaakobjecten.objectenPlaceholder' | translate\n }}</v-paragraph>\n <v-table\n *ngIf=\"obs.selectedObjectTypeUrl\"\n [loading]=\"!obs.objects\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n (editButtonClicked)=\"rowClicked($event, obs.objecttypeSelectItems)\"\n ></v-table>\n</ng-container>\n\n<v-modal #viewZaakobjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n", 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 */\n"] }]
|
|
@@ -1692,7 +1851,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
1692
1851
|
* See the License for the specific language governing permissions and
|
|
1693
1852
|
* limitations under the License.
|
|
1694
1853
|
*/
|
|
1695
|
-
|
|
1854
|
+
moment.locale(localStorage.getItem('langKey') || '');
|
|
1696
1855
|
class DossierUpdateComponent {
|
|
1697
1856
|
constructor(taskService, documentService, route, toastr, location, dossierService) {
|
|
1698
1857
|
this.taskService = taskService;
|
|
@@ -1728,10 +1887,10 @@ class DossierUpdateComponent {
|
|
|
1728
1887
|
getTask(id) {
|
|
1729
1888
|
this.taskService.getTask(id).subscribe(task => {
|
|
1730
1889
|
this.task = task;
|
|
1731
|
-
this.task.task.created =
|
|
1890
|
+
this.task.task.created = moment(this.task.task.created).format('DD MMM YYYY HH:mm');
|
|
1732
1891
|
this.page = {
|
|
1733
1892
|
title: this.task.task.name,
|
|
1734
|
-
subtitle: `Created ${
|
|
1893
|
+
subtitle: `Created ${moment(this.task.task.created).fromNow()}`,
|
|
1735
1894
|
};
|
|
1736
1895
|
});
|
|
1737
1896
|
}
|
|
@@ -1881,7 +2040,8 @@ DossierModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
1881
2040
|
DossierSupportingProcessStartModalComponent,
|
|
1882
2041
|
DossierDetailTabObjectTypeComponent,
|
|
1883
2042
|
DossierDetailTabDocumentenApiDocumentsComponent,
|
|
1884
|
-
DossierDetailTabS3DocumentsComponent
|
|
2043
|
+
DossierDetailTabS3DocumentsComponent,
|
|
2044
|
+
DossierAssignUserComponent], imports: [CommonModule,
|
|
1885
2045
|
DossierRoutingModule,
|
|
1886
2046
|
ListModule,
|
|
1887
2047
|
WidgetModule,
|
|
@@ -1910,7 +2070,9 @@ DossierModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
1910
2070
|
ModalModule$1,
|
|
1911
2071
|
TitleModule,
|
|
1912
2072
|
ButtonModule,
|
|
1913
|
-
DocumentenApiMetadataModalModule
|
|
2073
|
+
DocumentenApiMetadataModalModule,
|
|
2074
|
+
SearchableDropdownSelectModule,
|
|
2075
|
+
SearchFieldsModule], exports: [DossierListComponent, DossierDetailComponent] });
|
|
1914
2076
|
DossierModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierModule, imports: [[
|
|
1915
2077
|
CommonModule,
|
|
1916
2078
|
DossierRoutingModule,
|
|
@@ -1950,6 +2112,8 @@ DossierModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
|
|
|
1950
2112
|
TitleModule,
|
|
1951
2113
|
ButtonModule,
|
|
1952
2114
|
DocumentenApiMetadataModalModule,
|
|
2115
|
+
SearchableDropdownSelectModule,
|
|
2116
|
+
SearchFieldsModule,
|
|
1953
2117
|
]] });
|
|
1954
2118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DossierModule, decorators: [{
|
|
1955
2119
|
type: NgModule,
|
|
@@ -1969,6 +2133,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
1969
2133
|
DossierDetailTabObjectTypeComponent,
|
|
1970
2134
|
DossierDetailTabDocumentenApiDocumentsComponent,
|
|
1971
2135
|
DossierDetailTabS3DocumentsComponent,
|
|
2136
|
+
DossierAssignUserComponent,
|
|
1972
2137
|
],
|
|
1973
2138
|
imports: [
|
|
1974
2139
|
CommonModule,
|
|
@@ -2009,6 +2174,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
2009
2174
|
TitleModule,
|
|
2010
2175
|
ButtonModule,
|
|
2011
2176
|
DocumentenApiMetadataModalModule,
|
|
2177
|
+
SearchableDropdownSelectModule,
|
|
2178
|
+
SearchFieldsModule,
|
|
2012
2179
|
],
|
|
2013
2180
|
exports: [DossierListComponent, DossierDetailComponent],
|
|
2014
2181
|
}]
|