diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html
index 06dee2be4..6cd5f9d5f 100644
--- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html
+++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html
@@ -1,10 +1,10 @@
diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.ts
index 956ab598e..6e5af5471 100644
--- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.ts
+++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.ts
@@ -18,6 +18,7 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa
@Output() readonly updateDossier = new EventEmitter();
canEdit = false;
readonly circleButtonTypes = CircleButtonTypes;
+ dossierDictionary: IDictionary;
@ViewChild(DictionaryManagerComponent, { static: false }) private readonly _dictionaryManager: DictionaryManagerComponent;
@@ -40,16 +41,16 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa
async ngOnInit() {
this._loadingService.start();
this.canEdit = this._permissionsService.isDossierMember(this.dossier);
- await this._dossiersService.updateDossierDictionary(this.dossier.dossierTemplateId, this.dossier.id);
+ await this._updateDossierDictionary();
this._loadingService.stop();
}
async updateDisplayName(label: string) {
- const dictionary: IDictionary = { ...this.dossier.type, label };
+ const dictionary: IDictionary = { ...this.dossierDictionary, label };
await this._dictionaryService
.updateDictionary(dictionary, this.dossier.dossierTemplateId, 'dossier_redaction', this.dossier.id)
.toPromise();
- await this._dossiersService.updateDossierDictionary(this.dossier.dossierTemplateId, this.dossier.id);
+ await this._updateDossierDictionary();
this.updateDossier.emit();
}
@@ -64,11 +65,16 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa
false,
)
.toPromise();
- await this._dossiersService.updateDossierDictionary(this.dossier.dossierTemplateId, this.dossier.id);
+ await this._updateDossierDictionary();
this.updateDossier.emit();
}
revert() {
this._dictionaryManager.revert();
}
+
+ private async _updateDossierDictionary() {
+ const { dossierId, dossierTemplateId } = this.dossier;
+ this.dossierDictionary = await this._dictionaryService.getFor(dossierTemplateId, 'dossier_redaction', dossierId).toPromise();
+ }
}
diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details-stats/dossier-details-stats.component.html b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details-stats/dossier-details-stats.component.html
index 0dd0c8949..d350e144d 100644
--- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details-stats/dossier-details-stats.component.html
+++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details-stats/dossier-details-stats.component.html
@@ -6,7 +6,9 @@
- {{ 'dossier-overview.dossier-details.stats.processing-documents' | translate: { count: stats.numberOfProcessingFiles } }}
+ {{
+ 'dossier-overview.dossier-details.stats.processing-documents' | translate: { count: stats.numberOfProcessingFiles }
+ }}
@@ -35,7 +37,7 @@
{{ dossierTemplate(dossier).name }}
-
+
{{ 'dossier-overview.dossier-details.dictionary' | translate }}
diff --git a/apps/red-ui/src/app/services/entity-services/dossiers.service.ts b/apps/red-ui/src/app/services/entity-services/dossiers.service.ts
index 7fa19a0b8..be6a5cb63 100644
--- a/apps/red-ui/src/app/services/entity-services/dossiers.service.ts
+++ b/apps/red-ui/src/app/services/entity-services/dossiers.service.ts
@@ -4,7 +4,6 @@ import { Dossier, IDossier, IDossierRequest } from '@red/domain';
import { catchError, filter, map, switchMap, tap } from 'rxjs/operators';
import { BehaviorSubject, combineLatest, Observable, of, throwError } from 'rxjs';
import { ActivationEnd, Router } from '@angular/router';
-import { DictionaryService } from '@shared/services/dictionary.service';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { currentComponentRoute } from '@utils/functions';
import { HttpErrorResponse } from '@angular/common/http';
@@ -30,7 +29,6 @@ export class DossiersService extends EntitiesService
{
private readonly _router: Router,
private readonly _toaster: Toaster,
protected readonly _injector: Injector,
- private readonly _dictionaryService: DictionaryService,
private readonly _dossierStatsService: DossierStatsService,
) {
super(_injector, Dossier, 'dossier');
@@ -54,8 +52,6 @@ export class DossiersService extends EntitiesService {
}
this._activeDossierId$.next(dossierId);
- const dossier = this.find(dossierId);
- this.updateDossierDictionary(dossier.dossierTemplateId, dossierId).then();
});
}
@@ -67,17 +63,6 @@ export class DossiersService extends EntitiesService {
return this._activeDossierId$.value;
}
- async updateDossierDictionary(dossierTemplateId: string, dossierId: string) {
- // dossier exists, load its dictionary
- const dossier = this.find(dossierId);
- try {
- dossier.type = await this._dictionaryService.getFor(dossierTemplateId, 'dossier_redaction', dossierId).toPromise();
- } catch (e) {
- dossier.type = null;
- }
- this.replace(dossier);
- }
-
@Validate()
createOrUpdate(@RequiredParam() dossier: IDossierRequest): Observable {
const showToast = (error: HttpErrorResponse) => {
diff --git a/apps/red-ui/src/app/state/app-state.service.ts b/apps/red-ui/src/app/state/app-state.service.ts
index e9ede4a0c..6476ab145 100644
--- a/apps/red-ui/src/app/state/app-state.service.ts
+++ b/apps/red-ui/src/app/state/app-state.service.ts
@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
-import { Dictionary, Dossier, DossierTemplate, File, IColors, IDossier } from '@red/domain';
+import { Dictionary, Dossier, DossierTemplate, File, IColors } from '@red/domain';
import { ActivationEnd, Router } from '@angular/router';
import { UserService } from '@services/user.service';
import { forkJoin, Observable, of } from 'rxjs';
@@ -123,12 +123,9 @@ export class AppStateService {
const dossierIds = dossiers.map(dossier => dossier.dossierId);
await this._dossierStatsService.getFor(dossierIds).toPromise();
- const mappedDossiers$ = dossiers.map(async p => {
- const oldDossier = this._dossiersService.find(p.dossierId);
- const type = oldDossier?.type ?? (await this._getDictionaryFor(p));
- this._dossiersService.replace(new Dossier(p, type));
+ dossiers.forEach(dossier => {
+ this._dossiersService.replace(new Dossier(dossier));
});
- return Promise.all(mappedDossiers$);
}
async reloadFile(dossierId: string, fileId: string) {
@@ -261,10 +258,6 @@ export class AppStateService {
);
}
- private _getDictionaryFor(dossier: IDossier) {
- return this._dictionaryService.getFor(dossier.dossierTemplateId, 'dossier_redaction', dossier.dossierId).toPromise();
- }
-
private _getDictionaryDataForDossierTemplate$(dossierTemplateId: string): Observable<{ [key: string]: any }> {
const dictionaryData: { [key: string]: any } = {};
diff --git a/libs/common-ui b/libs/common-ui
index 1b75b12fb..74fcbf080 160000
--- a/libs/common-ui
+++ b/libs/common-ui
@@ -1 +1 @@
-Subproject commit 1b75b12fbd97fecffa9736a66d0d408bd2dbc62f
+Subproject commit 74fcbf080b593622220bb2c7de08f69163acab04
diff --git a/libs/red-domain/src/lib/dossiers/dossier.model.ts b/libs/red-domain/src/lib/dossiers/dossier.model.ts
index f86ee4c20..8c8ab6e5b 100644
--- a/libs/red-domain/src/lib/dossiers/dossier.model.ts
+++ b/libs/red-domain/src/lib/dossiers/dossier.model.ts
@@ -2,7 +2,6 @@ import { IListable, List } from '@iqser/common-ui';
import { IDossier } from './dossier';
import { DossierStatus } from './types';
import { DownloadFileType } from '../shared';
-import { IDictionary } from '../dictionaries';
export class Dossier implements IDossier, IListable {
readonly dossierId: string;
@@ -24,7 +23,7 @@ export class Dossier implements IDossier, IListable {
readonly watermarkPreviewEnabled: boolean;
readonly hasReviewers: boolean;
- constructor(dossier: IDossier, public type?: IDictionary) {
+ constructor(dossier: IDossier) {
this.dossierId = dossier.dossierId;
this.approverIds = dossier.approverIds;
this.date = dossier.date;