From c3697964be037f4a70cb3102808c800af17fe6b6 Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Mon, 22 Apr 2024 12:19:58 +0300 Subject: [PATCH 1/9] RED-8904: adjusted the table columns width for specific cases. --- .../selected-annotations-table.component.html | 4 ++-- .../selected-annotations-table.component.scss | 13 ++++++++++++- .../selected-annotations-table.component.ts | 1 + .../force-annotation-dialog.component.html | 6 +++++- .../remove-redaction-dialog.component.html | 1 + .../remove-redaction-dialog.component.ts | 4 ++++ 6 files changed, 25 insertions(+), 4 deletions(-) diff --git a/apps/red-ui/src/app/modules/file-preview/components/selected-annotations-table/selected-annotations-table.component.html b/apps/red-ui/src/app/modules/file-preview/components/selected-annotations-table/selected-annotations-table.component.html index 567b04b25..f8bbf10d5 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/selected-annotations-table/selected-annotations-table.component.html +++ b/apps/red-ui/src/app/modules/file-preview/components/selected-annotations-table/selected-annotations-table.component.html @@ -1,14 +1,14 @@ - - diff --git a/apps/red-ui/src/app/modules/file-preview/components/selected-annotations-table/selected-annotations-table.component.scss b/apps/red-ui/src/app/modules/file-preview/components/selected-annotations-table/selected-annotations-table.component.scss index c4a571d6e..6812c9358 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/selected-annotations-table/selected-annotations-table.component.scss +++ b/apps/red-ui/src/app/modules/file-preview/components/selected-annotations-table/selected-annotations-table.component.scss @@ -27,8 +27,10 @@ table { th, td { + &:not(.w-50) { + width: 25%; + } max-width: 0; - width: 25%; text-align: start; white-space: nowrap; @@ -58,6 +60,15 @@ tbody tr:nth-child(odd) { visibility: hidden; } +.w-50 { + max-width: 0; + min-width: 50%; + + &.hide { + display: none; + } +} + .bold { font-weight: bold; } diff --git a/apps/red-ui/src/app/modules/file-preview/components/selected-annotations-table/selected-annotations-table.component.ts b/apps/red-ui/src/app/modules/file-preview/components/selected-annotations-table/selected-annotations-table.component.ts index db71779c7..3601d4b77 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/selected-annotations-table/selected-annotations-table.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/selected-annotations-table/selected-annotations-table.component.ts @@ -20,6 +20,7 @@ const MAX_ITEMS_DISPLAY = 10; export class SelectedAnnotationsTableComponent { @Input({ required: true }) columns: ValueColumn[]; @Input({ required: true }) data: ValueColumn[][]; + @Input() staticColumns = false; get redactedTextsAreaHeight() { return this.data.length <= MAX_ITEMS_DISPLAY ? TABLE_ROW_SIZE * this.data.length : TABLE_ROW_SIZE * MAX_ITEMS_DISPLAY; diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/force-redaction-dialog/force-annotation-dialog.component.html b/apps/red-ui/src/app/modules/file-preview/dialogs/force-redaction-dialog/force-annotation-dialog.component.html index 8234cbb1c..1b45af6e6 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/force-redaction-dialog/force-annotation-dialog.component.html +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/force-redaction-dialog/force-annotation-dialog.component.html @@ -4,7 +4,11 @@
- +
diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/remove-redaction-dialog/remove-redaction-dialog.component.html b/apps/red-ui/src/app/modules/file-preview/dialogs/remove-redaction-dialog/remove-redaction-dialog.component.html index 63287b276..1acb8a0e6 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/remove-redaction-dialog/remove-redaction-dialog.component.html +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/remove-redaction-dialog/remove-redaction-dialog.component.html @@ -10,6 +10,7 @@
diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/remove-redaction-dialog/remove-redaction-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/remove-redaction-dialog/remove-redaction-dialog.component.ts index ed69238b7..42094db60 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/remove-redaction-dialog/remove-redaction-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/remove-redaction-dialog/remove-redaction-dialog.component.ts @@ -73,6 +73,10 @@ export class RemoveRedactionDialogComponent extends IqserDialogComponent< return DialogHelpModeKeys.REDACTION_REMOVE; } + get hasFalsePositiveOption() { + return !!this.options.find(option => option.value === RemoveRedactionOptions.FALSE_POSITIVE); + } + get defaultOption() { const removeHereOption = this.options.find(option => option.value === RemoveRedactionOptions.ONLY_HERE); if (!!removeHereOption && !removeHereOption.disabled) return removeHereOption; From 65297c342305330da913baf0379d30c2c5701a87 Mon Sep 17 00:00:00 2001 From: Valentin Mihai Date: Mon, 22 Apr 2024 13:54:35 +0300 Subject: [PATCH 2/9] RED-9020 - Use new POST endpoint to hard-delete files --- .../red-ui/src/app/services/entity-services/trash.service.ts | 5 +---- .../red-ui/src/app/services/files/file-management.service.ts | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/apps/red-ui/src/app/services/entity-services/trash.service.ts b/apps/red-ui/src/app/services/entity-services/trash.service.ts index 2b8365f93..04444e600 100644 --- a/apps/red-ui/src/app/services/entity-services/trash.service.ts +++ b/apps/red-ui/src/app/services/entity-services/trash.service.ts @@ -115,10 +115,7 @@ export class TrashService extends EntitiesService { } private _hardDeleteFiles(dossierId: string, fileIds: List) { - const queryParams = fileIds.map(id => ({ key: 'fileIds', value: id })); - return super - .delete({}, `delete/hard-delete/${dossierId}`, queryParams) - .pipe(switchMap(() => this._dossierStatsService.getFor([dossierId]))); + return super._post(fileIds, `delete/hard-delete/${dossierId}`).pipe(switchMap(() => this._dossierStatsService.getFor([dossierId]))); } private _restoreFiles(dossierId: string, fileIds: List) { diff --git a/apps/red-ui/src/app/services/files/file-management.service.ts b/apps/red-ui/src/app/services/files/file-management.service.ts index 22f4a7a15..3d018fad7 100644 --- a/apps/red-ui/src/app/services/files/file-management.service.ts +++ b/apps/red-ui/src/app/services/files/file-management.service.ts @@ -16,7 +16,7 @@ export class FileManagementService extends GenericService { delete(files: List, dossierId: string) { const fileIds = files.map(f => f.id); - return super._post(fileIds, `delete/hard-delete/${dossierId}`).pipe(switchMap(() => this.#filesService.loadAll(dossierId))); + return super._post(fileIds, `delete/${dossierId}`).pipe(switchMap(() => this.#filesService.loadAll(dossierId))); } rotatePage(body: IPageRotationRequest, dossierId: string, fileId: string) { From 5e1c531cbe7637232ea3843ea24fbd860dfdebe9 Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Mon, 22 Apr 2024 16:31:58 +0300 Subject: [PATCH 3/9] RED-8945: filtering out types for edit dialog. --- .../edit-redaction-dialog.component.ts | 2 +- .../services/entity-services/dictionary.service.ts | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts index cd17a5d7c..484b22a26 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts @@ -163,7 +163,7 @@ export class EditRedactionDialogComponent #setTypes() { this.dictionaries = this._dictionaryService.getEditableRedactionTypes( - this.#dossier.dossierTemplateId, + this.#dossier.dossierId, this.isImage, this.isHint, this.annotations.every(annotation => annotation.isOCR), diff --git a/apps/red-ui/src/app/services/entity-services/dictionary.service.ts b/apps/red-ui/src/app/services/entity-services/dictionary.service.ts index 1aac767c8..5b3af3cb0 100644 --- a/apps/red-ui/src/app/services/entity-services/dictionary.service.ts +++ b/apps/red-ui/src/app/services/entity-services/dictionary.service.ts @@ -162,15 +162,18 @@ export class DictionaryService extends EntitiesService .sort((a, b) => a.label.localeCompare(b.label)); } - getEditableRedactionTypes(dossierTemplateId: string, isImage: boolean, isHint: boolean, isOCR: boolean): Dictionary[] { - return this._dictionariesMapService - .get(dossierTemplateId) + getEditableRedactionTypes(dossierId: string, isImage: boolean, isHint: boolean, isOCR: boolean): Dictionary[] { + return this.#extractDossierLevelTypes(dossierId) .filter( d => d.model['typeId'] && (isImage ? (isOCR ? [...IMAGE_CATEGORIES, 'ocr'] : IMAGE_CATEGORIES).includes(d.type) - : (isHint ? d.hint : !d.hint) && !d.virtual && !d.systemManaged && ![...IMAGE_CATEGORIES, 'ocr'].includes(d.type)), + : (isHint ? d.hint : !d.hint) && + d.addToDictionaryAction && + !d.virtual && + !d.systemManaged && + ![...IMAGE_CATEGORIES, 'ocr'].includes(d.type)), ) .sort((a, b) => a.label.localeCompare(b.label)); } From 8f55db227947743ba3402e16071b971737b98e8f Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Tue, 23 Apr 2024 15:55:40 +0300 Subject: [PATCH 4/9] RED-9045: made the current type always available. --- .../edit-redaction-dialog.component.ts | 8 ++++++-- .../app/services/entity-services/dictionary.service.ts | 10 ++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts index 484b22a26..92c997acf 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts @@ -112,6 +112,10 @@ export class EditRedactionDialogComponent return DialogHelpModeKeys.REDACTION_EDIT; } + get sameType() { + return this.annotations.every(annotation => annotation.type === this.annotations[0].type); + } + async ngOnInit() { this.#setTypes(); const data = await firstValueFrom(this._justificationsService.loadAll(this.#dossier.dossierTemplateId)); @@ -167,6 +171,7 @@ export class EditRedactionDialogComponent this.isImage, this.isHint, this.annotations.every(annotation => annotation.isOCR), + this.sameType ? this.annotations[0].type : null, ); this.typeSelectOptions = this.dictionaries.map(dictionary => ({ @@ -198,13 +203,12 @@ export class EditRedactionDialogComponent } #getForm() { - const sameType = this.annotations.every(annotation => annotation.type === this.annotations[0].type); const sameSection = this.annotations.every(annotation => annotation.section === this.annotations[0].section); return new FormGroup({ reason: new FormControl({ value: null, disabled: this.someSkipped }), comment: new FormControl(null), type: new FormControl({ - value: sameType ? this.annotations[0].type : null, + value: this.sameType ? this.annotations[0].type : null, disabled: this.isImported, }), section: new FormControl({ value: sameSection ? this.annotations[0].section : null, disabled: this.isImported }), diff --git a/apps/red-ui/src/app/services/entity-services/dictionary.service.ts b/apps/red-ui/src/app/services/entity-services/dictionary.service.ts index 5b3af3cb0..f664bc8a9 100644 --- a/apps/red-ui/src/app/services/entity-services/dictionary.service.ts +++ b/apps/red-ui/src/app/services/entity-services/dictionary.service.ts @@ -162,7 +162,13 @@ export class DictionaryService extends EntitiesService .sort((a, b) => a.label.localeCompare(b.label)); } - getEditableRedactionTypes(dossierId: string, isImage: boolean, isHint: boolean, isOCR: boolean): Dictionary[] { + getEditableRedactionTypes( + dossierId: string, + isImage: boolean, + isHint: boolean, + isOCR: boolean, + currentlySelectedType: string, + ): Dictionary[] { return this.#extractDossierLevelTypes(dossierId) .filter( d => @@ -170,7 +176,7 @@ export class DictionaryService extends EntitiesService (isImage ? (isOCR ? [...IMAGE_CATEGORIES, 'ocr'] : IMAGE_CATEGORIES).includes(d.type) : (isHint ? d.hint : !d.hint) && - d.addToDictionaryAction && + (d.addToDictionaryAction || currentlySelectedType === d.type) && !d.virtual && !d.systemManaged && ![...IMAGE_CATEGORIES, 'ocr'].includes(d.type)), From 29555fec94374f881b87583036f9e30430aa0bf2 Mon Sep 17 00:00:00 2001 From: Valentin Mihai Date: Tue, 23 Apr 2024 20:31:15 +0300 Subject: [PATCH 5/9] RED-8692 - Automatic code validation in the rule editor --- .../rules-screen/rules-screen.component.html | 12 +++++++--- .../rules-screen/rules-screen.component.scss | 4 ++++ .../rules-screen/rules-screen.component.ts | 22 +++++++++++-------- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.html index 993091559..28df7f774 100644 --- a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.html @@ -6,15 +6,21 @@
-
+
- +
- + +
diff --git a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.scss index 3156386dc..49e950daf 100644 --- a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.scss @@ -63,6 +63,10 @@ ngx-monaco-editor { .warning { color: var(--iqser-warn); + + &.only-warning { + margin-left: 15px; + } } } diff --git a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.ts index 7ee016d00..2d5fa0dfb 100644 --- a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.ts @@ -144,7 +144,7 @@ export class RulesScreenComponent implements OnInit, ComponentCanDeactivate { }), ).then( async (response: UploadResponse) => { - const errors = this.#mapErrors(response); + const errors = this.#mapErrors(response, dryRun); this.#drawErrorMarkers(errors); if (!dryRun) { await this.#initialize(); @@ -154,10 +154,13 @@ export class RulesScreenComponent implements OnInit, ComponentCanDeactivate { error => { let errors: SyntaxError[]; if (error.error?.syntaxErrorMessages) { - errors = this.#mapErrors(error.error); + errors = this.#mapErrors(error.error, dryRun); } else { const syntaxError: SyntaxError = { message: error.error.message, line: 1, column: 0 }; - errors = this.#mapErrors({ blacklistErrorMessages: [], syntaxErrorMessages: [syntaxError], deprecatedWarnings: [] }); + errors = this.#mapErrors( + { blacklistErrorMessages: [], syntaxErrorMessages: [syntaxError], deprecatedWarnings: [] }, + dryRun, + ); } this.#drawErrorMarkers(errors); this._loadingService.stop(); @@ -176,12 +179,12 @@ export class RulesScreenComponent implements OnInit, ComponentCanDeactivate { this._loadingService.stop(); } - #mapErrors(response: UploadResponse) { - return [ - ...response.blacklistErrorMessages, - ...response.syntaxErrorMessages, - ...response.deprecatedWarnings.map(w => ({ ...w, warning: true })), - ]; + #mapErrors(response: UploadResponse, dryRun = false) { + const warnings = response.deprecatedWarnings.map(w => ({ ...w, warning: true })); + if (dryRun) { + return warnings; + } + return [...response.blacklistErrorMessages, ...response.syntaxErrorMessages, ...warnings]; } #getValue(): string { @@ -238,6 +241,7 @@ export class RulesScreenComponent implements OnInit, ComponentCanDeactivate { #drawErrorMarkers(errors: SyntaxError[] | undefined) { const model = this.#codeEditor?.getModel(); if (!model || !errors?.length) { + this.#removeErrorMarkers(); return; } const markers = []; From 49af54175b78ba47c789ca91706866c7a6f78ee7 Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Wed, 24 Apr 2024 11:08:23 +0300 Subject: [PATCH 6/9] RED-8904: changed from list to table display for some dialogs. --- .../edit-redaction-dialog.component.html | 6 +++++- .../edit-redaction-dialog.component.scss | 4 ++-- .../edit-redaction-dialog.component.ts | 15 +++++++++++++++ ...redact-recommendation-dialog.component.html | 6 +++++- ...redact-recommendation-dialog.component.scss | 3 +++ .../redact-recommendation-dialog.component.ts | 18 +++++++++++++++++- 6 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.scss diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.html b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.html index 1b2dc1399..b73fa0ade 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.html +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.html @@ -8,7 +8,11 @@
- +
diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.scss b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.scss index f78a044f5..112313d42 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.scss +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.scss @@ -1,6 +1,6 @@ -@use 'common-mixins'; - .dialog-content { + padding-top: 8px; + &.fixed-height { height: 386px; overflow-y: auto; diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts index 92c997acf..ef7b870ef 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts @@ -11,6 +11,7 @@ import { EditRedactionData, EditRedactResult } from '../../utils/dialog-types'; import { LegalBasisOption } from '../manual-redaction-dialog/manual-annotation-dialog.component'; import { Roles } from '@users/roles'; import { DialogHelpModeKeys } from '../../utils/constants'; +import { ValueColumn } from '../../components/selected-annotations-table/selected-annotations-table.component'; interface TypeSelectOptions { type: string; @@ -38,6 +39,20 @@ export class EditRedactionDialogComponent readonly isRedacted = this.annotations.every(annotation => annotation.isRedacted); readonly isImported: boolean = this.annotations.every(annotation => annotation.imported); readonly allRectangles = this.annotations.reduce((acc, a) => acc && a.AREA, true); + readonly tableColumns = [ + { + label: 'Value', + show: true, + }, + { + label: 'Type', + show: true, + }, + ]; + readonly tableData: ValueColumn[][] = this.data.annotations.map(redaction => [ + { label: redaction.value, show: true, bold: true }, + { label: redaction.typeLabel, show: true }, + ]); protected readonly roles = Roles; options: DetailsRadioOption[] | undefined; diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.html b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.html index 3b505bc23..eb1d4b146 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.html +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.html @@ -4,7 +4,11 @@
- +
@@ -30,7 +32,6 @@ export class RedactRecommendationDialogComponent dictionaryRequest = false; legalOptions: LegalBasisOption[] = []; dictionaries: Dictionary[] = []; - readonly selectedValues = this.data.annotations.map(annotation => annotation.value); readonly form = inject(FormBuilder).group({ selectedText: this.isMulti ? null : this.firstEntry.value, comment: [null], @@ -39,6 +40,21 @@ export class RedactRecommendationDialogComponent reason: [null], }); + readonly tableColumns = [ + { + label: 'Value', + show: true, + }, + { + label: 'Type', + show: true, + }, + ]; + readonly tableData: ValueColumn[][] = this.data.annotations.map(redaction => [ + { label: redaction.value, show: true, bold: true }, + { label: redaction.typeLabel, show: true }, + ]); + constructor( private readonly _justificationsService: JustificationsService, private readonly _dictionaryService: DictionaryService, From 1150f9cf6b055d540502baa589e6ee3e365d2da0 Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Wed, 24 Apr 2024 14:05:46 +0300 Subject: [PATCH 7/9] RED-8904: use table format for add dialog as well. --- .../redact-text-dialog.component.html | 80 ++++++++++--------- .../redact-text-dialog.component.scss | 45 +++++++---- .../redact-text-dialog.component.ts | 12 ++- 3 files changed, 81 insertions(+), 56 deletions(-) diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.html b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.html index 4454477ce..25161a316 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.html +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.html @@ -3,48 +3,56 @@
-
+
-
    -
  • - -
  • -
+
+ +
+ + - + - - - + +
+
diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.scss b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.scss index d4c112676..df1cd1e09 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.scss +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.scss @@ -13,29 +13,14 @@ } } -.edit-button { - top: 0; - right: calc((0.5rem + 34px) * -1); - position: sticky; -} - -.undo-button { - top: 0; - right: calc((0.5rem + 34px) * -2); +iqser-circle-button { + padding-left: 8px; } .w-full { width: 100%; } -.absolute { - position: absolute; -} - -.relative { - position: relative; -} - .fixed-height-36 { min-height: 36px; } @@ -43,3 +28,29 @@ textarea { margin-top: 0; } + +.table { + display: flex; + flex-direction: column; + min-width: 100%; + + label { + opacity: 0.7; + font-weight: normal; + } + + .row { + display: inline-flex; + flex-direction: row; + align-items: center; + background-color: var(--iqser-alt-background); + min-width: 100%; + + span { + white-space: nowrap; + text-overflow: ellipsis; + list-style-position: inside; + overflow: hidden; + } + } +} diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.ts index 12a5b4259..a55a7fb2b 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.ts @@ -14,7 +14,7 @@ import { getRedactOrHintOptions, RedactOrHintOption, RedactOrHintOptions } from import { RedactTextData, RedactTextResult } from '../../utils/dialog-types'; import { LegalBasisOption } from '../manual-redaction-dialog/manual-annotation-dialog.component'; -const MAXIMUM_SELECTED_TEXT_WIDTH = 421; +const MAXIMUM_TEXT_AREA_WIDTH = 421; @Component({ templateUrl: './redact-text-dialog.component.html', @@ -39,6 +39,10 @@ export class RedactTextDialogComponent readonly #dossier = inject(ActiveDossiersService).find(this.data.dossierId); readonly #manualRedactionTypeExists = inject(DictionaryService).hasManualType(this.#dossier.dossierTemplateId); #applyToAllDossiers = this.data.applyToAllDossiers ?? true; + readonly maximumTextAreaWidth = MAXIMUM_TEXT_AREA_WIDTH; + readonly maximumSelectedTextWidth = 567; + + textWidth: number; get defaultOption() { const inDossierOption = this.options.find(option => option.value === RedactOrHintOptions.IN_DOSSIER); @@ -60,7 +64,7 @@ export class RedactTextDialogComponent this.options = getRedactOrHintOptions(this.#dossier, this.#applyToAllDossiers, this.data.isApprover, this.data.isPageExcluded); this.form = this.#getForm(); this.#setupValidators(this.dictionaryRequest ? RedactOrHintOptions.IN_DOSSIER : RedactOrHintOptions.ONLY_HERE); - + this.textWidth = calcTextWidthInPixels(this.form.controls.selectedText.value); this.form.controls.option.valueChanges .pipe( tap((option: DetailsRadioOption) => { @@ -136,7 +140,7 @@ export class RedactTextDialogComponent this.isEditingSelectedText = !this.isEditingSelectedText; if (this.isEditingSelectedText) { const width = calcTextWidthInPixels(this.form.controls.selectedText.value); - this.selectedTextRows = Math.ceil(width / MAXIMUM_SELECTED_TEXT_WIDTH); + this.selectedTextRows = Math.ceil(width / MAXIMUM_TEXT_AREA_WIDTH); } } @@ -213,4 +217,6 @@ export class RedactTextDialogComponent } this.form.controls.dictionary.setValue(this.#manualRedactionTypeExists ? SuperTypes.ManualRedaction : null); } + + protected readonly window = window; } From 22fa8d28bc18558cd95e3862cd196b808fb420b9 Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Wed, 24 Apr 2024 15:20:31 +0300 Subject: [PATCH 8/9] RED-8904: more improvements. --- .../redact-recommendation-dialog.component.html | 9 +++++++-- .../redact-recommendation-dialog.component.ts | 5 +++-- .../redact-text-dialog/redact-text-dialog.component.scss | 3 ++- .../file-preview/services/manual-redaction.service.ts | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.html b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.html index eb1d4b146..7acc288cc 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.html +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.html @@ -21,7 +21,7 @@ - + {{ displayedDictionaryLabel }}
- +
diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.ts index 587f154e9..fddd4302f 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.ts @@ -85,7 +85,7 @@ export class RedactRecommendationDialogComponent } get disabled() { - return this.dictionaryRequest && !this.form.controls.dictionary.value; + return !this.form.controls.dictionary.value; } async ngOnInit(): Promise { @@ -160,9 +160,10 @@ export class RedactRecommendationDialogComponent } #resetValues() { + const sameType = this.data.annotations.every(annotation => annotation.type === this.firstEntry.type); this.#applyToAllDossiers = this.data.applyToAllDossiers ?? true; if (this.dictionaryRequest) { - this.form.controls.dictionary.setValue(this.firstEntry.type); + this.form.controls.dictionary.setValue(sameType ? this.firstEntry.type : null); return; } this.form.controls.dictionary.setValue(this.#manualRedactionTypeExists ? SuperTypes.ManualRedaction : null); diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.scss b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.scss index df1cd1e09..0b6f2896a 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.scss +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.scss @@ -32,7 +32,8 @@ textarea { .table { display: flex; flex-direction: column; - min-width: 100%; + min-width: calc(100% - 26px); + padding: 0 13px; label { opacity: 0.7; diff --git a/apps/red-ui/src/app/modules/file-preview/services/manual-redaction.service.ts b/apps/red-ui/src/app/modules/file-preview/services/manual-redaction.service.ts index a86a57ef7..dd90f6be4 100644 --- a/apps/red-ui/src/app/modules/file-preview/services/manual-redaction.service.ts +++ b/apps/red-ui/src/app/modules/file-preview/services/manual-redaction.service.ts @@ -56,7 +56,7 @@ export class ManualRedactionService extends GenericService { value: annotation.value, reason: annotation.legalBasis ?? 'Dictionary Request', positions: annotation.positions, - type: redaction.type, + type: redaction.type ?? annotation.type, comment: redaction.comment, })); return this.addAnnotation(recommendations, dossierId, fileId); From 7a8f9289ad65b818f88ffcb090a89adbf4f86c2a Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Wed, 24 Apr 2024 15:23:41 +0300 Subject: [PATCH 9/9] RED-8904: run i18n extract. --- apps/red-ui/src/assets/i18n/redact/de.json | 151 +++++++++++---------- apps/red-ui/src/assets/i18n/redact/en.json | 5 +- apps/red-ui/src/assets/i18n/scm/de.json | 151 +++++++++++---------- apps/red-ui/src/assets/i18n/scm/en.json | 5 +- 4 files changed, 158 insertions(+), 154 deletions(-) diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json index d5f153777..a70e09741 100644 --- a/apps/red-ui/src/assets/i18n/redact/de.json +++ b/apps/red-ui/src/assets/i18n/redact/de.json @@ -250,9 +250,6 @@ "watermarks": "Watermarks" }, "analysis-disabled": "", - "annotation": { - "pending": "(Pending analysis)" - }, "annotation-actions": { "accept-recommendation": { "label": "Empfehlung annehmen" @@ -307,14 +304,14 @@ "error": "Rekategorisierung des Bildes gescheitert: {error}", "success": "Bild wurde einer neuen Kategorie zugeordnet." }, - "remove": { - "error": "Fehler beim Entfernen der Schwärzung: {error}", - "success": "Schwärzung entfernt!" - }, "remove-hint": { "error": "Failed to remove hint: {error}", "success": "Hint removed!" }, + "remove": { + "error": "Fehler beim Entfernen der Schwärzung: {error}", + "success": "Schwärzung entfernt!" + }, "undo": { "error": "Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error}", "success": "erfolgreich Rückgängig gemacht" @@ -327,15 +324,15 @@ "remove-highlights": { "label": "Remove selected earmarks" }, - "resize": { - "label": "Größe ändern" - }, "resize-accept": { "label": "Größe speichern" }, "resize-cancel": { "label": "Größenänderung abbrechen" }, + "resize": { + "label": "Größe ändern" + }, "see-references": { "label": "See references" }, @@ -367,6 +364,9 @@ "skipped": "Übersprungen", "text-highlight": "Earmark" }, + "annotation": { + "pending": "(Pending analysis)" + }, "archived-dossiers-listing": { "no-data": { "title": "No archived dossiers." @@ -572,18 +572,14 @@ "warning": "Achtung: Diese Aktion kann nicht rückgängig gemacht werden!" }, "confirmation-dialog": { - "approve-file": { - "question": "Dieses Dokument enthält ungesehene Änderungen. Möchten Sie es trotzdem genehmigen?", - "title": "Warnung!" - }, "approve-file-without-analysis": { "confirmationText": "Approve without analysis", "denyText": "Cancel", "question": "Analysis required to detect new redactions.", "title": "Warning!" }, - "approve-multiple-files": { - "question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen. Möchten Sie sie trotzdem genehmigen?", + "approve-file": { + "question": "Dieses Dokument enthält ungesehene Änderungen. Möchten Sie es trotzdem genehmigen?", "title": "Warnung!" }, "approve-multiple-files-without-analysis": { @@ -592,6 +588,10 @@ "question": "Analysis required to detect new redactions for at least one file.", "title": "Warning" }, + "approve-multiple-files": { + "question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen. Möchten Sie sie trotzdem genehmigen?", + "title": "Warnung!" + }, "assign-file-to-me": { "question": { "multiple": "Dieses Dokument wird gerade von einer anderen Person geprüft. Möchten Sie Reviewer werden und sich selbst dem Dokument zuweisen?", @@ -936,13 +936,13 @@ "recent": "Neu ({hours} h)", "unassigned": "Niemandem zugewiesen" }, - "reanalyse": { - "action": "Datei analysieren" - }, "reanalyse-dossier": { "error": "Die Dateien konnten nicht für eine Reanalyse eingeplant werden. Bitte versuchen Sie es erneut.", "success": "Dateien für Reanalyse vorgesehen." }, + "reanalyse": { + "action": "Datei analysieren" + }, "start-auto-analysis": "Enable auto-analysis", "stop-auto-analysis": "Stop auto-analysis", "table-col-names": { @@ -1011,14 +1011,6 @@ "total-documents": "Anzahl der Dokumente", "total-people": "{count} {count, plural, one{user} other {users}}" }, - "dossier-templates": { - "label": "Dossier-Vorlagen", - "status": { - "active": "Active", - "inactive": "Inactive", - "incomplete": "Incomplete" - } - }, "dossier-templates-listing": { "action": { "clone": "Clone template", @@ -1054,6 +1046,14 @@ "title": "{length} {length, plural, one{Dossier-Vorlage} other{Dossier-Vorlagen}}" } }, + "dossier-templates": { + "label": "Dossier-Vorlagen", + "status": { + "active": "Active", + "inactive": "Inactive", + "incomplete": "Incomplete" + } + }, "dossier-watermark-selector": { "heading": "Watermarks on documents", "no-watermark": "There is no watermark defined for the dossier template.
Contact your app admin to define one.", @@ -1248,15 +1248,6 @@ "title": "{length} {length, plural, one{Wörterbuch} other{Wörterbücher}}" } }, - "entity": { - "info": { - "actions": { - "revert": "Revert", - "save": "Save changes" - }, - "heading": "Edit entity" - } - }, "entity-rules-screen": { "error": { "generic": "Something went wrong... Entity rules update failed!" @@ -1271,19 +1262,28 @@ "warning-text": "Warning: experimental feature!", "warnings-found": "{warnings, plural, one{A warning} other{{warnings} warnings}} found in rules" }, + "entity": { + "info": { + "actions": { + "revert": "Revert", + "save": "Save changes" + }, + "heading": "Edit entity" + } + }, "error": { "deleted-entity": { "dossier": { "action": "Zurück zur Übersicht", "label": "Dieses Dossier wurde gelöscht!" }, - "file": { - "action": "Zurück zum Dossier", - "label": "Diese Datei wurde gelöscht!" - }, "file-dossier": { "action": "Zurück zur Übersicht", "label": "Das Dossier dieser Datei wurde gelöscht!" + }, + "file": { + "action": "Zurück zum Dossier", + "label": "Diese Datei wurde gelöscht!" } }, "file-preview": { @@ -1301,12 +1301,6 @@ }, "exact-date": "{day} {month} {year} um {hour}:{minute} Uhr", "file": "Datei", - "file-attribute": { - "update": { - "error": "Failed to update file attribute value!", - "success": "File attribute value has been updated successfully!" - } - }, "file-attribute-encoding-types": { "ascii": "ASCII", "iso": "ISO-8859-1", @@ -1317,6 +1311,12 @@ "number": "Nummer", "text": "Freier Text" }, + "file-attribute": { + "update": { + "error": "Failed to update file attribute value!", + "success": "File attribute value has been updated successfully!" + } + }, "file-attributes-configurations": { "cancel": "Cancel", "form": { @@ -1535,15 +1535,6 @@ "csv": "File attributes were imported successfully from uploaded CSV file." } }, - "filter": { - "analysis": "Analyse erforderlich", - "comment": "Kommentare", - "hint": "Nut Hinweise", - "image": "Bilder", - "none": "Keine Anmerkungen", - "redaction": "Geschwärzt", - "updated": "Aktualisiert" - }, "filter-menu": { "filter-options": "Filteroptionen", "filter-types": "Filter", @@ -1553,6 +1544,15 @@ "unseen-pages": "Nur Anmerkungen auf unsichtbaren Seiten", "with-comments": "Nur Anmerkungen mit Kommentaren" }, + "filter": { + "analysis": "Analyse erforderlich", + "comment": "Kommentare", + "hint": "Nut Hinweise", + "image": "Bilder", + "none": "Keine Anmerkungen", + "redaction": "Geschwärzt", + "updated": "Aktualisiert" + }, "filters": { "assigned-people": "Beauftragt", "documents-status": "Documents state", @@ -1823,13 +1823,6 @@ "user-promoted-to-approver": "{user} wurde im Dossier {dossierHref, select, null{{dossierName}} other{{dossierName}}} zum Genehmiger ernannt!", "user-removed-as-dossier-member": "{user} wurde als Mitglied von: {dossierHref, select, null{{dossierName}} other{{dossierName}}} entfernt!" }, - "notifications": { - "button-text": "Notifications", - "deleted-dossier": "Deleted dossier", - "label": "Benachrichtigungen", - "mark-all-as-read": "Alle als gelesen markieren", - "mark-as": "Mark as {type, select, read{read} unread{unread} other{}}" - }, "notifications-screen": { "category": { "email-notifications": "E-Mail Benachrichtigungen", @@ -1843,6 +1836,7 @@ "dossier": "Dossierbezogene Benachrichtigungen", "other": "Andere Benachrichtigungen" }, + "options-title": "Wählen Sie aus, in welcher Kategorie Sie benachrichtigt werden möchten", "options": { "ASSIGN_APPROVER": "Wenn ich einem Dokument als Genehmiger zugewiesen bin", "ASSIGN_REVIEWER": "Wenn ich einem Dokument als Überprüfer zugewiesen bin", @@ -1860,7 +1854,6 @@ "USER_PROMOTED_TO_APPROVER": "Wenn ich Genehmiger in einem Dossier werde", "USER_REMOVED_AS_DOSSIER_MEMBER": "Wenn ich die Dossier-Mitgliedschaft verliere" }, - "options-title": "Wählen Sie aus, in welcher Kategorie Sie benachrichtigt werden möchten", "schedule": { "daily": "Tägliche Zusammenfassung", "instant": "Sofortig", @@ -1868,6 +1861,13 @@ }, "title": "Benachrichtigungseinstellungen" }, + "notifications": { + "button-text": "Notifications", + "deleted-dossier": "Deleted dossier", + "label": "Benachrichtigungen", + "mark-all-as-read": "Alle als gelesen markieren", + "mark-as": "Mark as {type, select, read{read} unread{unread} other{}}" + }, "ocr": { "confirmation-dialog": { "cancel": "Cancel", @@ -1959,16 +1959,16 @@ "warnings-subtitle": "Do not show again options", "warnings-title": "Prompts and dialogs settings" }, - "processing": { - "basic": "Processing", - "ocr": "OCR" - }, "processing-status": { "ocr": "OCR", "pending": "Pending", "processed": "processed", "processing": "Processing" }, + "processing": { + "basic": "Processing", + "ocr": "OCR" + }, "readonly": "Lesemodus", "readonly-archived": "Read only (archived)", "redact-text": { @@ -1997,7 +1997,8 @@ "reason-placeholder": "Select a reason...", "revert-text": "Revert to selected text", "type": "Type", - "type-placeholder": "Select type..." + "type-placeholder": "Select type...", + "unchanged": "" }, "title": "Redact text" } @@ -2191,12 +2192,6 @@ "red-user-admin": "Benutzer-Admin", "regular": "Regulär" }, - "search": { - "active-dossiers": "ganze Plattform", - "all-dossiers": "all documents", - "placeholder": "Nach Dokumenten oder Dokumenteninhalt suchen", - "this-dossier": "in diesem Dossier" - }, "search-screen": { "cols": { "assignee": "Bevollmächtigter", @@ -2220,6 +2215,12 @@ "no-match": "Keine Dokumente entsprechen Ihren aktuellen Filtern.", "table-header": "{length} {length, plural, one{Suchergebnis} other{Suchergebnisse}}" }, + "search": { + "active-dossiers": "ganze Plattform", + "all-dossiers": "all documents", + "placeholder": "Nach Dokumenten oder Dokumenteninhalt suchen", + "this-dossier": "in diesem Dossier" + }, "seconds": "seconds", "size": "Size", "smtp-auth-config": { @@ -2471,4 +2472,4 @@ } }, "yesterday": "Gestern" -} \ No newline at end of file +} diff --git a/apps/red-ui/src/assets/i18n/redact/en.json b/apps/red-ui/src/assets/i18n/redact/en.json index e7c3c52b7..ad06b67ad 100644 --- a/apps/red-ui/src/assets/i18n/redact/en.json +++ b/apps/red-ui/src/assets/i18n/redact/en.json @@ -1997,7 +1997,8 @@ "reason-placeholder": "Select a reason...", "revert-text": "Revert to selected text", "type": "Type", - "type-placeholder": "Select type..." + "type-placeholder": "Select type...", + "unchanged": "Unchanged" }, "title": "Redact text" } @@ -2471,4 +2472,4 @@ } }, "yesterday": "Yesterday" -} \ No newline at end of file +} diff --git a/apps/red-ui/src/assets/i18n/scm/de.json b/apps/red-ui/src/assets/i18n/scm/de.json index 3bad970b2..7944c9516 100644 --- a/apps/red-ui/src/assets/i18n/scm/de.json +++ b/apps/red-ui/src/assets/i18n/scm/de.json @@ -250,9 +250,6 @@ "watermarks": "Watermarks" }, "analysis-disabled": "Analysis disabled", - "annotation": { - "pending": "(Pending analysis)" - }, "annotation-actions": { "accept-recommendation": { "label": "Empfehlung annehmen" @@ -307,14 +304,14 @@ "error": "Rekategorisierung des Bildes gescheitert: {error}", "success": "Bild wurde einer neuen Kategorie zugeordnet." }, - "remove": { - "error": "Fehler beim Entfernen der Schwärzung: {error}", - "success": "Schwärzung entfernt!" - }, "remove-hint": { "error": "Failed to remove hint: {error}", "success": "Hint removed!" }, + "remove": { + "error": "Fehler beim Entfernen der Schwärzung: {error}", + "success": "Schwärzung entfernt!" + }, "undo": { "error": "Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error}", "success": "erfolgreich Rückgängig gemacht" @@ -327,15 +324,15 @@ "remove-highlights": { "label": "Remove selected earmarks" }, - "resize": { - "label": "Größe ändern" - }, "resize-accept": { "label": "Größe speichern" }, "resize-cancel": { "label": "Größenänderung abbrechen" }, + "resize": { + "label": "Größe ändern" + }, "see-references": { "label": "See references" }, @@ -367,6 +364,9 @@ "skipped": "Übersprungen", "text-highlight": "Earmark" }, + "annotation": { + "pending": "(Pending analysis)" + }, "archived-dossiers-listing": { "no-data": { "title": "No archived dossiers." @@ -572,18 +572,14 @@ "warning": "Achtung: Diese Aktion kann nicht rückgängig gemacht werden!" }, "confirmation-dialog": { - "approve-file": { - "question": "Dieses Dokument enthält ungesehene Änderungen. Möchten Sie es trotzdem genehmigen?", - "title": "Warnung!" - }, "approve-file-without-analysis": { "confirmationText": "Approve without analysis", "denyText": "Cancel", "question": "Analysis required to detect new components.", "title": "Warning!" }, - "approve-multiple-files": { - "question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen. Möchten Sie sie trotzdem genehmigen?", + "approve-file": { + "question": "Dieses Dokument enthält ungesehene Änderungen. Möchten Sie es trotzdem genehmigen?", "title": "Warnung!" }, "approve-multiple-files-without-analysis": { @@ -592,6 +588,10 @@ "question": "Analysis required to detect new components for at least one file.", "title": "Warning" }, + "approve-multiple-files": { + "question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen. Möchten Sie sie trotzdem genehmigen?", + "title": "Warnung!" + }, "assign-file-to-me": { "question": { "multiple": "Dieses Dokument wird gerade von einer anderen Person geprüft. Möchten Sie Reviewer werden und sich selbst dem Dokument zuweisen?", @@ -936,13 +936,13 @@ "recent": "Neu ({hours} h)", "unassigned": "Niemandem zugewiesen" }, - "reanalyse": { - "action": "Datei analysieren" - }, "reanalyse-dossier": { "error": "Die Dateien konnten nicht für eine Reanalyse eingeplant werden. Bitte versuchen Sie es erneut.", "success": "Dateien für Reanalyse vorgesehen." }, + "reanalyse": { + "action": "Datei analysieren" + }, "start-auto-analysis": "Enable auto-analysis", "stop-auto-analysis": "Stop auto-analysis", "table-col-names": { @@ -1011,14 +1011,6 @@ "total-documents": "Anzahl der Dokumente", "total-people": "{count} {count, plural, one{user} other {users}}" }, - "dossier-templates": { - "label": "Dossier-Vorlagen", - "status": { - "active": "Active", - "inactive": "Inactive", - "incomplete": "Incomplete" - } - }, "dossier-templates-listing": { "action": { "clone": "Clone template", @@ -1054,6 +1046,14 @@ "title": "{length} dossier {length, plural, one{template} other{templates}}" } }, + "dossier-templates": { + "label": "Dossier-Vorlagen", + "status": { + "active": "Active", + "inactive": "Inactive", + "incomplete": "Incomplete" + } + }, "dossier-watermark-selector": { "heading": "Watermarks on documents", "no-watermark": "There is no watermark defined for the dossier template.
Contact your app admin to define one.", @@ -1248,15 +1248,6 @@ "title": "{length} {length, plural, one{entity} other{entities}}" } }, - "entity": { - "info": { - "actions": { - "revert": "Revert", - "save": "Save changes" - }, - "heading": "Edit entity" - } - }, "entity-rules-screen": { "error": { "generic": "Something went wrong... Entity rules update failed!" @@ -1271,19 +1262,28 @@ "warning-text": "Warning: experimental feature!", "warnings-found": "{warnings, plural, one{A warning} other{{warnings} warnings}} found in rules" }, + "entity": { + "info": { + "actions": { + "revert": "Revert", + "save": "Save changes" + }, + "heading": "Edit entity" + } + }, "error": { "deleted-entity": { "dossier": { "action": "Zurück zur Übersicht", "label": "Dieses Dossier wurde gelöscht!" }, - "file": { - "action": "Zurück zum Dossier", - "label": "Diese Datei wurde gelöscht!" - }, "file-dossier": { "action": "Zurück zur Übersicht", "label": "Das Dossier dieser Datei wurde gelöscht!" + }, + "file": { + "action": "Zurück zum Dossier", + "label": "Diese Datei wurde gelöscht!" } }, "file-preview": { @@ -1301,12 +1301,6 @@ }, "exact-date": "{day} {month} {year} um {hour}:{minute} Uhr", "file": "Datei", - "file-attribute": { - "update": { - "error": "Failed to update file attribute value!", - "success": "File attribute value has been updated successfully!" - } - }, "file-attribute-encoding-types": { "ascii": "ASCII", "iso": "ISO-8859-1", @@ -1317,6 +1311,12 @@ "number": "Nummer", "text": "Freier Text" }, + "file-attribute": { + "update": { + "error": "Failed to update file attribute value!", + "success": "File attribute value has been updated successfully!" + } + }, "file-attributes-configurations": { "cancel": "Cancel", "form": { @@ -1535,15 +1535,6 @@ "csv": "File attributes were imported successfully from uploaded CSV file." } }, - "filter": { - "analysis": "Analyse erforderlich", - "comment": "Kommentare", - "hint": "Nut Hinweise", - "image": "Bilder", - "none": "Keine Anmerkungen", - "redaction": "Geschwärzt", - "updated": "Aktualisiert" - }, "filter-menu": { "filter-options": "Filteroptionen", "filter-types": "Filter", @@ -1553,6 +1544,15 @@ "unseen-pages": "Nur Anmerkungen auf unsichtbaren Seiten", "with-comments": "Nur Anmerkungen mit Kommentaren" }, + "filter": { + "analysis": "Analyse erforderlich", + "comment": "Kommentare", + "hint": "Nut Hinweise", + "image": "Bilder", + "none": "Keine Anmerkungen", + "redaction": "Geschwärzt", + "updated": "Aktualisiert" + }, "filters": { "assigned-people": "Beauftragt", "documents-status": "Documents state", @@ -1823,13 +1823,6 @@ "user-promoted-to-approver": "{user} wurde im Dossier {dossierHref, select, null{{dossierName}} other{{dossierName}}} zum Genehmiger ernannt!", "user-removed-as-dossier-member": "{user} wurde als Mitglied von: {dossierHref, select, null{{dossierName}} other{{dossierName}}} entfernt!" }, - "notifications": { - "button-text": "Notifications", - "deleted-dossier": "Deleted dossier", - "label": "Benachrichtigungen", - "mark-all-as-read": "Alle als gelesen markieren", - "mark-as": "Mark as {type, select, read{read} unread{unread} other{}}" - }, "notifications-screen": { "category": { "email-notifications": "E-Mail Benachrichtigungen", @@ -1843,6 +1836,7 @@ "dossier": "Dossierbezogene Benachrichtigungen", "other": "Andere Benachrichtigungen" }, + "options-title": "Wählen Sie aus, in welcher Kategorie Sie benachrichtigt werden möchten", "options": { "ASSIGN_APPROVER": "Wenn ich einem Dokument als Genehmiger zugewiesen bin", "ASSIGN_REVIEWER": "Wenn ich einem Dokument als Überprüfer zugewiesen bin", @@ -1860,7 +1854,6 @@ "USER_PROMOTED_TO_APPROVER": "Wenn ich Genehmiger in einem Dossier werde", "USER_REMOVED_AS_DOSSIER_MEMBER": "Wenn ich die Dossier-Mitgliedschaft verliere" }, - "options-title": "Wählen Sie aus, in welcher Kategorie Sie benachrichtigt werden möchten", "schedule": { "daily": "Tägliche Zusammenfassung", "instant": "Sofortig", @@ -1868,6 +1861,13 @@ }, "title": "Benachrichtigungseinstellungen" }, + "notifications": { + "button-text": "Notifications", + "deleted-dossier": "Deleted dossier", + "label": "Benachrichtigungen", + "mark-all-as-read": "Alle als gelesen markieren", + "mark-as": "Mark as {type, select, read{read} unread{unread} other{}}" + }, "ocr": { "confirmation-dialog": { "cancel": "Cancel", @@ -1959,16 +1959,16 @@ "warnings-subtitle": "Do not show again options", "warnings-title": "Prompts and dialogs settings" }, - "processing": { - "basic": "Processing", - "ocr": "OCR" - }, "processing-status": { "ocr": "OCR", "pending": "Pending", "processed": "Processed", "processing": "Processing" }, + "processing": { + "basic": "Processing", + "ocr": "OCR" + }, "readonly": "Lesemodus", "readonly-archived": "Read only (archived)", "redact-text": { @@ -1997,7 +1997,8 @@ "reason-placeholder": "Select a reasons...", "revert-text": "", "type": "Type", - "type-placeholder": "Select type..." + "type-placeholder": "Select type...", + "unchanged": "" }, "title": "Redact text" } @@ -2191,12 +2192,6 @@ "red-user-admin": "Benutzer-Admin", "regular": "Regulär" }, - "search": { - "active-dossiers": "ganze Plattform", - "all-dossiers": "all documents", - "placeholder": "Nach Dokumenten oder Dokumenteninhalt suchen", - "this-dossier": "in diesem Dossier" - }, "search-screen": { "cols": { "assignee": "Bevollmächtigter", @@ -2220,6 +2215,12 @@ "no-match": "Keine Dokumente entsprechen Ihren aktuellen Filtern.", "table-header": "{length} search {length, plural, one{result} other{results}}" }, + "search": { + "active-dossiers": "ganze Plattform", + "all-dossiers": "all documents", + "placeholder": "Nach Dokumenten oder Dokumenteninhalt suchen", + "this-dossier": "in diesem Dossier" + }, "seconds": "seconds", "size": "Size", "smtp-auth-config": { @@ -2471,4 +2472,4 @@ } }, "yesterday": "Gestern" -} \ No newline at end of file +} diff --git a/apps/red-ui/src/assets/i18n/scm/en.json b/apps/red-ui/src/assets/i18n/scm/en.json index b3dc50850..a783b5bf1 100644 --- a/apps/red-ui/src/assets/i18n/scm/en.json +++ b/apps/red-ui/src/assets/i18n/scm/en.json @@ -1997,7 +1997,8 @@ "reason-placeholder": "Select a reasons...", "revert-text": "", "type": "Type", - "type-placeholder": "Select type..." + "type-placeholder": "Select type...", + "unchanged": "" }, "title": "Redact text" } @@ -2471,4 +2472,4 @@ } }, "yesterday": "Yesterday" -} \ No newline at end of file +}
+
+ {{ cell.label }}