diff --git a/apps/red-ui/src/app/screens/file/model/annotation.permissions.ts b/apps/red-ui/src/app/screens/file/model/annotation.permissions.ts index 7ba795427..223d1af7c 100644 --- a/apps/red-ui/src/app/screens/file/model/annotation.permissions.ts +++ b/apps/red-ui/src/app/screens/file/model/annotation.permissions.ts @@ -19,16 +19,19 @@ export class AnnotationPermissions { public static forUser(isManagerAndOwner: boolean, user: UserWrapper, annotation: AnnotationWrapper) { const permissions: AnnotationPermissions = new AnnotationPermissions(); - permissions.canUndo = annotation.isUndoableSuperType && (annotation.userId === user.id || (annotation.userId && isManagerAndOwner)); + permissions.canUndo = + annotation.isUndoableSuperType && (annotation.userId === user.id || (annotation.userId && isManagerAndOwner && !annotation.isSuggestion)); + permissions.canForceRedaction = annotation.isSkipped && !permissions.canUndo; permissions.canAcceptRecommendation = annotation.isRecommendation; - permissions.canMarkAsFalsePositive = annotation.canBeMarkedAsFalsePositive; - permissions.canMarkTextOnlyAsFalsePositive = annotation.canBeMarkedAsFalsePositiveWithTextOnly; + permissions.canMarkAsFalsePositive = annotation.canBeMarkedAsFalsePositive && !annotation.force; + permissions.canMarkTextOnlyAsFalsePositive = annotation.canBeMarkedAsFalsePositiveWithTextOnly && !annotation.force; - permissions.canRemoveOrSuggestToRemoveOnlyHere = annotation.isRedacted; - permissions.canRemoveOrSuggestToRemoveFromDictionary = annotation.isRedacted && !annotation.isManualRedaction && annotation.isModifyDictionary; + permissions.canRemoveOrSuggestToRemoveOnlyHere = annotation.isRedacted && !annotation.force; + permissions.canRemoveOrSuggestToRemoveFromDictionary = + annotation.isRedacted && !annotation.isManualRedaction && annotation.isModifyDictionary && !annotation.force; permissions.canAcceptSuggestion = isManagerAndOwner && (annotation.isSuggestion || annotation.isDeclinedSuggestion); permissions.canRejectSuggestion = diff --git a/apps/red-ui/src/app/screens/file/model/annotation.wrapper.ts b/apps/red-ui/src/app/screens/file/model/annotation.wrapper.ts index 678b69923..ec19d9dae 100644 --- a/apps/red-ui/src/app/screens/file/model/annotation.wrapper.ts +++ b/apps/red-ui/src/app/screens/file/model/annotation.wrapper.ts @@ -36,6 +36,8 @@ export class AnnotationWrapper { positions: Rectangle[]; recommendationType: string; + force?: boolean; + textAfter?: string; textBefore?: string; @@ -168,6 +170,7 @@ export class AnnotationWrapper { const annotationWrapper = new AnnotationWrapper(); annotationWrapper.annotationId = redactionLogEntry.id; + annotationWrapper.force = redactionLogEntry.force; annotationWrapper.isChangeLogEntry = redactionLogEntry.isChangeLogEntry; annotationWrapper.changeLogType = redactionLogEntry.changeLogType; annotationWrapper.redaction = redactionLogEntry.redacted; diff --git a/apps/red-ui/src/app/screens/file/model/file-data.model.ts b/apps/red-ui/src/app/screens/file/model/file-data.model.ts index 1381e4bfb..9655eb8ac 100644 --- a/apps/red-ui/src/app/screens/file/model/file-data.model.ts +++ b/apps/red-ui/src/app/screens/file/model/file-data.model.ts @@ -102,11 +102,16 @@ export class FileDataModel { }); this.manualRedactions.forceRedactions.forEach((forceRedaction) => { + const relevantRedactionLogEntry = result.find((r) => r.id === forceRedaction.id); + if (forceRedaction.status === 'DECLINED') { + relevantRedactionLogEntry.status = 'DECLINED'; + relevantRedactionLogEntry.userId = forceRedaction.user; + relevantRedactionLogEntry.dictionaryEntry = false; + relevantRedactionLogEntry.force = true; return; } - const relevantRedactionLogEntry = result.find((r) => r.id === forceRedaction.id); // an entry for this request already exists in the redactionLog if (!!relevantRedactionLogEntry) { relevantRedactionLogEntry.userId = forceRedaction.user; diff --git a/apps/red-ui/src/app/screens/file/pdf-viewer/pdf-viewer.component.html b/apps/red-ui/src/app/screens/file/pdf-viewer/pdf-viewer.component.html index 36cb89b06..af7ce7b13 100644 --- a/apps/red-ui/src/app/screens/file/pdf-viewer/pdf-viewer.component.html +++ b/apps/red-ui/src/app/screens/file/pdf-viewer/pdf-viewer.component.html @@ -1,5 +1,3 @@