diff --git a/apps/red-ui/src/app/common/service/annotation-actions.service.ts b/apps/red-ui/src/app/common/service/annotation-actions.service.ts index 6ba9401d3..eccd463bd 100644 --- a/apps/red-ui/src/app/common/service/annotation-actions.service.ts +++ b/apps/red-ui/src/app/common/service/annotation-actions.service.ts @@ -89,14 +89,14 @@ export class AnnotationActionsService { }); } - if (annotationPermissions.canMarkRecommendationAsFalsePositive) { + if (annotationPermissions.canMarkTextOnlyAsFalsePositive) { availableActions.push({ type: 'actionButton', img: '/assets/icons/general/thumb-down.svg', title: this._translateService.instant('annotation-actions.remove-annotation.false-positive'), onClick: () => { this._ngZone.run(() => { - this.markRecommendationAsFalsePositive(null, annotation, annotationsChanged); + this.markTextOnlyAsFalsePositive(null, annotation, annotationsChanged); }); } }); @@ -183,7 +183,7 @@ export class AnnotationActionsService { return availableActions; } - markRecommendationAsFalsePositive($event: MouseEvent, annotation: AnnotationWrapper, annotationsChanged: EventEmitter) { + markTextOnlyAsFalsePositive($event: MouseEvent, annotation: AnnotationWrapper, annotationsChanged: EventEmitter) { this._markAsFalsePositive($event, annotation, annotation.value, annotationsChanged); } diff --git a/apps/red-ui/src/app/screens/file/annotation-actions/annotation-actions.component.html b/apps/red-ui/src/app/screens/file/annotation-actions/annotation-actions.component.html index c4fbf483e..6c039d98a 100644 --- a/apps/red-ui/src/app/screens/file/annotation-actions/annotation-actions.component.html +++ b/apps/red-ui/src/app/screens/file/annotation-actions/annotation-actions.component.html @@ -10,14 +10,15 @@ > -
- -
-
+
+
+ +
+
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 01ca13985..4d265dbb6 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 @@ -5,7 +5,7 @@ export class AnnotationPermissions { canUndo: boolean; canAcceptRecommendation: boolean; - canMarkRecommendationAsFalsePositive: boolean; + canMarkTextOnlyAsFalsePositive: boolean; canMarkAsFalsePositive: boolean; canRemoveOrSuggestToRemoveOnlyHere: boolean; @@ -20,9 +20,9 @@ export class AnnotationPermissions { permissions.canUndo = annotation.userId === user.id && annotation.isUndoableSuperType; permissions.canAcceptRecommendation = annotation.isRecommendation; - permissions.canMarkRecommendationAsFalsePositive = annotation.isRecommendation; permissions.canMarkAsFalsePositive = annotation.canBeMarkedAsFalsePositive; + permissions.canMarkTextOnlyAsFalsePositive = annotation.canBeMarkedAsFalsePositiveWithTextOnly; permissions.canRemoveOrSuggestToRemoveOnlyHere = annotation.isRedacted; permissions.canRemoveOrSuggestToRemoveFromDictionary = annotation.isRedacted && !annotation.isManualRedaction && annotation.isModifyDictionary; 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 7472b4609..bc0a1e50b 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 @@ -75,6 +75,10 @@ export class AnnotationWrapper { return this.superType === 'redaction' && (this.hasTextAfter || this.hasTextBefore); } + get canBeMarkedAsFalsePositiveWithTextOnly() { + return !this.canBeMarkedAsFalsePositive && (this.isRecommendation || this.superType === 'redaction'); + } + get isSuperTypeBasedColor() { return this.isSkipped || this.isSuggestion || this.isReadyForAnalysis || this.isDeclinedSuggestion; } diff --git a/apps/red-ui/src/app/state/app-state.service.ts b/apps/red-ui/src/app/state/app-state.service.ts index 79b267256..a6a416ce0 100644 --- a/apps/red-ui/src/app/state/app-state.service.ts +++ b/apps/red-ui/src/app/state/app-state.service.ts @@ -522,6 +522,7 @@ export class AppStateService { type: 'suggestion-add', virtual: true }; + dictionaryData['suggestion-remove-dictionary'] = { hexColor: colors.dictionaryRequestColor, type: 'suggestion-add', @@ -533,37 +534,44 @@ export class AppStateService { type: 'skipped', virtual: true }; + dictionaryData['default'] = { hexColor: colors.defaultColor, type: 'default', virtual: true }; + dictionaryData['add'] = { hexColor: colors.requestAdd, type: 'add', virtual: true }; + dictionaryData['analysis'] = { hexColor: colors.analysisColor, type: 'analysis', virtual: true }; + dictionaryData['pending-analysis'] = { hexColor: colors.analysisColor, type: 'analysis', virtual: true }; + dictionaryData['hint'] = { hexColor: '#fa98f7', type: 'hint', virtual: true, hint: true }; + dictionaryData['redaction'] = { hexColor: colors.previewColor, type: 'redaction', virtual: true }; + dictionaryData['updated'] = { hexColor: colors.updatedColor, type: 'updated',