diff --git a/apps/red-ui/src/app/modules/dossier/services/annotation-processing.service.ts b/apps/red-ui/src/app/modules/dossier/services/annotation-processing.service.ts index 1bb000a10..6886c42eb 100644 --- a/apps/red-ui/src/app/modules/dossier/services/annotation-processing.service.ts +++ b/apps/red-ui/src/app/modules/dossier/services/annotation-processing.service.ts @@ -5,9 +5,13 @@ import { Filter, handleCheckedValue, IFilter, INestedFilter, NestedFilter } from import { annotationTypesTranslations } from '../../../translations/annotation-types-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { IViewedPage } from '@red/domain'; +import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service'; +import { FilePreviewStateService } from '../../file-preview/services/file-preview-state.service'; @Injectable() export class AnnotationProcessingService { + constructor(private readonly _state: FilePreviewStateService, private readonly _dictionariesMapService: DictionariesMapService) {} + static secondaryAnnotationFilters(viewedPages?: IViewedPage[]): INestedFilter[] { const _viewedPages = viewedPages ? viewedPages.map(page => page.page) : []; return [ @@ -70,9 +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 childFilter: IFilter = { id: a.filterKey, - label: a.type, + label: dictionary.label, checked: false, matches: 1, }; diff --git a/apps/red-ui/src/app/modules/file-preview/components/annotation-card/annotation-card.component.html b/apps/red-ui/src/app/modules/file-preview/components/annotation-card/annotation-card.component.html index 66b1d335b..92d177391 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/annotation-card/annotation-card.component.html +++ b/apps/red-ui/src/app/modules/file-preview/components/annotation-card/annotation-card.component.html @@ -12,7 +12,7 @@ {{ annotation.descriptor | translate }}: {{ annotation.type | humanize: false }} + >{{ (dictionary$ | async).label }}
: {{ annotation.shortContent }} diff --git a/apps/red-ui/src/app/modules/file-preview/components/annotation-card/annotation-card.component.ts b/apps/red-ui/src/app/modules/file-preview/components/annotation-card/annotation-card.component.ts index a0aed4893..efc604721 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/annotation-card/annotation-card.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/annotation-card/annotation-card.component.ts @@ -1,6 +1,12 @@ -import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { MultiSelectService } from '../../services/multi-select.service'; +import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service'; +import { DOSSIER_ID } from '@utils/constants'; +import { ActivatedRoute } from '@angular/router'; +import { DossiersService } from '@services/dossiers/dossiers.service'; +import { Dictionary } from '@red/domain'; +import { BehaviorSubject } from 'rxjs'; @Component({ selector: 'redaction-annotation-card', @@ -8,9 +14,28 @@ import { MultiSelectService } from '../../services/multi-select.service'; styleUrls: ['./annotation-card.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class AnnotationCardComponent { +export class AnnotationCardComponent implements OnChanges { @Input() annotation: AnnotationWrapper; @Input() isSelected = false; + readonly dictionary$ = new BehaviorSubject(undefined); + readonly #dossierTemplateId: string; - constructor(readonly multiSelectService: MultiSelectService) {} + constructor( + readonly multiSelectService: MultiSelectService, + private readonly _route: ActivatedRoute, + private readonly _dictionariesMapService: DictionariesMapService, + private readonly _dossiersService: DossiersService, + ) { + const dossierId: string = _route.snapshot.paramMap.get(DOSSIER_ID); + this.#dossierTemplateId = this._dossiersService.find(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); + this.dictionary$.next(dictionary); + } + } + } } diff --git a/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.html b/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.html index af343e3d6..e4ed0ac06 100644 --- a/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.html +++ b/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.html @@ -123,6 +123,6 @@ [dossierTemplateId]="state.dossierTemplateId" > - {{ filter.label | humanize: false }} + {{ filter.label }}