From 9f6fa4b54557777018e408c1540467edcb71885c Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Tue, 17 Aug 2021 09:53:31 +0300 Subject: [PATCH] reason for recommendation and remove from dictionary for hints --- .../app/models/file/annotation.permissions.ts | 2 +- .../src/app/models/file/file-data.model.ts | 33 ++++++++++++------- 2 files changed, 22 insertions(+), 13 deletions(-) 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 d4aa3b3c9..0c4d25ad8 100644 --- a/apps/red-ui/src/app/models/file/annotation.permissions.ts +++ b/apps/red-ui/src/app/models/file/annotation.permissions.ts @@ -32,7 +32,7 @@ export class AnnotationPermissions { permissions.canRemoveOrSuggestToRemoveOnlyHere = annotation.isRedacted; permissions.canRemoveOrSuggestToRemoveFromDictionary = - annotation.isModifyDictionary && (annotation.isRedacted || annotation.isSkipped); + annotation.isModifyDictionary && (annotation.isRedacted || annotation.isSkipped || annotation.isHint); permissions.canAcceptSuggestion = isApprover && (annotation.isSuggestion || annotation.isDeclinedSuggestion); permissions.canRejectSuggestion = isApprover && annotation.isSuggestion; diff --git a/apps/red-ui/src/app/models/file/file-data.model.ts b/apps/red-ui/src/app/models/file/file-data.model.ts index d52ae25d5..036d91ad1 100644 --- a/apps/red-ui/src/app/models/file/file-data.model.ts +++ b/apps/red-ui/src/app/models/file/file-data.model.ts @@ -76,14 +76,8 @@ export class FileDataModel { } }); - const reasonAnnotationIds = []; + const reasonAnnotationIds: { [key: string]: RedactionLogEntryWrapper[] } = {}; this.redactionLog.redactionLogEntry?.forEach(redactionLogEntry => { - if (redactionLogEntry.manual && (redactionLogEntry.status === 'APPROVED' || redactionLogEntry.status === 'REQUESTED')) { - // for dictionary entries -> I.E accepted recommendations or false positives, - // check reason - reasonAnnotationIds.push(redactionLogEntry.reason); - } - const existingChangeLogEntry = this.redactionChangeLog?.redactionLogEntry?.find(rle => rle.id === redactionLogEntry.id); // copy the redactionLog Entry @@ -102,15 +96,30 @@ export class FileDataModel { } else { result.push(redactionLogEntryWrapper); } + + if (redactionLogEntry.manual && (redactionLogEntry.status === 'APPROVED' || redactionLogEntry.status === 'REQUESTED')) { + // for dictionary entries -> I.E accepted recommendations or false positives, + // check reason + if (!reasonAnnotationIds[redactionLogEntry.reason]) { + reasonAnnotationIds[redactionLogEntry.reason] = [redactionLogEntryWrapper]; + } else { + reasonAnnotationIds[redactionLogEntry.reason].push(redactionLogEntryWrapper); + } + } }); - result = result.filter(r => reasonAnnotationIds.indexOf(r.id) < 0); + const reasonKeys = Object.keys(reasonAnnotationIds); + result = result.filter(r => { + const matched = reasonKeys.indexOf(r.id) >= 0; + if (matched) { + reasonAnnotationIds[r.id].forEach(value => { + value.reason = null; + }); + } + return !matched; + }); result.forEach(redactionLogEntry => { - if (redactionLogEntry.id === '96a9fad412ac0ccc340c9ee53f97986b') { - redactionLogEntry.dictionaryEntry = true; - } - redactionLogEntry.legalBasisMapping = this.redactionLog.legalBasis; });