RED-4022: Use display name for dossier_redaction dictionary
This commit is contained in:
parent
ffad677114
commit
e6738b407f
@ -1,5 +1,5 @@
|
||||
import { Component, Input, OnInit, ViewChild } from '@angular/core';
|
||||
import { Dossier, IDictionary } from '@red/domain';
|
||||
import { Dictionary, Dossier, IDictionary } from '@red/domain';
|
||||
import { EditDossierSaveResult, EditDossierSectionInterface } from '../edit-dossier-section.interface';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { DictionaryManagerComponent } from '@shared/components/dictionary-manager/dictionary-manager.component';
|
||||
@ -21,7 +21,7 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa
|
||||
form: FormGroup;
|
||||
canEdit = false;
|
||||
canEditDisplayName = false;
|
||||
dossierDictionary: IDictionary;
|
||||
dossierDictionary: Dictionary;
|
||||
|
||||
readonly circleButtonTypes = CircleButtonTypes;
|
||||
@ViewChild(DictionaryManagerComponent, { static: false }) private readonly _dictionaryManager: DictionaryManagerComponent;
|
||||
@ -130,8 +130,6 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa
|
||||
|
||||
private async _updateDossierDictionary() {
|
||||
const { dossierId, dossierTemplateId } = this.dossier;
|
||||
this.dossierDictionary = await firstValueFrom(
|
||||
this._dictionaryService.getForType(dossierTemplateId, 'dossier_redaction', dossierId),
|
||||
);
|
||||
this.dossierDictionary = await firstValueFrom(this._dictionaryService.getDossierDictionary(dossierTemplateId, dossierId));
|
||||
}
|
||||
}
|
||||
|
||||
@ -74,7 +74,10 @@ export class AnnotationProcessingService {
|
||||
if (!parentFilter) {
|
||||
parentFilter = this._createParentFilter(a.superType, filterMap, filters);
|
||||
}
|
||||
const dictionary = this._dictionariesMapService.getDictionary(a.type, this._state.dossierTemplateId);
|
||||
const dictionary =
|
||||
a.type === 'dossier_redaction'
|
||||
? this._state.dossierDictionary
|
||||
: this._dictionariesMapService.getDictionary(a.type, this._state.dossierTemplateId);
|
||||
const childFilter: IFilter = {
|
||||
id: a.filterKey,
|
||||
label: dictionary.label,
|
||||
|
||||
@ -1,11 +1,13 @@
|
||||
import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
import { MultiSelectService } from '../../services/multi-select.service';
|
||||
import { FilePreviewStateService } from '../../services/file-preview-state.service';
|
||||
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
|
||||
import { Dictionary, DOSSIER_ID } from '@red/domain';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { DossiersService } from '@services/dossiers/dossiers.service';
|
||||
import { BehaviorSubject } from 'rxjs';
|
||||
import { DictionaryService } from '@services/entity-services/dictionary.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-annotation-card',
|
||||
@ -17,6 +19,7 @@ export class AnnotationCardComponent implements OnChanges {
|
||||
@Input() annotation: AnnotationWrapper;
|
||||
@Input() isSelected = false;
|
||||
readonly dictionary$ = new BehaviorSubject<Dictionary>(undefined);
|
||||
readonly #dossierId: string;
|
||||
readonly #dossierTemplateId: string;
|
||||
|
||||
constructor(
|
||||
@ -24,15 +27,20 @@ export class AnnotationCardComponent implements OnChanges {
|
||||
dossiersService: DossiersService,
|
||||
readonly multiSelectService: MultiSelectService,
|
||||
private readonly _dictionariesMapService: DictionariesMapService,
|
||||
private readonly _dictionaryService: DictionaryService,
|
||||
private readonly _state: FilePreviewStateService,
|
||||
) {
|
||||
const dossierId: string = route.snapshot.paramMap.get(DOSSIER_ID);
|
||||
this.#dossierTemplateId = dossiersService.find(dossierId).dossierTemplateId;
|
||||
this.#dossierId = route.snapshot.paramMap.get(DOSSIER_ID);
|
||||
this.#dossierTemplateId = dossiersService.find(this.#dossierId).dossierTemplateId;
|
||||
}
|
||||
|
||||
ngOnChanges(changes: SimpleChanges): void {
|
||||
if (changes.annotation) {
|
||||
if (this.annotation.type !== 'manual' && !this.annotation.isHighlight) {
|
||||
const dictionary = this._dictionariesMapService.getDictionary(this.annotation.type, this.#dossierTemplateId);
|
||||
const dictionary =
|
||||
this.annotation.type === 'dossier_redaction'
|
||||
? this._state.dossierDictionary
|
||||
: this._dictionariesMapService.getDictionary(this.annotation.type, this.#dossierTemplateId);
|
||||
this.dictionary$.next(dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { Injectable, Injector } from '@angular/core';
|
||||
import { combineLatest, firstValueFrom, from, merge, Observable, of, pairwise, Subject, switchMap } from 'rxjs';
|
||||
import { Dossier, DOSSIER_ID, File, FILE_ID } from '@red/domain';
|
||||
import { Dictionary, Dossier, DOSSIER_ID, File, FILE_ID } from '@red/domain';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { FilesMapService } from '@services/entity-services/files-map.service';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
@ -11,6 +11,7 @@ import { dossiersServiceResolver } from '@services/entity-services/dossiers.serv
|
||||
import { wipeFilesCache } from '@red/cache';
|
||||
import { DossiersService } from '@services/dossiers/dossiers.service';
|
||||
import { FilesService } from '@services/entity-services/files.service';
|
||||
import { DictionaryService } from '@services/entity-services/dictionary.service';
|
||||
|
||||
@Injectable()
|
||||
export class FilePreviewStateService {
|
||||
@ -24,10 +25,9 @@ export class FilePreviewStateService {
|
||||
readonly dossierId: string;
|
||||
readonly dossierTemplateId: string;
|
||||
readonly fileId: string;
|
||||
|
||||
dossier: Dossier;
|
||||
file: File;
|
||||
|
||||
#dossierDictionary: Dictionary;
|
||||
readonly #reloadBlob$ = new Subject();
|
||||
|
||||
constructor(
|
||||
@ -39,6 +39,7 @@ export class FilePreviewStateService {
|
||||
private readonly _filesService: FilesService,
|
||||
private readonly _dossiersService: DossiersService,
|
||||
private readonly _fileManagementService: FileManagementService,
|
||||
private readonly _dictionaryService: DictionaryService,
|
||||
) {
|
||||
const dossiersService = dossiersServiceResolver(_injector, router);
|
||||
|
||||
@ -55,6 +56,14 @@ export class FilePreviewStateService {
|
||||
|
||||
this.blob$ = this.#blob$;
|
||||
this.dossierFileChange$ = this.#dossierFilesChange$();
|
||||
|
||||
this._dictionaryService
|
||||
.getDossierDictionary(this.dossierTemplateId, this.dossierId)
|
||||
.subscribe(dictionary => (this.#dossierDictionary = dictionary));
|
||||
}
|
||||
|
||||
get dossierDictionary(): Dictionary {
|
||||
return this.#dossierDictionary;
|
||||
}
|
||||
|
||||
get blob(): Promise<Blob> {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { Injectable, Injector } from '@angular/core';
|
||||
import { firstValueFrom, forkJoin, Observable, of, throwError } from 'rxjs';
|
||||
import { EntitiesService, List, QueryParam, RequiredParam, Toaster, Validate } from '@iqser/common-ui';
|
||||
import { EntitiesService, List, log, QueryParam, RequiredParam, Toaster, Validate } from '@iqser/common-ui';
|
||||
import { Dictionary, DictionaryEntryType, DictionaryEntryTypes, IColors, IDictionary, IUpdateDictionary } from '@red/domain';
|
||||
import { catchError, map, switchMap, tap } from 'rxjs/operators';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
@ -174,7 +174,7 @@ export class DictionaryService extends EntitiesService<Dictionary, IDictionary>
|
||||
async getDictionariesOptions(dossierTemplateId: string, dossierId: string): Promise<Dictionary[]> {
|
||||
const possibleDictionaries: Dictionary[] = [];
|
||||
|
||||
const dossierDictionary = await firstValueFrom(this.getForType(dossierTemplateId, 'dossier_redaction', dossierId));
|
||||
const dossierDictionary: Dictionary = await firstValueFrom(this.getDossierDictionary(dossierTemplateId, dossierId));
|
||||
|
||||
for (const dictionary of this._dictionariesMapService.get(dossierTemplateId)) {
|
||||
if (!dictionary.virtual && dictionary.addToDictionaryAction) {
|
||||
@ -183,8 +183,7 @@ export class DictionaryService extends EntitiesService<Dictionary, IDictionary>
|
||||
}
|
||||
|
||||
if (dossierDictionary.addToDictionaryAction) {
|
||||
// TODO fix this in the backend
|
||||
possibleDictionaries.push(new Dictionary({ ...dossierDictionary, type: 'dossier_redaction' }));
|
||||
possibleDictionaries.push(dossierDictionary);
|
||||
}
|
||||
|
||||
possibleDictionaries.sort((a, b) => a.label.localeCompare(b.label));
|
||||
@ -192,6 +191,18 @@ export class DictionaryService extends EntitiesService<Dictionary, IDictionary>
|
||||
return possibleDictionaries;
|
||||
}
|
||||
|
||||
getDossierDictionary(dossierTemplateId: string, dossierId: string): Observable<Dictionary> {
|
||||
return this.getForType(dossierTemplateId, 'dossier_redaction', dossierId).pipe(
|
||||
map(
|
||||
dictionary =>
|
||||
new Dictionary({
|
||||
...dictionary,
|
||||
type: 'dossier_redaction',
|
||||
}),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
loadDictionaryData(dossierTemplatesIds: string[]): Observable<Dictionary[][]> {
|
||||
const observables: Observable<Dictionary[]>[] = [];
|
||||
for (const dossierTemplateId of dossierTemplatesIds) {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"ADMIN_CONTACT_NAME": null,
|
||||
"ADMIN_CONTACT_URL": null,
|
||||
"API_URL": "https://dev-05.iqser.cloud/redaction-gateway-v1",
|
||||
"API_URL": "https://dev-08.iqser.cloud/redaction-gateway-v1",
|
||||
"APP_NAME": "RedactManager",
|
||||
"AUTO_READ_TIME": 3,
|
||||
"BACKEND_APP_VERSION": "4.4.40",
|
||||
@ -17,7 +17,7 @@
|
||||
"MAX_RETRIES_ON_SERVER_ERROR": 3,
|
||||
"OAUTH_CLIENT_ID": "redaction",
|
||||
"OAUTH_IDP_HINT": null,
|
||||
"OAUTH_URL": "https://dev-05.iqser.cloud/auth/realms/redaction",
|
||||
"OAUTH_URL": "https://dev-08.iqser.cloud/auth/realms/redaction",
|
||||
"RECENT_PERIOD_IN_HOURS": 24,
|
||||
"SELECTION_MODE": "structural",
|
||||
"MANUAL_BASE_URL": "https://docs.redactmanager.com/preview"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user