RED-8907: removed resize in dictionary option for forced annotations.
This commit is contained in:
parent
68a1be0800
commit
309ef93512
@ -28,7 +28,7 @@ export const canRemoveFromDictionary = (annotation: AnnotationWrapper, autoAnaly
|
||||
(annotation.isRedacted || annotation.isSkipped || annotation.isHint || (annotation.isIgnoredHint && !annotation.isRuleBased)) &&
|
||||
(autoAnalysisDisabled || !annotation.pending) &&
|
||||
!annotation.hasBeenResizedLocally &&
|
||||
(!annotation.hasBeenForcedHint || !annotation.hasBeenForcedRedaction);
|
||||
!(annotation.hasBeenForcedHint || annotation.hasBeenForcedRedaction);
|
||||
|
||||
export const canRemoveRedaction = (annotation: AnnotationWrapper, permissions: AnnotationPermissions) =>
|
||||
(!annotation.isIgnoredHint || !annotation.isRuleBased) &&
|
||||
@ -58,6 +58,12 @@ export const canResizeAnnotation = (
|
||||
(!annotation.isHint && hasDictionary && annotation.isRuleBased))) ||
|
||||
annotation.isRecommendation;
|
||||
|
||||
export const canResizeInDictionary = (annotation: AnnotationWrapper, permissions: AnnotationPermissions) =>
|
||||
permissions.canResizeAnnotation &&
|
||||
annotation.isModifyDictionary &&
|
||||
!annotation.hasBeenResizedLocally &&
|
||||
!(annotation.hasBeenForcedHint || annotation.hasBeenForcedRedaction);
|
||||
|
||||
export const canEditAnnotation = (annotation: AnnotationWrapper) => (annotation.isRedacted || annotation.isSkipped) && !annotation.isImage;
|
||||
|
||||
export const canEditHint = (annotation: AnnotationWrapper) =>
|
||||
|
||||
@ -16,6 +16,7 @@ import {
|
||||
canRemoveOnlyHere,
|
||||
canRemoveRedaction,
|
||||
canResizeAnnotation,
|
||||
canResizeInDictionary,
|
||||
canUndo,
|
||||
} from './annotation-permissions.utils';
|
||||
import { AnnotationWrapper } from './annotation.wrapper';
|
||||
@ -30,6 +31,7 @@ export class AnnotationPermissions {
|
||||
canForceRedaction = true;
|
||||
canChangeLegalBasis = true;
|
||||
canResizeAnnotation = true;
|
||||
canResizeInDictionary = true;
|
||||
canRecategorizeAnnotation = true;
|
||||
canForceHint = true;
|
||||
canEditAnnotations = true;
|
||||
@ -69,6 +71,7 @@ export class AnnotationPermissions {
|
||||
autoAnalysisDisabled,
|
||||
annotationEntity?.hasDictionary,
|
||||
);
|
||||
permissions.canResizeInDictionary = canResizeInDictionary(annotation, permissions);
|
||||
permissions.canEditAnnotations = canEditAnnotation(annotation);
|
||||
permissions.canEditHints = canEditHint(annotation);
|
||||
permissions.canEditImages = canEditImage(annotation);
|
||||
@ -80,6 +83,7 @@ export class AnnotationPermissions {
|
||||
static reduce(permissions: AnnotationPermissions[]): AnnotationPermissions {
|
||||
const result = new AnnotationPermissions();
|
||||
result.canResizeAnnotation = permissions.length === 1 && permissions[0].canResizeAnnotation;
|
||||
result.canResizeInDictionary = permissions.length === 1 && permissions[0].canResizeInDictionary;
|
||||
result.canChangeLegalBasis = permissions.reduce((acc, next) => acc && next.canChangeLegalBasis, true);
|
||||
result.canRecategorizeAnnotation = permissions.reduce((acc, next) => acc && next.canRecategorizeAnnotation, true);
|
||||
result.canRemoveFromDictionary = permissions.reduce((acc, next) => acc && next.canRemoveFromDictionary, true);
|
||||
|
||||
@ -148,7 +148,7 @@ export class AnnotationActionsComponent implements OnChanges {
|
||||
|
||||
acceptResize() {
|
||||
if (this.resized) {
|
||||
return this.annotationActionsService.acceptResize(this.#annotations[0]);
|
||||
return this.annotationActionsService.acceptResize(this.#annotations[0], this.annotationPermissions);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -30,7 +30,14 @@ export class ResizeRedactionDialogComponent extends IqserDialogComponent<
|
||||
|
||||
constructor(private readonly _formBuilder: FormBuilder) {
|
||||
super();
|
||||
this.options = getResizeRedactionOptions(this.redaction, this.#dossier, false, this.#applyToAllDossiers, this.data.isApprover);
|
||||
this.options = getResizeRedactionOptions(
|
||||
this.redaction,
|
||||
this.#dossier,
|
||||
false,
|
||||
this.#applyToAllDossiers,
|
||||
this.data.isApprover,
|
||||
this.data.permissions.canResizeInDictionary,
|
||||
);
|
||||
this.form = this.#getForm();
|
||||
}
|
||||
|
||||
|
||||
@ -223,7 +223,7 @@ export class AnnotationActionsService {
|
||||
this._annotationManager.select(viewerAnnotation);
|
||||
}
|
||||
|
||||
async acceptResize(annotation: AnnotationWrapper): Promise<void> {
|
||||
async acceptResize(annotation: AnnotationWrapper, permissions: AnnotationPermissions): Promise<void> {
|
||||
const textAndPositions = await this.#extractTextAndPositions(annotation.id);
|
||||
if (annotation.isRecommendation) {
|
||||
const recommendation = {
|
||||
@ -246,12 +246,16 @@ export class AnnotationActionsService {
|
||||
const dossierTemplate = this._dossierTemplatesService.find(this._state.dossierTemplateId);
|
||||
const isUnprocessed = annotation.pending;
|
||||
|
||||
const data = {
|
||||
const data: ResizeRedactionData = {
|
||||
redaction: annotation,
|
||||
text,
|
||||
applyToAllDossiers: isApprover && dossierTemplate.applyDictionaryUpdatesToAllDossiersByDefault,
|
||||
isApprover,
|
||||
dossierId: dossier.dossierId,
|
||||
permissions: {
|
||||
canResizeAnnotation: permissions.canResizeAnnotation,
|
||||
canResizeInDictionary: permissions.canResizeInDictionary,
|
||||
},
|
||||
};
|
||||
|
||||
const result = await this.#getResizeRedactionDialog(data).result();
|
||||
|
||||
@ -36,7 +36,7 @@ export class PdfAnnotationActionsService {
|
||||
let acceptResizeButton: IHeaderElement;
|
||||
if (this.#annotationManager.annotationHasBeenResized) {
|
||||
acceptResizeButton = this.#getButton('check', _('annotation-actions.resize-accept.label'), () =>
|
||||
this.#annotationActionsService.acceptResize(firstAnnotation),
|
||||
this.#annotationActionsService.acceptResize(firstAnnotation, permissions),
|
||||
);
|
||||
} else {
|
||||
acceptResizeButton = this.#getDisabledCheckButton();
|
||||
|
||||
@ -113,6 +113,7 @@ export const getResizeRedactionOptions = (
|
||||
isRss: boolean,
|
||||
applyToAllDossiers: boolean,
|
||||
isApprover: boolean,
|
||||
canResizeInDictionary: boolean,
|
||||
): DetailsRadioOption<ResizeRedactionOption>[] => {
|
||||
const translations = resizeRedactionTranslations;
|
||||
const options: DetailsRadioOption<ResizeRedactionOption>[] = [
|
||||
@ -127,7 +128,7 @@ export const getResizeRedactionOptions = (
|
||||
if (isRss) {
|
||||
return options;
|
||||
}
|
||||
if (!redaction.hasBeenResizedLocally) {
|
||||
if (canResizeInDictionary) {
|
||||
const dictBasedType = redaction.isModifyDictionary;
|
||||
options.push({
|
||||
label: translations.inDossier.label,
|
||||
|
||||
@ -46,6 +46,11 @@ export interface EditRedactResult {
|
||||
export type AddHintResult = RedactTextResult;
|
||||
export type AddAnnotationResult = RedactTextResult;
|
||||
|
||||
export interface ResizeRedactionPermissions {
|
||||
canResizeAnnotation: boolean;
|
||||
canResizeInDictionary: boolean;
|
||||
}
|
||||
|
||||
export interface ResizeAnnotationData {
|
||||
redaction: AnnotationWrapper;
|
||||
text: string;
|
||||
@ -55,6 +60,7 @@ export interface ResizeAnnotationData {
|
||||
export interface ResizeRedactionData extends ResizeAnnotationData {
|
||||
applyToAllDossiers?: boolean;
|
||||
isApprover?: boolean;
|
||||
permissions: ResizeRedactionPermissions;
|
||||
}
|
||||
|
||||
export interface ResizeAnnotationResult {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user