From ddaa4cf7f37539501b008ab1c0ff6fdb7869cd10 Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Mon, 18 Sep 2023 17:37:02 +0300 Subject: [PATCH] RED-7550: Bulk edit dialog. --- .../app/models/file/annotation.permissions.ts | 11 ---- .../annotation-actions.component.ts | 46 +++++++++-------- .../edit-redaction-dialog.component.html | 50 +++++++++++++------ .../edit-redaction-dialog.component.scss | 22 ++++++++ .../edit-redaction-dialog.component.ts | 21 ++++---- .../services/annotation-actions.service.ts | 10 ++-- .../pdf-annotation-actions.service.ts | 7 --- apps/red-ui/src/assets/i18n/redact/en.json | 2 +- 8 files changed, 100 insertions(+), 69 deletions(-) create mode 100644 apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.scss diff --git a/apps/red-ui/src/app/models/file/annotation.permissions.ts b/apps/red-ui/src/app/models/file/annotation.permissions.ts index 96acda76d..87ffb175e 100644 --- a/apps/red-ui/src/app/models/file/annotation.permissions.ts +++ b/apps/red-ui/src/app/models/file/annotation.permissions.ts @@ -62,17 +62,6 @@ export class AnnotationPermissions { permissions.canRecategorizeAnnotation = canRecategorizeAnnotation(annotation, canAddRedaction); permissions.canResizeAnnotation = canResizeAnnotation(annotation, canAddRedaction); - // if (isDocumine) { - // annotation.isSkipped || annotation.isRedacted; - // } else { - // annotation.isImage || annotation.isOCR; - // annotation.isSkipped || annotation.isRedacted; - // annotation.isIgnoredHint || annotation.isDictBasedHint || annotation.isHint || annotation.isSuggestionForceHint; - // } - // const skippedRedacted = annotation.isSkipped || annotation.isRedacted; - // const ignoredHints = annotation.isIgnoredHint || annotation.isDictBasedHint || annotation.isHint || annotation.isSuggestionForceHint; - // const image = annotation - permissions.canEditAnnotations = (annotation.isSkipped || annotation.isRedacted) && !annotation.isImage; permissions.canEditHints = annotation.isIgnoredHint || annotation.isDictBasedHint || annotation.isHint || annotation.isSuggestionForceHint; diff --git a/apps/red-ui/src/app/modules/file-preview/components/annotation-actions/annotation-actions.component.ts b/apps/red-ui/src/app/modules/file-preview/components/annotation-actions/annotation-actions.component.ts index 60cd1703f..0d7097ec4 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/annotation-actions/annotation-actions.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/annotation-actions/annotation-actions.component.ts @@ -39,24 +39,35 @@ export class AnnotationActionsComponent implements OnChanges { }); readonly #isDocumine = getConfig().IS_DOCUMINE; + constructor( + readonly viewModeService: ViewModeService, + readonly helpModeService: HelpModeService, + readonly multiSelectService: MultiSelectService, + private readonly _state: FilePreviewStateService, + private readonly _permissionsService: PermissionsService, + private readonly _iqserPermissionsService: IqserPermissionsService, + private readonly _annotationManager: REDAnnotationManager, + readonly annotationActionsService: AnnotationActionsService, + readonly annotationReferencesService: AnnotationReferencesService, + ) {} + get annotations(): AnnotationWrapper[] { return this.#annotations; } - @Input() - set annotations(annotations: AnnotationWrapper[]) { - this.#annotations = annotations.filter(a => a !== undefined); - this.isImage = this.#annotations?.reduce((accumulator, annotation) => annotation.isImage && accumulator, true); - this._annotationId = this.#annotations[0]?.id; - } - get canEdit(): boolean { - const documineCanEditRedactions = + const canEditRedactions = this.annotationPermissions.canChangeLegalBasis || this.annotationPermissions.canRecategorizeAnnotation || this.annotationPermissions.canForceHint || this.annotationPermissions.canForceRedaction; - return this.#isDocumine && this.annotations.length > 1 ? this.annotationPermissions.canEditAnnotations : documineCanEditRedactions; + return this.annotations.length > 1 + ? this.#isDocumine + ? this.annotationPermissions.canEditAnnotations + : this.annotationPermissions.canEditHints || + this.annotationPermissions.canEditImages || + this.annotationPermissions.canEditAnnotations + : canEditRedactions; } get canRemoveRedaction(): boolean { @@ -76,17 +87,12 @@ export class AnnotationActionsComponent implements OnChanges { return this.annotations.every(a => a.superType === type); } - constructor( - readonly viewModeService: ViewModeService, - readonly helpModeService: HelpModeService, - readonly multiSelectService: MultiSelectService, - private readonly _state: FilePreviewStateService, - private readonly _permissionsService: PermissionsService, - private readonly _iqserPermissionsService: IqserPermissionsService, - private readonly _annotationManager: REDAnnotationManager, - readonly annotationActionsService: AnnotationActionsService, - readonly annotationReferencesService: AnnotationReferencesService, - ) {} + @Input() + set annotations(annotations: AnnotationWrapper[]) { + this.#annotations = annotations.filter(a => a !== undefined); + this.isImage = this.#annotations?.reduce((accumulator, annotation) => annotation.isImage && accumulator, true); + this._annotationId = this.#annotations[0]?.id; + } ngOnChanges(): void { this.#setPermissions(); diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.html b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.html index aa91b44a1..bb1270077 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.html +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.html @@ -7,27 +7,27 @@ >
- - - - - - - -
+
- {{ redactedTexts }} + +
    +
  • {{ text }}
  • +
+
- + {{ displayedDictionaryLabel }} - + - +
- +