From dc253b025433e487cb85cf8891b877870b25125f Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Fri, 1 Nov 2024 11:15:09 +0200 Subject: [PATCH] RED-10363: added a toaster error for locked dossier template rules. --- .../guards/dossier-template-exists.guard.ts | 10 ++- .../modules/admin/services/rules.service.ts | 10 ++- apps/red-ui/src/assets/i18n/redact/de.json | 34 ++++--- apps/red-ui/src/assets/i18n/redact/en.json | 30 +++---- apps/red-ui/src/assets/i18n/scm/de.json | 62 ++++++------- apps/red-ui/src/assets/i18n/scm/en.json | 88 +++++++++---------- libs/red-domain/src/lib/shared/rules.ts | 4 + 7 files changed, 126 insertions(+), 112 deletions(-) diff --git a/apps/red-ui/src/app/guards/dossier-template-exists.guard.ts b/apps/red-ui/src/app/guards/dossier-template-exists.guard.ts index 0ad5ad5c3..e555969dd 100644 --- a/apps/red-ui/src/app/guards/dossier-template-exists.guard.ts +++ b/apps/red-ui/src/app/guards/dossier-template-exists.guard.ts @@ -11,7 +11,9 @@ import { DictionaryService } from '@services/entity-services/dictionary.service' import { DefaultColorsService } from '@services/entity-services/default-colors.service'; import { WatermarkService } from '@services/entity-services/watermark.service'; import { FileAttributesService } from '@services/entity-services/file-attributes.service'; -import { getConfig } from '@iqser/common-ui'; +import { getConfig, Toaster } from '@iqser/common-ui'; +import { RulesService } from '../modules/admin/services/rules.service'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; export function templateExistsWhenEnteringAdmin(): CanActivateFn { return async function (route: ActivatedRouteSnapshot): Promise { @@ -50,6 +52,8 @@ export function templateExistsWhenEnteringDossierList(): CanActivateFn { const dictionaryService = inject(DictionaryService); const defaultColorsService = inject(DefaultColorsService); const watermarksService = inject(WatermarkService); + const rulesService = inject(RulesService); + const toaster = inject(Toaster); const isDocumine = getConfig().IS_DOCUMINE; await firstValueFrom(dashboardStatsService.loadForTemplate(dossierTemplateId)); @@ -64,6 +68,10 @@ export function templateExistsWhenEnteringDossierList(): CanActivateFn { await firstValueFrom(fileAttributesService.loadFileAttributesConfig(dossierTemplateId)); await firstValueFrom(dictionaryService.loadDictionaryDataForDossierTemplate(dossierTemplateId)); await firstValueFrom(defaultColorsService.loadForDossierTemplate(dossierTemplateId)); + const rules = await firstValueFrom(rulesService.getFor(dossierTemplateId)); + if (rules.timeoutDetected) { + toaster.error(_('dossier-listing.rules.timeoutError')); + } if (!isDocumine) { await firstValueFrom(watermarksService.loadForDossierTemplate(dossierTemplateId)); } diff --git a/apps/red-ui/src/app/modules/admin/services/rules.service.ts b/apps/red-ui/src/app/modules/admin/services/rules.service.ts index 01b5b0886..bb89c2ad8 100644 --- a/apps/red-ui/src/app/modules/admin/services/rules.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/rules.service.ts @@ -1,8 +1,10 @@ import { Injectable } from '@angular/core'; -import { GenericService } from '@iqser/common-ui'; +import { GenericService, QueryParam } from '@iqser/common-ui'; import { IRules } from '@red/domain'; +import { Observable } from 'rxjs'; +import { List } from '@common-ui/utils'; -@Injectable() +@Injectable({ providedIn: 'root' }) export class RulesService extends GenericService { protected readonly _defaultModelPath = 'rules'; @@ -13,4 +15,8 @@ export class RulesService extends GenericService { uploadRules(body: IRules) { return this._post({ ...body, ruleFileType: body.ruleFileType ?? 'ENTITY' }); } + + getFor(entityId: string, queryParams?: List): Observable { + return super.getFor(entityId, queryParams); + } } diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json index 39f96ad50..165d3e521 100644 --- a/apps/red-ui/src/assets/i18n/redact/de.json +++ b/apps/red-ui/src/assets/i18n/redact/de.json @@ -108,15 +108,12 @@ "file": "Mapping-Datei", "name": "Mapping-Name", "name-placeholder": "Mapping-Name", - "quote-char": "Quotation marker", + "quote-char": "Anführungszeichen", "quote-char-placeholder": "\"", "version": "Version" } }, "add-edit-dossier-attribute": { - "error": { - "generic": "Speichern des Attributs fehlgeschlagen." - }, "form": { "label": "Name des Attributs", "label-placeholder": "Namen eingeben", @@ -140,6 +137,9 @@ }, "add-edit-entity": { "form": { + "ai-creation-enabled": "KI-Erstellung aktivieren", + "ai-description": "KI-Beschreibung", + "ai-description-placeholder": "KI-Beschreibung eingeben", "case-sensitive": "Groß-/Kleinschreibung beachten", "color": "Farbe {type, select, redaction{Schwärzung} hint{Hinweis} recommendation{Empfehlung} skipped{Ingorierte Schwärzung} ignored{Ignorierter Hinweis} other{}}", "color-placeholder": "#", @@ -204,10 +204,6 @@ "save": "Benutzer speichern", "save-changes": "Änderungen speichern" }, - "error": { - "email-already-used": "Diese E-Mail-Adresse ist bereits mit einem anderen Benutzer verknüpft.", - "generic": "Speichern des Benutzers fehlgeschlagen." - }, "form": { "account-setup": "Konfiguration des Benutzerkontos", "email": "E-Mail", @@ -711,7 +707,7 @@ "new-dossier": "Neues Dossier" }, "greeting": { - "subtitle": "Hier findest du deine Dossier-Vorlagen im Überblick.", + "subtitle": "Hier finden Sie Ihre Dossier-Vorlagen im Überblick.", "title": "Wilkommen, {name}!" } }, @@ -930,6 +926,9 @@ "reanalyse": { "action": "Ganzes Dossier analysieren" }, + "rules": { + "timeoutError": "Regeln für Dossier-Vorlagen gesperrt!" + }, "stats": { "analyzed-pages": "{count, plural, one{Seite} other{Seiten}}", "total-people": "Benutzer" @@ -1395,8 +1394,8 @@ "generic": "Aktion fehlgeschlagen. Fehlercode: {status}" }, "missing-types": "Dossier-Vorlage unvollständig: Fehlende Typen ({missingTypes}) können zu Anzeigefehlern führen.", - "offline": "Du bist offline", - "online": "Du bist online", + "offline": "Sie sind offline", + "online": "Sie sind online", "reload": "Neu laden", "title": "Ein Fehler ist aufgetreten." }, @@ -1567,8 +1566,8 @@ "select-all": "Alle", "select-none": "Keine", "show-skipped": "Ignorierte im Dokument anzeigen", - "the-filters": "Filter", - "wrong-filters": "Keine Annotationen für die ausgewählte Filterkombination. Bitte ändern Sie die Auswahl oder setzen die Filter zurück." + "the-filters": ".", + "wrong-filters": "Keine Annotationen für die ausgewählte Filterkombination. Bitte ändern Sie die Auswahl oder" }, "document-info": { "close": "Datei-Info schließen", @@ -1625,7 +1624,6 @@ "re-processing": "Erneute Verarbeitung läuft...", "reprocess": "Wird verarbeitet", "table-parsing-analyzing": "Table Parsing", - "unassigned": "Nicht zugewiesen", "under-approval": "In Freigabe", "under-review": "In Überprüfung", "unprocessed": "Unverarbeitet" @@ -1922,7 +1920,7 @@ "notification": { "assign-approver": "Sie wurden einem Dokument als Genehmiger zugewiesen.
Dokument: {fileHref, select, null{{fileName}} other{{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", "assign-reviewer": "Sie wurden einem Dokument als Prüfer zugewiesen.
Dokument: {fileHref, select, null{{fileName}} other{{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", - "document-approved": "{fileHref, select, null{{fileName}} other{{fileName}}} wurde genehmigt!", + "document-approved": "{fileHref, select, null{{fileName}} other{{fileName}}} wurde genehmigt.", "dossier-deleted": "Dossier: {dossierName} wurde gelöscht!", "dossier-owner-deleted": "Der Besitzer des Dossiers wurde gelöscht: {dossierName}", "dossier-owner-removed": "Der Dossier-Besitzer von {dossierHref, select, null{{dossierName}} other{{dossierName}}} wurde entfernt.", @@ -1931,9 +1929,9 @@ "no-data": "Sie haben aktuell keine Benachrichtigungen.", "unassigned-from-file": "Sie wurden von einem Dokument entfernt.
Dokument: {fileHref, select, null{{fileName}} other{{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", "user-becomes-dossier-member": "Sie wurden zu einem Dossier hinzugefügt: {dossierHref, select, null{{dossierName}} other{{dossierName}}}", - "user-demoted-to-reviewer": "{user} wurde im Dossier {dossierHref, select, null{{dossierName}} other{{dossierName}}} auf die Prüfer-Berechtigung heruntergestuft!", - "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!" + "user-demoted-to-reviewer": "Sie wurden auf die Reviewer-Rolle heruntergestuft: \n{dossierHref, select, null{{dossierName}} other{{dossierName}}}", + "user-promoted-to-approver": "Sie wurden zum Genehmiger in einem Dossier ernannt: {dossierHref, select, null{{dossierName}} other{{dossierName}}}", + "user-removed-as-dossier-member": "Sie wurden als Dossier-Mitglied entfernt: \n{dossierHref, select, null{{dossierName}} other\n{{dossierName}}}\n" }, "notifications": { "button-text": "Benachrichtigungen", diff --git a/apps/red-ui/src/assets/i18n/redact/en.json b/apps/red-ui/src/assets/i18n/redact/en.json index 5cd9042f7..484460d8e 100644 --- a/apps/red-ui/src/assets/i18n/redact/en.json +++ b/apps/red-ui/src/assets/i18n/redact/en.json @@ -102,14 +102,14 @@ }, "disabled-file-options": "", "form": { - "quote-char": "Quotation marker", - "quote-char-placeholder": "\"", "delimiter": "", "delimiter-placeholder": "", "encoding-type": "", "file": "Mapping file", "name": "Mapping name", "name-placeholder": "Mapping name", + "quote-char": "Quotation marker", + "quote-char-placeholder": "\"", "version": "Version" } }, @@ -204,10 +204,6 @@ "save": "Save user", "save-changes": "Save changes" }, - "error": { - "email-already-used": "This e-mail address is already associated with another user.", - "generic": "Failed to save user." - }, "form": { "account-setup": "User account setup", "email": "E-mail", @@ -930,6 +926,9 @@ "reanalyse": { "action": "Analyze entire dossier" }, + "rules": { + "timeoutError": "Dossier template rules locked!" + }, "stats": { "analyzed-pages": "{count, plural, one{Page} other{Pages}}", "total-people": "Total users" @@ -1462,7 +1461,7 @@ "save": { "error": "Failed to create file attributes.", "label": "Save attributes", - "success": "{count} file {count, plural, one{attribute} other{attributes}} created successfully!" + "success": "{count} file {count, plural, one{attribute} other{attributes}} created successfully." }, "search": { "placeholder": "Search by column name..." @@ -1568,7 +1567,7 @@ "select-none": "None", "show-skipped": "Show skipped in document", "the-filters": "the filters", - "wrong-filters": "No annotations for the selected filter combination. Please adjust or or reset the filters" + "wrong-filters": "No annotations for the selected filter combination. Please adjust or" }, "document-info": { "close": "Close document info", @@ -1625,7 +1624,6 @@ "re-processing": "Reprocessing...", "reprocess": "Processing", "table-parsing-analyzing": "Table parsing", - "unassigned": "Unassigned", "under-approval": "Under approval", "under-review": "Under review", "unprocessed": "Unprocessed" @@ -1774,7 +1772,7 @@ "save": "Remove Earmarks", "title": "Remove earmarks" }, - "success": "{operation, select, convert{Converting earmarks in progress...} delete{Successfully removed earmarks!} other{}} " + "success": "{operation, select, convert{Converting earmarks in progress...} delete{Successfully removed earmarks.} other{}} " }, "highlights": "{color} - {length} {length, plural, one{earmark} other{earmarks}}", "image-category": { @@ -1922,18 +1920,18 @@ "notification": { "assign-approver": "You have been assigned as approver for a document.
Document: {fileHref, select, null{{fileName}} other{{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", "assign-reviewer": "You have been assigned as reviewer for a document.
Document: {fileHref, select, null{{fileName}} other{{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", - "document-approved": " {fileHref, select, null{{fileName}} other{{fileName}}} has been approved!", - "dossier-deleted": "Dossier: {dossierName} has been deleted!", - "dossier-owner-deleted": "The owner of dossier: {dossierName} has been deleted!", - "dossier-owner-removed": "You have been removed as dossier owner from {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", + "document-approved": " {fileHref, select, null{{fileName}} other{{fileName}}} has been approved.", + "dossier-deleted": "Dossier has been deleted: {dossierName}", + "dossier-owner-deleted": "The dossier owner has been deleted: {dossierName}", + "dossier-owner-removed": "You have been removed as dossier owner: {dossierHref, select, null{{dossierName}} other{{dossierName}}}\n\n", "dossier-owner-set": "You are now the dossier owner of {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", "download-ready": "Your download is ready!", "no-data": "You currently have no notifications.", "unassigned-from-file": "You have been unassigned from a document.
Document: {fileHref, select, null{{fileName}} other{{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", "user-becomes-dossier-member": "You have been added to a dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}", "user-demoted-to-reviewer": "You have been demoted to reviewer in dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}", - "user-promoted-to-approver": "You have been promoted to approver in dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", - "user-removed-as-dossier-member": "You have been removed as a member from dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!" + "user-promoted-to-approver": "You have been promoted to approver in a dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}", + "user-removed-as-dossier-member": "You have been removed as a member from a dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}" }, "notifications-screen": { "category": { diff --git a/apps/red-ui/src/assets/i18n/scm/de.json b/apps/red-ui/src/assets/i18n/scm/de.json index 9f78185b8..2518f65eb 100644 --- a/apps/red-ui/src/assets/i18n/scm/de.json +++ b/apps/red-ui/src/assets/i18n/scm/de.json @@ -108,6 +108,8 @@ "file": "Mapping-Datei (.csv)", "name": "Name des Mappings", "name-placeholder": "Name des Mappings", + "quote-char": "", + "quote-char-placeholder": "", "version": "Version" } }, @@ -202,10 +204,6 @@ "save": "Benutzer speichern", "save-changes": "Änderungen speichern" }, - "error": { - "email-already-used": "Diese E-Mail-Adresse ist bereits mit einem anderen Benutzer verknüpft.", - "generic": "Speichern des Benutzers fehlgeschlagen." - }, "form": { "account-setup": "Konfiguration des Benutzerkontos", "email": "E-Mail", @@ -583,13 +581,13 @@ }, "component-rules-screen": { "error": { - "generic": "Es ist ein Fehler aufgetreten ... Die Komponentenregeln konnte nicht aktualisiert werden!" + "generic": "Es ist ein Fehler aufgetreten ... Die Komponentenregeln konnte nicht aktualisiert werden." }, "errors-found": "{errors, plural, one{An error}andere{{errors} Fehler}} in den Regeln gefunden", "revert-changes": "Zurücksetzen", "save-changes": "Änderungen speichern", "success": { - "generic": "Komponentenregeln aktualisiert!" + "generic": "Komponentenregeln aktualisiert." }, "title": "Komponentenregeln-Editor" }, @@ -709,7 +707,7 @@ "new-dossier": "Neues Dossier" }, "greeting": { - "subtitle": "Hier findest du deine Dossier-Vorlagen im Überblick.", + "subtitle": "Hier finden Sie Ihre Dossier-Vorlagen im Überblick.", "title": "Wilkommen, {name}!" } }, @@ -765,7 +763,7 @@ "compare": "Vergleichen", "select-dictionary": "Wörterbuch auswählen", "select-dossier": "Dossier auswählen", - "select-dossier-template": "Dossiervorlage auswählen" + "select-dossier-template": "Dossier-Vorlage auswählen" }, "download": "Aktuelle Einträge herunterladen", "error": { @@ -777,7 +775,7 @@ "search": "Suche ...", "select-dictionary": "Wählen Sie oben ein Wörterbuch für den Vergleich aus.", "success": { - "generic": "Wörterbuch wurde aktualisiert" + "generic": "Wörterbuch wurde aktualisiert." } }, "digital-signature": "Digitale Signatur", @@ -886,8 +884,8 @@ "assign-members": "Mitglieder zuweisen", "collapse": "Details ausblenden", "document-status": "Verarbeitungsstatus der Dokumente", - "edit-owner": "Eigentümer bearbeiten", - "expand": "Details zeigen", + "edit-owner": "Besitzer bearbeiten", + "expand": "Details anzeigen", "members": "Mitglieder", "owner": "Besitzer", "see-less": "Weniger anzeigen", @@ -928,6 +926,9 @@ "reanalyse": { "action": "Ganzes Dossier analysieren" }, + "rules": { + "timeoutError": "Regeln für Dossier-Vorlagen gesperrt!" + }, "stats": { "analyzed-pages": "{count, plural, one{Seite} other{Seiten}}", "total-people": "Anzahl der Benutzer" @@ -947,7 +948,7 @@ "dossier-overview": { "approve": "Genehmigen", "approve-disabled": "Sie können die Datei erst freigeben, wenn sie auf Basis der aktuellen Wörterbücher analysiert wurde.", - "assign-approver": "Genehmiger zuordnen", + "assign-approver": "Genehmiger zuweisen", "assign-me": "Mir zuweisen", "assign-reviewer": "Benutzer zuweisen", "back-to-new": "Nach \"Neu\" verschieben", @@ -1012,7 +1013,7 @@ "no-match": { "title": "Die ausgewählten Filter treffen auf kein Dokument zu." }, - "ocr-file": "OCR-Dokument", + "ocr-file": "OCR durchführen", "ocr-performed": "Diese Datei wurde mithilfe von OCR konvertiert.", "quick-filters": { "assigned-to-me": "Mir zuweisen", @@ -1042,8 +1043,8 @@ "table-header": { "title": "{length} {length, plural, one{Dokument} other{Dokumente}}" }, - "under-approval": "Zur Genehmigung", - "under-review": "In Review", + "under-approval": "In Freigabe", + "under-review": "In Überprüfung", "upload-files": "Sie können Dateien überall per Drag and Drop platzieren..." }, "dossier-permissions": "Dossier-Rechte", @@ -1115,8 +1116,8 @@ }, "entities": "{length} {length, plural, one{Entität} other{Entitäten}}", "error": { - "conflict": "Dieses DossierTemplate kann nicht gelöscht werden! Zumindest auf Dossier wird diese Vorlage verwendet!", - "generic": "Dieses DossierTemplate kann nicht gelöscht werden!" + "conflict": "Löschen verweigert: Diese Dossier-Vorlage wird von mindestens einem Dossier verwendet und kann nicht gelöscht werden.", + "generic": "Das Löschen dieser Dossier-Vorlage ist nicht möglich." }, "no-data": { "title": "Es gibt noch keine Dossier-Vorlagen." @@ -1162,7 +1163,7 @@ "download-includes": "Wählen Sie die Dokumente für Ihr Download-Paket aus", "download-status": { "error": "Download-Generierung fehlgeschlagen

Bitte überprüfen Sie die in den Download-Optionen ausgewählten Dateien und Einstellungen.", - "queued": "Ihr Download wurde zur Warteschlange hinzugefügt. Hier finden Sie alle angeforderten Downloads: My Downloads." + "queued": "Ihr Download wurde zur Warteschlange hinzugefügt.

Hier finden Sie Ihre generierten Downloads:
Meine Downloads." }, "download-type": { "annotated": "PDF mit Anmerkungen", @@ -1209,7 +1210,7 @@ "actions": { "revert": "Zurücksetzen", "save": "Änderungen speichern", - "save-and-close": "Speichern" + "save-and-close": "Speichern & schließen" }, "attributes": { "custom-attributes": "Benutzerdefinierte Dossier-Attribute", @@ -1374,7 +1375,7 @@ "deleted-entity": { "dossier": { "action": "Zurück zur Übersicht", - "label": "Dieses Dossier wurde gelöscht!" + "label": "Dieses Dossier wurde gelöscht." }, "file": { "action": "Zurück zum Dossier", @@ -1382,7 +1383,7 @@ }, "file-dossier": { "action": "Zurück zur Übersicht", - "label": "Das Dossier dieser Datei wurde gelöscht!" + "label": "Das Dossier dieser Datei wurde gelöscht." } }, "file-preview": { @@ -1393,8 +1394,8 @@ "generic": "Aktion fehlgeschlagen. Fehlercode: {status}" }, "missing-types": "Dossier-Vorlage unvollständig: Fehlende Typen ({missingTypes}) können zu Anzeigefehlern führen.", - "offline": "Du bist offline", - "online": "Du bist online", + "offline": "Sie sind offline", + "online": "Sie sind online", "reload": "Neu laden", "title": "Ein Fehler ist aufgetreten." }, @@ -1460,7 +1461,7 @@ "save": { "error": "Erstellung der Datei-Attribute fehlgeschlagen.", "label": "Attribute speichern", - "success": "{count} Datei-{count, plural, one{Attribut} other{Attribute}} erfolgreich erstellt!" + "success": "{count} Datei-{count, plural, one{Attribut} other{Attribute}} erfolgreich erstellt." }, "search": { "placeholder": "Nach Spaltennamen suchen ..." @@ -1566,7 +1567,7 @@ "select-none": "Keine", "show-skipped": "Ignorierte im Dokument anzeigen", "the-filters": "Filter", - "wrong-filters": "Keine Annotationen für die ausgewählte Filterkombination. Bitte ändern Sie die Auswahl oder setzen die Filter zurück." + "wrong-filters": "Keine Annotationen für die ausgewählte Filterkombination. Bitte ändern Sie die Auswahl oder" }, "document-info": { "close": "Datei-Info schließen", @@ -1623,7 +1624,6 @@ "re-processing": "Erneute Verarbeitung läuft...", "reprocess": "Wird verarbeitet", "table-parsing-analyzing": "Table Parsing", - "unassigned": "Nicht zugewiesen", "under-approval": "In Freigabe", "under-review": "In Überprüfung", "unprocessed": "Unverarbeitet" @@ -1920,17 +1920,17 @@ "notification": { "assign-approver": "Sie wurden einem Dokument als Genehmiger zugewiesen.
Dokument: {fileHref, select, null{{fileName}} other{
{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", "assign-reviewer": "Sie wurden einem Dokument als Prüfer zugewiesen.
Dokument: {fileHref, select, null{{fileName}} other{{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", - "document-approved": "{fileHref, select, null{{fileName}} other{{fileName}}} wurde genehmigt!", - "dossier-deleted": "Dossier: {dossierName} wurde gelöscht!", + "document-approved": "{fileHref, select, null{{fileName}} other{{fileName}}} wurde genehmigt.", + "dossier-deleted": "Dossier wurde gelöscht: {dossierName}", "dossier-owner-deleted": "Der Besitzer des Dossiers wurde gelöscht: {dossierName}", "dossier-owner-removed": "Der Dossier-Owner von {dossierHref, select, null{{dossierName}} other{{dossierName}}} wurde entfernt!", "dossier-owner-set": "Sie sind jetzt Besitzer des Dossiers {dossierHref, select, null{{dossierName}} other{{dossierName}}}.", "download-ready": "Ihr Download steht bereit.", - "no-data": "Du hast aktuell keine Benachrichtigungen", + "no-data": "Sie haben aktuell keine Benachrichtigungen", "unassigned-from-file": "Sie wurden von einem Dokument entfernt.
Dokument: {fileHref, select, null{{fileName}} other{{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", "user-becomes-dossier-member": "{user} ist jetzt Mitglied des Dossiers {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", - "user-demoted-to-reviewer": "{user} wurde im Dossier {dossierHref, select, null{{dossierName}} other{{dossierName}}} auf die Reviewer-Berechtigung heruntergestuft!", - "user-promoted-to-approver": "{user} wurde im Dossier {dossierHref, select, null{{dossierName}} other{{dossierName}}} zum Genehmiger ernannt!", + "user-demoted-to-reviewer": "Sie wurden auf die Reviewer-Rolle heruntergestuft: {dossierHref, select, null{{dossierName}}\n other{{dossierName}}}", + "user-promoted-to-approver": "Sie wurden in einem Dossier zum Genehmiger ernannt: {dossierHref, select, null{{dossierName}} other{{dossierName}}}", "user-removed-as-dossier-member": "{user} wurde als Mitglied von: {dossierHref, select, null{{dossierName}} other{{dossierName}}} entfernt!" }, "notifications": { diff --git a/apps/red-ui/src/assets/i18n/scm/en.json b/apps/red-ui/src/assets/i18n/scm/en.json index eb741958e..073487259 100644 --- a/apps/red-ui/src/assets/i18n/scm/en.json +++ b/apps/red-ui/src/assets/i18n/scm/en.json @@ -108,6 +108,8 @@ "file": "Mapping file (.csv)", "name": "Mapping name", "name-placeholder": "Mapping name", + "quote-char": "", + "quote-char-placeholder": "", "version": "Version" } }, @@ -130,7 +132,7 @@ "rank": "Rank" }, "save": "Save state", - "success": "Successfully {type, select, edit{updated} create{created} other{}} the dossier state!", + "success": "Successfully {type, select, edit{updated} create{created} other{}} the dossier state.", "title": "{type, select, edit{Edit {name}} create{Create} other{}} dossier state" }, "add-edit-entity": { @@ -202,10 +204,6 @@ "save": "Save user", "save-changes": "Save changes" }, - "error": { - "email-already-used": "This e-mail address is already in use by a different user!", - "generic": "Failed to save user." - }, "form": { "account-setup": "User account setup", "email": "E-mail", @@ -583,13 +581,13 @@ }, "component-rules-screen": { "error": { - "generic": "Something went wrong... Component rules update failed!" + "generic": "Something went wrong... Component rules update failed." }, "errors-found": "{errors, plural, one{An error} other{{errors} errors}} found in rules", "revert-changes": "Revert", "save-changes": "Save changes", "success": { - "generic": "Component rules updated!" + "generic": "Component rules updated." }, "title": "Component rule editor" }, @@ -615,7 +613,7 @@ "impacted-report": "{reportsCount} reports currently use the placeholder for this attribute. Please update them.", "title": "Delete {count, plural, one{{name}} other{file attributes}}", "toast-error": "Please confirm that you understand the consequences of this action.", - "warning": "Warning: This action cannot be undone!" + "warning": "Warning: this action cannot be undone!" }, "confirm-delete-dossier-state": { "cancel": "Cancel", @@ -626,7 +624,7 @@ "state-placeholder": "Select another state" }, "question": "Select another state to replace the current {count, plural, one{dossier} other{dossier}} state", - "success": "Successfully deleted state!", + "success": "Successfully deleted state", "title": "Delete dossier state", "warning": "The {name} state is assigned to {count} {count, plural, one{dossier} other{dossiers}}." }, @@ -637,7 +635,7 @@ "impacted-dossiers": "{dossiersCount} {dossiersCount, plural, one{dossier} other{dossiers}} will be impacted", "title": "Delete {usersCount, plural, one{user} other{users}} from workspace", "toast-error": "Please confirm that you understand the consequences of this action.", - "warning": "Warning: this cannot be undone!" + "warning": "Warning: this action cannot be undone!" }, "confirmation-dialog": { "approve-file": { @@ -777,7 +775,7 @@ "search": "Search entries...", "select-dictionary": "Select a dictionary for comparison above.", "success": { - "generic": "Dictionary updated!" + "generic": "Dictionary updated." } }, "digital-signature": "Digital signature", @@ -788,7 +786,7 @@ "certificate-not-valid-error": "Uploaded certificate is invalid.", "continue": "Continue", "save": "Save configurations", - "save-error": "Failed to save digital signature!", + "save-error": "Failed to save digital signature.", "save-success": "Digital signature certificate saved successfully" }, "forms": { @@ -829,10 +827,10 @@ "digital-signature-screen": { "action": { "delete-error": "Failed to remove digital signature, please try again.", - "delete-success": "Digital signature removed. Files will no longer be signed!", + "delete-success": "Digital signature removed. Files will no longer be signed.", "remove": "Remove", "save": "Save changes", - "save-error": "Failed to save digital signature!", + "save-error": "Failed to save digital signature.", "save-success": "No digital signature certificate available.
Please configure a certificate to sign redacted documents." }, "no-data": { @@ -928,6 +926,9 @@ "reanalyse": { "action": "Analyze entire dossier" }, + "rules": { + "timeoutError": "Dossier template rules locked!" + }, "stats": { "analyzed-pages": "{count, plural, one{Page} other{Pages}}", "total-people": "Total users" @@ -1107,8 +1108,8 @@ }, "entities": "{length} {length, plural, one{entity} other{entities}}", "error": { - "conflict": "Cannot delete this dossier template! At least one dossier uses this template!", - "generic": "Cannot delete this dossier template!" + "conflict": "Deletion denied: This dossier template is used by at least one dossier and cannot be deleted.", + "generic": "Cannot delete this dossier template." }, "no-data": { "title": "There are no dossier templates yet." @@ -1162,7 +1163,7 @@ "download-includes": "Choose what is included at download:", "download-status": { "error": "Download generation failed

Please check the selected files and download option settings.", - "queued": "Your download has been queued, you can find all your requested downloads here: My downloads." + "queued": "Your download has been added to the queue.

To see your requested downloads, visit:
My downloads." }, "download-type": { "annotated": "Annotated PDF", @@ -1374,15 +1375,15 @@ "deleted-entity": { "dossier": { "action": "Back to overview", - "label": "This dossier has been deleted!" + "label": "This dossier has been deleted." }, "file-dossier": { "action": "Back to overview", - "label": "The dossier of this file has been deleted!" + "label": "The dossier of this file has been deleted." }, "file": { "action": "Back to dossier", - "label": "This file has been deleted!" + "label": "This file has been deleted." } }, "file-preview": { @@ -1396,7 +1397,7 @@ "offline": "Disconnected", "online": "Reconnected", "reload": "Reload", - "title": "Oops! Something went wrong..." + "title": "An error ocurred." }, "exact-date": "{day} {month} {year} at {hour}:{minute}", "file": "File", @@ -1413,7 +1414,7 @@ "file-attribute": { "update": { "error": "Update of file attribute value failed. Please try again.", - "success": "File attribute value has been updated successfully!" + "success": "File attribute value has been updated successfully." } }, "file-attributes-configurations": { @@ -1427,8 +1428,8 @@ "save": "Save configurations", "title": "Configurations", "update": { - "error": "Failed to update the configuration!", - "success": "Configuration has been updated successfully!" + "error": "Failed to update the configuration.", + "success": "Configuration has been updated successfully." } }, "file-attributes-csv-import": { @@ -1460,7 +1461,7 @@ "save": { "error": "Failed to create file attributes.", "label": "Save attributes", - "success": "{count} file {count, plural, one{attribute} other{attributes}} created successfully!" + "success": "{count} file {count, plural, one{attribute} other{attributes}} created successfully." }, "search": { "placeholder": "Search by column name..." @@ -1623,7 +1624,6 @@ "re-processing": "Re-processing...", "reprocess": "Processing", "table-parsing-analyzing": "Table parsing", - "unassigned": "Unassigned", "under-approval": "Under approval", "under-review": "In progress", "unprocessed": "Unprocessed" @@ -1713,7 +1713,7 @@ }, "test": { "error": "Test e-mail could not be sent. Please double-check the email address.", - "success": "Test e-mail was sent successfully!", + "success": "Test e-mail was sent successfully.", "warning": "Admin mail address not set. Test email sent to {recipientEmail} instead." }, "title": "Configure SMTP Account" @@ -1772,7 +1772,7 @@ "save": "Remove earmarks", "title": "Remove earmarks" }, - "success": "{operation, select, convert{Converting earmarks in progress...} delete{Successfully removed earmarks!} other{}} " + "success": "{operation, select, convert{Converting earmarks in progress...} delete{Successfully removed earmarks.} other{}} " }, "highlights": "{color} - {length} {length, plural, one{earmark} other{earmarks}}", "image-category": { @@ -1788,8 +1788,8 @@ }, "details": "To apply annotations from another document, you first need to upload it.", "http": { - "error": "Failed to import components! {error}", - "success": "Annotations have been imported!" + "error": "Failed to import components: {error}", + "success": "Annotations have been imported." }, "import-only-for-pages": "Import only for pages", "range": { @@ -1920,18 +1920,18 @@ "notification": { "assign-approver": "You have been assigned as approver for a document.
Document: {fileHref, select, null{{fileName}} other{
{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", "assign-reviewer": "You have been assigned as reviewer for a document.
Document: {fileHref, select, null{{fileName}} other{{fileName}}}
\nDossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", - "document-approved": " {fileHref, select, null{{fileName}} other{{fileName}}} has been moved to Done!", - "dossier-deleted": "Dossier: {dossierName} has been deleted!", - "dossier-owner-deleted": "The owner of dossier: {dossierName} has been deleted!", - "dossier-owner-removed": "You have been removed as dossier owner from {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", - "dossier-owner-set": "You are now the dossier owner of {dossierHref, select, null{{dossierName}} other\n{{dossierName}}}!", + "document-approved": " {fileHref, select, null{{fileName}} other{{fileName}}} has been moved to Done.", + "dossier-deleted": "Dossier: {dossierName} has been deleted.", + "dossier-owner-deleted": "The dossier owner has been deleted: {dossierName}", + "dossier-owner-removed": "You have been removed as dossier owner: {dossierHref, select, null{{dossierName}} other{{dossierName}}}", + "dossier-owner-set": "You are now the dossier owner of {dossierHref, select, null{{dossierName}} other\n{{dossierName}}}.", "download-ready": "Your download is ready!", "no-data": "You currently have no notifications", "unassigned-from-file": "You have been unassigned from a document.
Document: {fileHref, select, null{{fileName}} other{{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}\n}}}}", - "user-becomes-dossier-member": "You have been added to dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", - "user-demoted-to-reviewer": "You have been demoted to reviewer in dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", - "user-promoted-to-approver": "You have been promoted to approver in dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", - "user-removed-as-dossier-member": "You have been removed as a member from dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!" + "user-becomes-dossier-member": "You have been added to a dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}", + "user-demoted-to-reviewer": "You have been demoted to reviewer in a dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}", + "user-promoted-to-approver": "You have been promoted to approver in a dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}", + "user-removed-as-dossier-member": "You have been removed as a member from dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}" }, "notifications-screen": { "category": { @@ -1939,7 +1939,7 @@ "in-app-notifications": "In-app notifications" }, "error": { - "generic": "Something went wrong... Preferences update failed!" + "generic": "Something went wrong... Preferences update failed." }, "groups": { "document": "Document related notifications", @@ -1989,7 +1989,7 @@ "archive-question": "Dossier already contains files. Files might overlap with the contents of the folder you are uploading. Select how to handle duplicates:", "archive-title": "Uploading a ZIP archive", "file-question": "{filename} already exists. Choose how to proceed:", - "file-title": "File already exists!", + "file-title": "File already exists.", "options": { "all-files": "Apply to all files of current upload", "cancel": "Cancel upload", @@ -2283,7 +2283,7 @@ } } }, - "invalid-upload": "Invalid format selected for Upload! Supported formats are XLSX and DOCX", + "invalid-upload": "Invalid upload format selected. Supported formats: XLSX and DOCX", "multi-file-report": "(Multi-file)", "report-documents": "Report documents", "setup": "Click the upload button on the right to upload your component report templates.", @@ -2499,7 +2499,7 @@ "overwrite": "Overwrite" }, "question": "Choose how you want to proceed:", - "title": "The dictionary already has entries!" + "title": "The dictionary already has entries." }, "upload-file": { "upload-area-text": "Click or drag & drop anywhere on this area..." @@ -2622,7 +2622,7 @@ "watermarks-listing": { "action": { "delete": "Delete", - "delete-success": "Watermark has been deleted!", + "delete-success": "Watermark has been deleted.", "edit": "Edit" }, "add-new": "New watermark", diff --git a/libs/red-domain/src/lib/shared/rules.ts b/libs/red-domain/src/lib/shared/rules.ts index f6667e65b..5a8316b1b 100644 --- a/libs/red-domain/src/lib/shared/rules.ts +++ b/libs/red-domain/src/lib/shared/rules.ts @@ -18,4 +18,8 @@ export interface IRules { * Request param for rules validation, without updating them */ dryRun?: boolean; + /** + * Flag which indicates whether the dossier template rules have been locked due to a timeout + */ + timeoutDetected?: boolean; }