Merge branch 'VM/RED-7155'
This commit is contained in:
commit
6add8982df
@ -2,9 +2,9 @@
|
||||
<form (submit)="save()" [formGroup]="form">
|
||||
<div [translate]="'add-hint.dialog.title'" class="dialog-header heading-l"></div>
|
||||
|
||||
<div class="dialog-content">
|
||||
<div class="dialog-content redaction">
|
||||
<div class="iqser-input-group w-450">
|
||||
<label [translate]="'add-hint.dialog.content.selected-text'"></label>
|
||||
<label class="selected-text" [translate]="'add-hint.dialog.content.selected-text'"></label>
|
||||
{{ form.get('selectedText').value }}
|
||||
</div>
|
||||
|
||||
|
||||
@ -1,8 +0,0 @@
|
||||
label {
|
||||
font-weight: bold;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
iqser-details-radio {
|
||||
padding-top: 20px;
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { DetailsRadioOption, IconButtonTypes, IqserPermissionsService } from '@iqser/common-ui';
|
||||
import { Dictionary, Dossier, IAddRedactionRequest, SuperTypes } from '@red/domain';
|
||||
import { Dictionary, Dossier, IAddRedactionRequest } from '@red/domain';
|
||||
import { FormBuilder, UntypedFormGroup } from '@angular/forms';
|
||||
import { Roles } from '@users/roles';
|
||||
import { JustificationsService } from '@services/entity-services/justifications.service';
|
||||
@ -14,7 +14,6 @@ import { AddHintData, AddHintResult } from '../../utils/dialog-types';
|
||||
|
||||
@Component({
|
||||
templateUrl: './add-hint-dialog.component.html',
|
||||
styleUrls: ['./add-hint-dialog.component.scss'],
|
||||
})
|
||||
export class AddHintDialogComponent extends IqserDialogComponent<AddHintDialogComponent, AddHintData, AddHintResult> implements OnInit {
|
||||
readonly roles = Roles;
|
||||
|
||||
@ -2,9 +2,9 @@
|
||||
<form (submit)="save()" [formGroup]="form">
|
||||
<div [translate]="'add-annotation.dialog.title'" class="dialog-header heading-l"></div>
|
||||
|
||||
<div class="dialog-content">
|
||||
<div class="dialog-content redaction">
|
||||
<div class="iqser-input-group w-450">
|
||||
<label [translate]="'add-annotation.dialog.content.selected-text'"></label>
|
||||
<label class="selected-text" [translate]="'add-annotation.dialog.content.selected-text'"></label>
|
||||
{{ form.get('selectedText').value }}
|
||||
</div>
|
||||
|
||||
|
||||
@ -1,8 +0,0 @@
|
||||
label {
|
||||
font-weight: bold;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
iqser-details-radio {
|
||||
padding-top: 20px;
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { IconButtonTypes, IqserPermissionsService } from '@iqser/common-ui';
|
||||
import { Dictionary, Dossier, IAddRedactionRequest, SuperTypes } from '@red/domain';
|
||||
import { Dictionary, Dossier, IAddRedactionRequest } from '@red/domain';
|
||||
import { FormBuilder, UntypedFormGroup } from '@angular/forms';
|
||||
import { Roles } from '@users/roles';
|
||||
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
||||
@ -10,7 +10,6 @@ import { AddAnnotationData, AddAnnotationResult } from '../../../utils/dialog-ty
|
||||
|
||||
@Component({
|
||||
templateUrl: './add-annotation-dialog.component.html',
|
||||
styleUrls: ['./add-annotation-dialog.component.scss'],
|
||||
})
|
||||
export class AddAnnotationDialogComponent
|
||||
extends IqserDialogComponent<AddAnnotationDialogComponent, AddAnnotationData, AddAnnotationResult>
|
||||
|
||||
@ -8,7 +8,6 @@ import { getRemoveRedactionOptions, RemoveAnnotationOption, RemoveAnnotationOpti
|
||||
|
||||
@Component({
|
||||
templateUrl: './remove-annotation-dialog.component.html',
|
||||
styleUrls: ['./remove-annotation-dialog.component.scss'],
|
||||
})
|
||||
export class RemoveAnnotationDialogComponent extends IqserDialogComponent<
|
||||
RemoveAnnotationDialogComponent,
|
||||
|
||||
@ -2,9 +2,9 @@
|
||||
<form (submit)="save()" [formGroup]="form">
|
||||
<div [translate]="'redact-text.dialog.title'" class="dialog-header heading-l"></div>
|
||||
|
||||
<div class="dialog-content">
|
||||
<div class="dialog-content redaction">
|
||||
<div class="iqser-input-group w-450">
|
||||
<label [translate]="'redact-text.dialog.content.selected-text'"></label>
|
||||
<label class="selected-text" [translate]="'redact-text.dialog.content.selected-text'"></label>
|
||||
{{ form.get('selectedText').value }}
|
||||
</div>
|
||||
|
||||
|
||||
@ -1,8 +0,0 @@
|
||||
label {
|
||||
font-weight: bold;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
iqser-details-radio {
|
||||
padding-top: 20px;
|
||||
}
|
||||
@ -16,7 +16,6 @@ import { RedactTextData, RedactTextResult } from '../../utils/dialog-types';
|
||||
|
||||
@Component({
|
||||
templateUrl: './redact-text-dialog.component.html',
|
||||
styleUrls: ['./redact-text-dialog.component.scss'],
|
||||
})
|
||||
export class RedactTextDialogComponent
|
||||
extends IqserDialogComponent<RedactTextDialogComponent, RedactTextData, RedactTextResult>
|
||||
|
||||
@ -10,7 +10,6 @@ import { getRemoveRedactionOptions, RemoveRedactionOption } from '../../utils/di
|
||||
|
||||
@Component({
|
||||
templateUrl: './remove-redaction-dialog.component.html',
|
||||
styleUrls: ['./remove-redaction-dialog.component.scss'],
|
||||
})
|
||||
export class RemoveRedactionDialogComponent extends IqserDialogComponent<
|
||||
RemoveRedactionDialogComponent,
|
||||
|
||||
@ -1,31 +0,0 @@
|
||||
<section class="dialog">
|
||||
<form (submit)="save()" [formGroup]="form">
|
||||
<div [translate]="'resize-annotation-dialog.header'" class="dialog-header heading-l"></div>
|
||||
|
||||
<div class="dialog-content">
|
||||
<div class="iqser-input-group w-300">
|
||||
<label [translate]="'resize-annotation-dialog.content.comment'"></label>
|
||||
<textarea formControlName="comment" iqserHasScrollbar name="comment" rows="4" type="text"></textarea>
|
||||
</div>
|
||||
|
||||
<div *ngIf="form.get('updateDictionary')" class="iqser-input-group">
|
||||
<mat-checkbox color="primary" formControlName="updateDictionary"
|
||||
><span [innerHTML]="'resize-annotation-dialog.content.update-dictionary' | translate : { text: this.text }"></span>
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dialog-actions">
|
||||
<iqser-icon-button
|
||||
[disabled]="disabled"
|
||||
[label]="'resize-annotation-dialog.actions.save' | translate"
|
||||
[submit]="true"
|
||||
[type]="iconButtonTypes.primary"
|
||||
></iqser-icon-button>
|
||||
|
||||
<div [translate]="'resize-annotation-dialog.actions.cancel'" class="all-caps-label cancel" mat-dialog-close></div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<iqser-circle-button (action)="close()" class="dialog-close" icon="iqser:close"></iqser-circle-button>
|
||||
</section>
|
||||
@ -1,39 +0,0 @@
|
||||
import { Component, Inject, OnInit } from '@angular/core';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { BaseDialogComponent } from '@iqser/common-ui';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
|
||||
@Component({
|
||||
templateUrl: './resize-annotation-dialog.component.html',
|
||||
})
|
||||
export class ResizeAnnotationDialogComponent extends BaseDialogComponent implements OnInit {
|
||||
constructor(
|
||||
protected readonly _dialogRef: MatDialogRef<ResizeAnnotationDialogComponent>,
|
||||
@Inject(MAT_DIALOG_DATA) private readonly _data: { annotation: AnnotationWrapper; text?: string },
|
||||
) {
|
||||
super(_dialogRef);
|
||||
}
|
||||
|
||||
get disabled(): boolean {
|
||||
return !this.valid;
|
||||
}
|
||||
|
||||
get text(): string {
|
||||
return this._data.text;
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
const controlsConfig = { comment: [null] };
|
||||
|
||||
if (this._data.annotation.isModifyDictionary) {
|
||||
controlsConfig['updateDictionary'] = [false];
|
||||
}
|
||||
|
||||
this.form = this._formBuilder.group(controlsConfig);
|
||||
this.initialFormValue = this.form.getRawValue();
|
||||
}
|
||||
|
||||
save() {
|
||||
this._dialogRef.close(this.form.getRawValue());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
<section class="dialog">
|
||||
<form (submit)="save()" [formGroup]="form">
|
||||
<div
|
||||
[innerHTML]="'resize-redaction.dialog.header' | translate : { type: redaction.hint ? 'hint' : 'redaction' }"
|
||||
class="dialog-header heading-l"
|
||||
></div>
|
||||
|
||||
<div class="dialog-content redaction">
|
||||
<div class="iqser-input-group w-450">
|
||||
<label class="selected-text" [translate]="'resize-redaction.dialog.content.original-text'"></label>
|
||||
{{ redaction.value }}
|
||||
</div>
|
||||
|
||||
<div class="iqser-input-group w-450">
|
||||
<label class="selected-text" [translate]="'resize-redaction.dialog.content.resized-text'"></label>
|
||||
{{ data.text }}
|
||||
</div>
|
||||
|
||||
<iqser-details-radio [options]="options" formControlName="option"></iqser-details-radio>
|
||||
|
||||
<ng-container *deny="roles.getRss">
|
||||
<div class="iqser-input-group required w-450">
|
||||
<label [translate]="'resize-redaction.dialog.content.type'"></label>
|
||||
|
||||
<mat-form-field>
|
||||
<mat-select formControlName="dictionary">
|
||||
<mat-select-trigger>{{ displayedDictionaryLabel }}</mat-select-trigger>
|
||||
<mat-option [value]="redaction.entity.type">
|
||||
<span> {{ redaction.entity.label }} </span>
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</ng-container>
|
||||
|
||||
<div class="iqser-input-group w-450">
|
||||
<label [translate]="'resize-redaction.dialog.content.comment'"></label>
|
||||
<textarea formControlName="comment" iqserHasScrollbar name="comment" rows="4" type="text"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dialog-actions">
|
||||
<iqser-icon-button
|
||||
[disabled]="disabled"
|
||||
[label]="'resize-redaction.dialog.actions.save' | translate"
|
||||
[submit]="true"
|
||||
[type]="iconButtonTypes.primary"
|
||||
></iqser-icon-button>
|
||||
|
||||
<div [translate]="'resize-redaction.dialog.actions.cancel'" class="all-caps-label cancel" mat-dialog-close></div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<iqser-circle-button (action)="close()" class="dialog-close" icon="iqser:close"></iqser-circle-button>
|
||||
</section>
|
||||
@ -0,0 +1,89 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { DetailsRadioOption, IconButtonTypes, IqserDialogComponent, IqserPermissionsService } from '@iqser/common-ui';
|
||||
import { ResizeRedactionData, ResizeRedactionResult } from '../../utils/dialog-types';
|
||||
import { FormBuilder, FormControl, UntypedFormGroup } from '@angular/forms';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
import { getResizeRedactionOptions, ResizeOptions, ResizeRedactionOption } from '../../utils/dialog-options';
|
||||
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
||||
import { Dictionary, Dossier } from '@red/domain';
|
||||
import { Roles } from '@users/roles';
|
||||
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
|
||||
|
||||
@Component({
|
||||
templateUrl: './resize-redaction-dialog.component.html',
|
||||
})
|
||||
export class ResizeRedactionDialogComponent
|
||||
extends IqserDialogComponent<ResizeRedactionDialogComponent, ResizeRedactionData, ResizeRedactionResult>
|
||||
implements OnInit
|
||||
{
|
||||
readonly roles = Roles;
|
||||
readonly iconButtonTypes = IconButtonTypes;
|
||||
readonly options: DetailsRadioOption<ResizeRedactionOption>[];
|
||||
|
||||
dictionaries: Dictionary[] = [];
|
||||
redaction: AnnotationWrapper;
|
||||
form!: UntypedFormGroup;
|
||||
|
||||
#applyToAllDossiers: boolean;
|
||||
|
||||
readonly #dossier: Dossier;
|
||||
readonly #isRss = this._iqserPermissionsService.has(Roles.getRss);
|
||||
|
||||
constructor(
|
||||
private readonly _activeDossiersService: ActiveDossiersService,
|
||||
private readonly _iqserPermissionsService: IqserPermissionsService,
|
||||
private readonly _dictionariesMapService: DictionariesMapService,
|
||||
private readonly _formBuilder: FormBuilder,
|
||||
) {
|
||||
super();
|
||||
this.#dossier = _activeDossiersService.find(this.data.dossierId);
|
||||
this.#applyToAllDossiers = this.data.applyToAllDossiers ?? true;
|
||||
this.redaction = this.data.redaction;
|
||||
this.options = getResizeRedactionOptions(
|
||||
this.redaction,
|
||||
this.#dossier,
|
||||
this.#isRss,
|
||||
this.#applyToAllDossiers,
|
||||
this.data.isApprover,
|
||||
);
|
||||
this.form = this.#getForm();
|
||||
}
|
||||
|
||||
get displayedDictionaryLabel() {
|
||||
const dictType = this.form.get('dictionary').value;
|
||||
if (dictType) {
|
||||
return this.dictionaries.find(d => d.type === dictType)?.label ?? null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
get disabled(): boolean {
|
||||
return !this.valid;
|
||||
}
|
||||
|
||||
get text(): string {
|
||||
return this.data.text;
|
||||
}
|
||||
|
||||
async ngOnInit() {
|
||||
this.dictionaries = this._dictionariesMapService.get(this.#dossier.dossierTemplateId);
|
||||
}
|
||||
|
||||
#getForm(): UntypedFormGroup {
|
||||
return this._formBuilder.group({
|
||||
comment: [null],
|
||||
dictionary: new FormControl({ value: this.redaction.entity.type, disabled: true }),
|
||||
option: [this.options[0]],
|
||||
});
|
||||
}
|
||||
|
||||
save(): void {
|
||||
const formValue = this.form.getRawValue();
|
||||
const updateDictionary = formValue.option.value === ResizeOptions.IN_DOSSIER;
|
||||
|
||||
this.dialogRef.close({
|
||||
comment: formValue.comment,
|
||||
updateDictionary,
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -42,7 +42,7 @@ import { HighlightsSeparatorComponent } from './components/highlights-separator/
|
||||
import { PendingChangesGuard } from '@guards/can-deactivate.guard';
|
||||
import { ManualAnnotationDialogComponent } from './dialogs/manual-redaction-dialog/manual-annotation-dialog.component';
|
||||
import { ForceAnnotationDialogComponent } from './dialogs/force-redaction-dialog/force-annotation-dialog.component';
|
||||
import { ResizeAnnotationDialogComponent } from './dialogs/resize-annotation-dialog/resize-annotation-dialog.component';
|
||||
import { ResizeRedactionDialogComponent } from './dialogs/resize-redaction-dialog/resize-redaction-dialog.component';
|
||||
import { ChangeLegalBasisDialogComponent } from './dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component';
|
||||
import { RecategorizeImageDialogComponent } from './dialogs/recategorize-image-dialog/recategorize-image-dialog.component';
|
||||
import { HighlightActionDialogComponent } from './dialogs/highlight-action-dialog/highlight-action-dialog.component';
|
||||
@ -82,7 +82,7 @@ const routes: IqserRoutes = [
|
||||
const dialogs = [
|
||||
ManualAnnotationDialogComponent,
|
||||
ForceAnnotationDialogComponent,
|
||||
ResizeAnnotationDialogComponent,
|
||||
ResizeRedactionDialogComponent,
|
||||
ChangeLegalBasisDialogComponent,
|
||||
RecategorizeImageDialogComponent,
|
||||
HighlightActionDialogComponent,
|
||||
|
||||
@ -34,15 +34,10 @@ import { IqserDialog } from '@common-ui/dialog/iqser-dialog.service';
|
||||
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
||||
import { isJustOne, List } from '@iqser/common-ui/lib/utils';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import {
|
||||
RedactTextData,
|
||||
RemoveAnnotationResult,
|
||||
RemoveRedactionData,
|
||||
RemoveRedactionPermissions,
|
||||
RemoveRedactionResult,
|
||||
} from '../utils/dialog-types';
|
||||
import { RemoveRedactionData, RemoveRedactionPermissions, RemoveRedactionResult, ResizeRedactionData } from '../utils/dialog-types';
|
||||
import { RemoveRedactionOptions } from '../utils/dialog-options';
|
||||
import { RemoveAnnotationDialogComponent } from '../dialogs/docu-mine/remove-annotation-dialog/remove-annotation-dialog.component';
|
||||
import { ResizeRedactionDialogComponent } from '../dialogs/resize-redaction-dialog/resize-redaction-dialog.component';
|
||||
|
||||
@Injectable()
|
||||
export class AnnotationActionsService {
|
||||
@ -221,11 +216,24 @@ export class AnnotationActionsService {
|
||||
return this.convertRecommendationToAnnotation([recommendation]);
|
||||
}
|
||||
|
||||
const dossier = this._state.dossier();
|
||||
|
||||
const isImageText = annotation.isImage ? 'Image' : textAndPositions.text;
|
||||
const text = annotation.rectangle ? annotation.value : isImageText;
|
||||
const data = { annotation, text };
|
||||
const isApprover = this._permissionsService.isApprover(dossier);
|
||||
const dossierTemplate = this._dossierTemplatesService.find(this._state.dossierTemplateId);
|
||||
|
||||
this._dialogService.openDialog('resizeAnnotation', data, (result: { comment: string; updateDictionary: boolean }) => {
|
||||
const data = {
|
||||
redaction: annotation,
|
||||
text,
|
||||
applyToAllDossiers: isApprover && dossierTemplate.applyDictionaryUpdatesToAllDossiersByDefault,
|
||||
isApprover,
|
||||
dossierId: dossier.dossierId,
|
||||
};
|
||||
|
||||
const result = await this.#getResizeRedactionDialog(data).result();
|
||||
|
||||
if (result) {
|
||||
const resizeRequest: IResizeRequest = {
|
||||
annotationId: annotation.id,
|
||||
comment: result.comment,
|
||||
@ -239,7 +247,7 @@ export class AnnotationActionsService {
|
||||
const { fileId, dossierId } = this._state;
|
||||
const request = this._manualRedactionService.resizeOrSuggestResize([resizeRequest], dossierId, fileId);
|
||||
this.#processObsAndEmit(request);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async cancelResize(annotationWrapper: AnnotationWrapper) {
|
||||
@ -415,4 +423,11 @@ export class AnnotationActionsService {
|
||||
}
|
||||
return this._iqserDialog.openDefault(RemoveRedactionDialogComponent, { data });
|
||||
}
|
||||
|
||||
#getResizeRedactionDialog(data: ResizeRedactionData) {
|
||||
// if (this.#isDocumine) {
|
||||
// return this._iqserDialog.openDefault(RemoveAnnotationDialogComponent, { data });
|
||||
// }
|
||||
return this._iqserDialog.openDefault(ResizeRedactionDialogComponent, { data });
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,7 +6,6 @@ import { ManualAnnotationDialogComponent } from '../dialogs/manual-redaction-dia
|
||||
import { ChangeLegalBasisDialogComponent } from '../dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component';
|
||||
import { RecategorizeImageDialogComponent } from '../dialogs/recategorize-image-dialog/recategorize-image-dialog.component';
|
||||
import { ConfirmationDialogComponent, DialogConfig, DialogService } from '@iqser/common-ui';
|
||||
import { ResizeAnnotationDialogComponent } from '../dialogs/resize-annotation-dialog/resize-annotation-dialog.component';
|
||||
import { HighlightActionDialogComponent } from '../dialogs/highlight-action-dialog/highlight-action-dialog.component';
|
||||
import { RssDialogComponent } from '../dialogs/rss-dialog/rss-dialog.component';
|
||||
|
||||
@ -16,7 +15,6 @@ type DialogType =
|
||||
| 'rss'
|
||||
| 'recategorizeImage'
|
||||
| 'changeLegalBasis'
|
||||
| 'resizeAnnotation'
|
||||
| 'forceAnnotation'
|
||||
| 'manualAnnotation'
|
||||
| 'highlightAction';
|
||||
@ -38,9 +36,6 @@ export class FilePreviewDialogService extends DialogService<DialogType> {
|
||||
changeLegalBasis: {
|
||||
component: ChangeLegalBasisDialogComponent,
|
||||
},
|
||||
resizeAnnotation: {
|
||||
component: ResizeAnnotationDialogComponent,
|
||||
},
|
||||
forceAnnotation: {
|
||||
component: ForceAnnotationDialogComponent,
|
||||
},
|
||||
|
||||
@ -5,6 +5,8 @@ import { Dossier } from '@red/domain';
|
||||
import { removeRedactionTranslations } from '@translations/remove-redaction-translations';
|
||||
import { RemoveRedactionData } from './dialog-types';
|
||||
import { removeAnnotationTranslations } from '@translations/remove-annotation-translations';
|
||||
import { resizeRedactionTranslations } from '@translations/resize-redaction-translations';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
|
||||
const PIN_ICON = 'red:push-pin';
|
||||
const FOLDER_ICON = 'red:folder';
|
||||
@ -17,6 +19,9 @@ export const RedactOrHintOptions = {
|
||||
|
||||
export type RedactOrHintOption = keyof typeof RedactOrHintOptions;
|
||||
|
||||
export const ResizeOptions = RedactOrHintOptions;
|
||||
export type ResizeRedactionOption = RedactOrHintOption;
|
||||
|
||||
export const RemoveRedactionOptions = {
|
||||
ONLY_HERE: 'ONLY_HERE',
|
||||
IN_DOSSIER: 'IN_DOSSIER',
|
||||
@ -40,7 +45,7 @@ export const getRedactOrHintOptions = (
|
||||
label: translations.onlyHere.label,
|
||||
description: translations.onlyHere.description,
|
||||
icon: PIN_ICON,
|
||||
value: RedactOrHintOptions.ONLY_HERE,
|
||||
value: ResizeOptions.ONLY_HERE,
|
||||
},
|
||||
];
|
||||
if (!isRss) {
|
||||
@ -49,6 +54,42 @@ export const getRedactOrHintOptions = (
|
||||
description: translations.inDossier.description,
|
||||
descriptionParams: { dossierName: dossier.dossierName },
|
||||
icon: FOLDER_ICON,
|
||||
value: ResizeOptions.IN_DOSSIER,
|
||||
extraOption: {
|
||||
label: translations.inDossier.extraOptionLabel,
|
||||
checked: applyToAllDossiers,
|
||||
hidden: !isApprover,
|
||||
},
|
||||
});
|
||||
}
|
||||
return options;
|
||||
};
|
||||
|
||||
export const getResizeRedactionOptions = (
|
||||
redaction: AnnotationWrapper,
|
||||
dossier: Dossier,
|
||||
isRss: boolean,
|
||||
applyToAllDossiers: boolean,
|
||||
isApprover: boolean,
|
||||
): DetailsRadioOption<ResizeRedactionOption>[] => {
|
||||
const translations = resizeRedactionTranslations;
|
||||
const options: DetailsRadioOption<ResizeRedactionOption>[] = [
|
||||
{
|
||||
label: translations.onlyHere.label,
|
||||
description: translations.onlyHere.description,
|
||||
icon: PIN_ICON,
|
||||
value: RedactOrHintOptions.ONLY_HERE,
|
||||
},
|
||||
];
|
||||
if (!isRss) {
|
||||
const dictBasedType = redaction.isModifyDictionary;
|
||||
options.push({
|
||||
label: translations.inDossier.label,
|
||||
description: translations.inDossier.description,
|
||||
descriptionParams: { dossierName: dossier.dossierName },
|
||||
disabled: !dictBasedType,
|
||||
tooltip: !dictBasedType ? translations.inDossier.tooltip : null,
|
||||
icon: FOLDER_ICON,
|
||||
value: RedactOrHintOptions.IN_DOSSIER,
|
||||
extraOption: {
|
||||
label: translations.inDossier.extraOptionLabel,
|
||||
|
||||
@ -25,6 +25,19 @@ export interface RedactTextResult {
|
||||
export type AddHintResult = RedactTextResult;
|
||||
export type AddAnnotationResult = RedactTextResult;
|
||||
|
||||
export interface ResizeRedactionData {
|
||||
redaction: AnnotationWrapper;
|
||||
dossierId: string;
|
||||
text: string;
|
||||
applyToAllDossiers?: boolean;
|
||||
isApprover?: boolean;
|
||||
}
|
||||
|
||||
export interface ResizeRedactionResult {
|
||||
comment: string;
|
||||
updateDictionary: boolean;
|
||||
}
|
||||
|
||||
export interface RemoveRedactionPermissions {
|
||||
canRemoveOnlyHere: boolean;
|
||||
canRemoveFromDictionary: boolean;
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { DialogOption } from '@translations/redact-text-translations';
|
||||
|
||||
interface ResizeDialogOption extends DialogOption {
|
||||
tooltip?: string;
|
||||
}
|
||||
|
||||
export const resizeRedactionTranslations: Record<'onlyHere' | 'inDossier', ResizeDialogOption> = {
|
||||
onlyHere: {
|
||||
label: _('resize-redaction.dialog.content.options.only-here.label'),
|
||||
description: _('resize-redaction.dialog.content.options.only-here.description'),
|
||||
},
|
||||
inDossier: {
|
||||
label: _('resize-redaction.dialog.content.options.in-dossier.label'),
|
||||
description: _('resize-redaction.dialog.content.options.in-dossier.description'),
|
||||
extraOptionLabel: _('resize-redaction.dialog.content.options.in-dossier.extraOptionLabel'),
|
||||
tooltip: _('resize-redaction.dialog.content.options.in-dossier.tooltip'),
|
||||
},
|
||||
} as const;
|
||||
@ -2103,16 +2103,32 @@
|
||||
},
|
||||
"header": "Temporäres Passwort für {userName} festlegen"
|
||||
},
|
||||
"resize-annotation-dialog": {
|
||||
"actions": {
|
||||
"cancel": "Abbrechen",
|
||||
"save": "Änderungen speichern"
|
||||
},
|
||||
"content": {
|
||||
"comment": "Kommentar",
|
||||
"update-dictionary": ""
|
||||
},
|
||||
"header": "Schwärzung ändern"
|
||||
"resize-redaction": {
|
||||
"dialog": {
|
||||
"actions": {
|
||||
"cancel": "",
|
||||
"save": ""
|
||||
},
|
||||
"content": {
|
||||
"comment": "",
|
||||
"options": {
|
||||
"in-dossier": {
|
||||
"description": "",
|
||||
"extraOptionLabel": "",
|
||||
"label": "",
|
||||
"tooltip": ""
|
||||
},
|
||||
"only-here": {
|
||||
"description": "",
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"original-text": "",
|
||||
"resized-text": "",
|
||||
"type": ""
|
||||
},
|
||||
"header": ""
|
||||
}
|
||||
},
|
||||
"roles": {
|
||||
"inactive": "Inaktiv",
|
||||
|
||||
@ -2103,16 +2103,32 @@
|
||||
},
|
||||
"header": "Set Temporary Password for {userName}"
|
||||
},
|
||||
"resize-annotation-dialog": {
|
||||
"actions": {
|
||||
"cancel": "Cancel",
|
||||
"save": "Save Changes"
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"update-dictionary": "Update dictionary: {text}"
|
||||
},
|
||||
"header": "Resize Redaction"
|
||||
"resize-redaction": {
|
||||
"dialog": {
|
||||
"actions": {
|
||||
"cancel": "Cancel",
|
||||
"save": "Save Changes"
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"options": {
|
||||
"in-dossier": {
|
||||
"description": "Resize in every document in {dossierName}.",
|
||||
"extraOptionLabel": "Apply to all dossiers",
|
||||
"label": "Resize in dossier",
|
||||
"tooltip": "Only available for dictionary-based types"
|
||||
},
|
||||
"only-here": {
|
||||
"description": "Resize only at this position in this document.",
|
||||
"label": "Resize only here"
|
||||
}
|
||||
},
|
||||
"original-text": "Original text:",
|
||||
"resized-text": "Resized text:",
|
||||
"type": "Type"
|
||||
},
|
||||
"header": "Resize {type}"
|
||||
}
|
||||
},
|
||||
"roles": {
|
||||
"inactive": "Inactive",
|
||||
|
||||
@ -2103,16 +2103,32 @@
|
||||
},
|
||||
"header": "Temporäres Passwort für {userName} festlegen"
|
||||
},
|
||||
"resize-annotation-dialog": {
|
||||
"actions": {
|
||||
"cancel": "Abbrechen",
|
||||
"save": "Änderungen speichern"
|
||||
},
|
||||
"content": {
|
||||
"comment": "Kommentar",
|
||||
"update-dictionary": ""
|
||||
},
|
||||
"header": "Schwärzung ändern"
|
||||
"resize-redaction": {
|
||||
"dialog": {
|
||||
"actions": {
|
||||
"cancel": "",
|
||||
"save": ""
|
||||
},
|
||||
"content": {
|
||||
"comment": "",
|
||||
"options": {
|
||||
"in-dossier": {
|
||||
"description": "",
|
||||
"extraOptionLabel": "",
|
||||
"label": "",
|
||||
"tooltip": ""
|
||||
},
|
||||
"only-here": {
|
||||
"description": "",
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"original-text": "",
|
||||
"resized-text": "",
|
||||
"type": ""
|
||||
},
|
||||
"header": ""
|
||||
}
|
||||
},
|
||||
"roles": {
|
||||
"inactive": "Inaktiv",
|
||||
|
||||
@ -2103,16 +2103,32 @@
|
||||
},
|
||||
"header": "Set Temporary Password for {userName}"
|
||||
},
|
||||
"resize-annotation-dialog": {
|
||||
"actions": {
|
||||
"cancel": "Cancel",
|
||||
"save": "Save Changes"
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"update-dictionary": "Update dictionary: {text}"
|
||||
},
|
||||
"header": "Resize Component"
|
||||
"resize-redaction": {
|
||||
"dialog": {
|
||||
"actions": {
|
||||
"cancel": "Cancel",
|
||||
"save": "Save Changes"
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"options": {
|
||||
"in-dossier": {
|
||||
"description": "Resize in every document in {dossierName}.",
|
||||
"extraOptionLabel": "Apply to all dossiers",
|
||||
"label": "Resize in dossier",
|
||||
"tooltip": "Only available for dictionary-based types"
|
||||
},
|
||||
"only-here": {
|
||||
"description": "Resize only at this position in this document.",
|
||||
"label": "Resize only here"
|
||||
}
|
||||
},
|
||||
"original-text": "Original text:",
|
||||
"resized-text": "Resized text:",
|
||||
"type": "Type"
|
||||
},
|
||||
"header": "Resize {type}"
|
||||
}
|
||||
},
|
||||
"roles": {
|
||||
"inactive": "Inactive",
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 5aa064ac65e631f0871f2833ae91007a7c9b7a55
|
||||
Subproject commit b368fa6fe89b1cf65eb76ce15868bccf1a51ff67
|
||||
Loading…
x
Reference in New Issue
Block a user