diff --git a/apps/red-ui/src/app/models/file/annotation-permissions.utils.ts b/apps/red-ui/src/app/models/file/annotation-permissions.utils.ts index 6fecfd9a0..a00e57441 100644 --- a/apps/red-ui/src/app/models/file/annotation-permissions.utils.ts +++ b/apps/red-ui/src/app/models/file/annotation-permissions.utils.ts @@ -13,7 +13,7 @@ export const canForceRedaction = (annotation: AnnotationWrapper, canAddRedaction export const canAcceptRecommendation = (annotation: AnnotationWrapper) => annotation.isRecommendation && !annotation.pending; export const canMarkAsFalsePositive = (annotation: AnnotationWrapper, annotationEntity: Dictionary) => - annotation.canBeMarkedAsFalsePositive && annotationEntity.hasDictionary; + annotation.canBeMarkedAsFalsePositive && annotationEntity?.hasDictionary; export const canRemoveOnlyHere = (annotation: AnnotationWrapper, canAddRedaction: boolean) => canAddRedaction && !annotation.pending && (annotation.isRedacted || (annotation.isHint && !annotation.isImage)); 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 4abb9d7bb..e99e52326 100644 --- a/apps/red-ui/src/app/models/file/annotation.permissions.ts +++ b/apps/red-ui/src/app/models/file/annotation.permissions.ts @@ -62,7 +62,7 @@ export class AnnotationPermissions { permissions.canRemoveRedaction = canRemoveRedaction(annotation, permissions); permissions.canChangeLegalBasis = canChangeLegalBasis(annotation, canAddRedaction); permissions.canRecategorizeAnnotation = canRecategorizeAnnotation(annotation, canAddRedaction); - permissions.canResizeAnnotation = canResizeAnnotation(annotation, canAddRedaction, annotationEntity.hasDictionary); + permissions.canResizeAnnotation = canResizeAnnotation(annotation, canAddRedaction, annotationEntity?.hasDictionary); permissions.canEditAnnotations = canEditAnnotation(annotation); permissions.canEditHints = canEditHint(annotation); permissions.canEditImages = canEditImage(annotation); diff --git a/apps/red-ui/src/app/models/file/annotation.wrapper.ts b/apps/red-ui/src/app/models/file/annotation.wrapper.ts index 13755fe4c..441b0ae03 100644 --- a/apps/red-ui/src/app/models/file/annotation.wrapper.ts +++ b/apps/red-ui/src/app/models/file/annotation.wrapper.ts @@ -1,9 +1,11 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { IListable } from '@iqser/common-ui'; import { + annotationDefaultColorConfig, annotationEntityColorConfig, AnnotationIconType, ChangeType, + DefaultColors, Dictionary, Earmark, EntityTypes, @@ -213,6 +215,7 @@ export class AnnotationWrapper implements IListable { changeLogType: ChangeType, legalBasisList: ILegalBasis[], isDocumine: boolean, + defaultColors: DefaultColors, ) { const annotationWrapper = new AnnotationWrapper(); @@ -273,10 +276,11 @@ export class AnnotationWrapper implements IListable { annotationWrapper.isRemoved = logEntry.state === EntryStates.REMOVED; annotationWrapper.isRemovedLocally = lastRelevantManualChange?.manualRedactionType === ManualRedactionTypes.REMOVE_LOCALLY; - annotationWrapper.typeLabel = dictionary.virtual ? undefined : dictionary.label; + annotationWrapper.typeLabel = dictionary?.virtual ? undefined : dictionary?.label; const colorKey = annotationEntityColorConfig[annotationWrapper.superType]; - annotationWrapper.color = dictionary[colorKey] as string; + const defaultColor = annotationDefaultColorConfig[annotationWrapper.superType]; + annotationWrapper.color = dictionary ? (dictionary[colorKey] as string) : (defaultColors[defaultColor] as string); annotationWrapper['entry'] = logEntry; return annotationWrapper; diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/resize-annotation-dialog/resize-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/resize-annotation-dialog/resize-annotation-dialog.component.ts index fb6d55108..b8b6e015f 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/resize-annotation-dialog/resize-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/resize-annotation-dialog/resize-annotation-dialog.component.ts @@ -26,8 +26,8 @@ export class ResizeAnnotationDialogComponent extends IqserDialogComponent< this.close({ comment: formValue.comment, - updateDictionary: this.entity.hasDictionary, - addToAllDossiers: this.entity.hasDictionary, + updateDictionary: this.entity?.hasDictionary, + addToAllDossiers: this.entity?.hasDictionary, }); } } diff --git a/apps/red-ui/src/app/modules/file-preview/services/file-data.service.ts b/apps/red-ui/src/app/modules/file-preview/services/file-data.service.ts index 35433f183..84505a2f0 100644 --- a/apps/red-ui/src/app/modules/file-preview/services/file-data.service.ts +++ b/apps/red-ui/src/app/modules/file-preview/services/file-data.service.ts @@ -18,6 +18,7 @@ import { firstValueFrom, Observable } from 'rxjs'; import { FilePreviewStateService } from './file-preview-state.service'; import { MultiSelectService } from './multi-select.service'; import { ViewModeService } from './view-mode.service'; +import { DefaultColorsService } from '@services/entity-services/default-colors.service'; const DELTA_VIEW_TIME = 10 * 60 * 1000; // 10 minutes; @@ -55,6 +56,7 @@ export class FileDataService extends EntitiesService