diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-annotation-dialog.component.ts index 9dbbe5eb8..5fc82072b 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-annotation-dialog.component.ts @@ -10,6 +10,7 @@ import { DossiersService } from '@services/entity-services/dossiers.service'; import { JustificationsService } from '@services/entity-services/justifications.service'; import { Dossier, ILegalBasisChangeRequest } from '@red/domain'; import { firstValueFrom } from 'rxjs'; +import { AnnotationWrapper } from '@models/file/annotation.wrapper'; export interface LegalBasisOption { label?: string; @@ -37,11 +38,11 @@ export class ForceAnnotationDialogComponent extends BaseDialogComponent implemen private readonly _permissionsService: PermissionsService, protected readonly _injector: Injector, protected readonly _dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) private readonly _data: { readonly dossier: Dossier; readonly hint: boolean }, + @Inject(MAT_DIALOG_DATA) + private readonly _data: { readonly dossier: Dossier; readonly hint: boolean; annotations: AnnotationWrapper[] }, ) { super(_injector, _dialogRef); this.form = this._getForm(); - this.initialFormValue = this.form.getRawValue(); } get isHintDialog() { @@ -59,6 +60,14 @@ export class ForceAnnotationDialogComponent extends BaseDialogComponent implemen })); this.legalOptions.sort((a, b) => a.label.localeCompare(b.label)); + + // Set pre-existing reason if it exists + const existingReason = this.legalOptions.find(option => option.legalBasis === this._data.annotations[0].legalBasis); + if (!this._data.hint && existingReason) { + this.form.patchValue({ reason: existingReason }, { emitEvent: false }); + } + + this.initialFormValue = this.form.getRawValue(); } save() { diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/annotation-actions.service.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/annotation-actions.service.ts index 05e5a6e32..9f0682b63 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/annotation-actions.service.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/annotation-actions.service.ts @@ -77,7 +77,7 @@ export class AnnotationActionsService { hint: boolean = false, ) { const { dossierId, fileId } = this._screenStateService; - const data = { dossier: this._dossier, hint }; + const data = { dossier: this._dossier, annotations, hint }; this._dialogService.openDialog('forceAnnotation', $event, data, (request: ILegalBasisChangeRequest) => { annotations.forEach(annotation => { this._processObsAndEmit(