From 37b692c260aca79e55925d72429a66108a114f28 Mon Sep 17 00:00:00 2001 From: Valentin Mihai Date: Sun, 4 Aug 2024 13:22:37 +0300 Subject: [PATCH] RED-9776 - Consolidate components export and report download in one button --- ...sier-overview-screen-header.component.html | 1 + .../table-item/table-item.component.html | 5 +- .../workflow-item.component.html | 2 + .../workflow-item.component.scss | 1 + .../workflow-item/workflow-item.component.ts | 5 +- .../file-header/file-header.component.html | 1 + .../dossiers-listing-actions.component.html | 1 + .../file-actions/file-actions.component.html | 1 + .../file-actions/file-actions.component.ts | 21 +-- .../file-download-btn.component.html | 7 +- .../file-download-btn.component.ts | 40 ++++- .../expandable-file-actions.component.html | 2 +- .../expandable-file-actions.component.ts | 3 +- .../services/active-listing-entity.service.ts | 13 ++ apps/red-ui/src/assets/i18n/redact/de.json | 152 +++++++++--------- apps/red-ui/src/assets/i18n/redact/en.json | 3 +- apps/red-ui/src/assets/i18n/scm/de.json | 152 +++++++++--------- apps/red-ui/src/assets/i18n/scm/en.json | 5 +- libs/common-ui | 2 +- 19 files changed, 236 insertions(+), 181 deletions(-) create mode 100644 apps/red-ui/src/app/services/active-listing-entity.service.ts diff --git a/apps/red-ui/src/app/modules/dossier-overview/components/screen-header/dossier-overview-screen-header.component.html b/apps/red-ui/src/app/modules/dossier-overview/components/screen-header/dossier-overview-screen-header.component.html index 5bc4fb835..135e63064 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/components/screen-header/dossier-overview-screen-header.component.html +++ b/apps/red-ui/src/app/modules/dossier-overview/components/screen-header/dossier-overview-screen-header.component.html @@ -12,6 +12,7 @@ [disabled]="downloadFilesDisabled$ | async" [dossier]="dossier" [files]="entitiesService.all$ | async" + dossierDownload > @@ -71,6 +71,7 @@ *ngIf="!file.isProcessing" [dossier]="dossier" [file]="file" + [singleEntityAction]="true" class="mr-4" type="dossier-overview-list" > diff --git a/apps/red-ui/src/app/modules/dossier-overview/components/workflow-item/workflow-item.component.html b/apps/red-ui/src/app/modules/dossier-overview/components/workflow-item/workflow-item.component.html index 116ec5100..4610330d1 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/components/workflow-item/workflow-item.component.html +++ b/apps/red-ui/src/app/modules/dossier-overview/components/workflow-item/workflow-item.component.html @@ -1,6 +1,7 @@
@@ -38,6 +39,7 @@ [dossier]="dossier" [file]="file" [maxWidth]="width" + [singleEntityAction]="true" iqserDisableStopPropagation type="dossier-overview-workflow" > diff --git a/apps/red-ui/src/app/modules/dossier-overview/components/workflow-item/workflow-item.component.scss b/apps/red-ui/src/app/modules/dossier-overview/components/workflow-item/workflow-item.component.scss index ef63ba935..cedc4054d 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/components/workflow-item/workflow-item.component.scss +++ b/apps/red-ui/src/app/modules/dossier-overview/components/workflow-item/workflow-item.component.scss @@ -12,6 +12,7 @@ } &:hover, + &.active-entity, &.help-mode-active { redaction-file-actions { display: initial; diff --git a/apps/red-ui/src/app/modules/dossier-overview/components/workflow-item/workflow-item.component.ts b/apps/red-ui/src/app/modules/dossier-overview/components/workflow-item/workflow-item.component.ts index c4ab76e37..9ea7f5466 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/components/workflow-item/workflow-item.component.ts +++ b/apps/red-ui/src/app/modules/dossier-overview/components/workflow-item/workflow-item.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectorRef, Component, ElementRef, Input, OnInit, Optional, ViewChild } from '@angular/core'; +import { ChangeDetectorRef, Component, computed, ElementRef, Input, OnInit, Optional, ViewChild } from '@angular/core'; import { DisableStopPropagationDirective, HelpModeService } from '@iqser/common-ui'; import { Debounce, trackByFactory } from '@iqser/common-ui/lib/utils'; import { Dossier, File, IFileAttributeConfig } from '@red/domain'; @@ -12,6 +12,7 @@ import { FileWorkloadComponent } from '../table-item/file-workload/file-workload import { ProcessingIndicatorComponent } from '@shared/components/processing-indicator/processing-indicator.component'; import { FileActionsComponent } from '../../../shared-dossiers/components/file-actions/file-actions.component'; import { AsyncPipe, NgForOf, NgIf } from '@angular/common'; +import { ActiveListingEntityService } from '@services/active-listing-entity.service'; @Component({ selector: 'redaction-workflow-item', @@ -38,12 +39,14 @@ export class WorkflowItemComponent implements OnInit { @ViewChild('actionsWrapper', { static: true }) private _actionsWrapper: ElementRef; width: number; readonly trackBy = trackByFactory(); + readonly activeEntity = computed(() => this._activeListingEntityService.activeEntity() === this.file?.id); @Input({ required: true }) file: File; @Input({ required: true }) dossier: Dossier; @Input({ required: true }) displayedAttributes: IFileAttributeConfig[]; constructor( readonly fileAttributesService: FileAttributesService, + readonly _activeListingEntityService: ActiveListingEntityService, private readonly _changeRef: ChangeDetectorRef, @Optional() readonly helpModeService: HelpModeService, ) {} diff --git a/apps/red-ui/src/app/modules/file-preview/components/file-header/file-header.component.html b/apps/red-ui/src/app/modules/file-preview/components/file-header/file-header.component.html index f7606feb3..cf93a1f1c 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/file-header/file-header.component.html +++ b/apps/red-ui/src/app/modules/file-preview/components/file-header/file-header.component.html @@ -33,6 +33,7 @@ [file]="file" [helpModeKeyPrefix]="'editor'" [minWidth]="width" + [singleEntityAction]="true" iqserDisableStopPropagation type="file-preview" > diff --git a/apps/red-ui/src/app/modules/shared-dossiers/components/dossiers-listing-actions/dossiers-listing-actions.component.html b/apps/red-ui/src/app/modules/shared-dossiers/components/dossiers-listing-actions/dossiers-listing-actions.component.html index 47276c23b..4c0953bbf 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/components/dossiers-listing-actions/dossiers-listing-actions.component.html +++ b/apps/red-ui/src/app/modules/shared-dossiers/components/dossiers-listing-actions/dossiers-listing-actions.component.html @@ -29,5 +29,6 @@ [disabled]="downloadBtnDisabled" [dossier]="dossier" [files]="files" + dossierDownload >
diff --git a/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.html b/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.html index 1f9e0bfc3..c753b6790 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.html +++ b/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.html @@ -20,6 +20,7 @@ [tooltipPosition]="tooltipPosition" [helpModeKeyPrefix]="helpModeKeyPrefix" [isDossierOverviewWorkflow]="isDossierOverviewWorkflow" + [singleEntityAction]="singleEntityAction" >
diff --git a/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.ts b/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.ts index aead21c11..60c37c090 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.ts +++ b/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.ts @@ -51,6 +51,7 @@ export class FileActionsComponent implements OnChanges { @Input() maxWidth: number; @Input() minWidth: number; @Input() helpModeKeyPrefix: 'dossier' | 'editor' = 'dossier'; + @Input() singleEntityAction = false; readonly currentUser = getCurrentUser(); toggleTooltip?: string; assignTooltip?: string; @@ -119,6 +120,16 @@ export class FileActionsComponent implements OnChanges { private get _buttons(): Action[] { const actions: Action[] = [ + { + id: 'btn-download_file', + type: ActionTypes.downloadBtn, + files: [this.file], + dossier: this.dossier, + tooltipClass: 'small', + show: this.showDownload, + disabled: this.file.processingStatus === ProcessingFileStatuses.ERROR, + helpModeKey: 'download', + }, { id: 'btn-delete_file', type: ActionTypes.circleBtn, @@ -155,16 +166,6 @@ export class FileActionsComponent implements OnChanges { show: this.showImportRedactions && !this._iqserPermissionsService.has(Roles.getRss), helpModeKey: 'import_redactions', }, - { - id: 'btn-download_file', - type: ActionTypes.downloadBtn, - files: [this.file], - dossier: this.dossier, - tooltipClass: 'small', - show: this.showDownload, - disabled: this.file.processingStatus === ProcessingFileStatuses.ERROR, - helpModeKey: 'download', - }, { id: 'btn-toggle_document_info', type: ActionTypes.circleBtn, diff --git a/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.html b/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.html index ecd310f3d..eb345e747 100644 --- a/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.html +++ b/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.html @@ -1,7 +1,6 @@ -@if (isDocumine) { +@if (dropdownButton()) { } - + diff --git a/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts b/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts index 79be0a033..c261de913 100644 --- a/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts @@ -1,7 +1,7 @@ -import { booleanAttribute, Component, inject, input, Input, OnChanges } from '@angular/core'; +import { booleanAttribute, Component, computed, inject, input, Input, OnChanges, ViewChild } from '@angular/core'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { CircleButtonComponent, CircleButtonType, CircleButtonTypes, getConfig, IqserDialog, Toaster } from '@iqser/common-ui'; -import { Dossier, File, ProcessingFileStatuses } from '@red/domain'; +import { Dossier, File, IFile, ProcessingFileStatuses } from '@red/domain'; import { PermissionsService } from '@services/permissions.service'; import { DownloadDialogComponent } from '@shared/dialogs/download-dialog/download-dialog.component'; import { FileDownloadService } from '@upload-download/services/file-download.service'; @@ -10,6 +10,7 @@ import { TranslateModule } from '@ngx-translate/core'; import { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu'; import { firstValueFrom } from 'rxjs'; import { ComponentLogService } from '@services/files/component-log.service'; +import { ActiveListingEntityService } from '@services/active-listing-entity.service'; @Component({ selector: 'redaction-file-download-btn', @@ -25,17 +26,21 @@ export class FileDownloadBtnComponent implements OnChanges { readonly type = input(CircleButtonTypes.default); readonly tooltipClass = input(); readonly disabled = input(false); - readonly singleFileDownload = input(false, { transform: booleanAttribute }); + readonly singleFileDownload = input(false); + readonly dossierDownload = input(false, { transform: booleanAttribute }); + readonly dropdownButton = computed(() => this.isDocumine && (this.dossierDownload() || this.singleFileDownload())); tooltip: string; canDownloadFiles: boolean; invalidDownload = false; readonly #appBaseHref = inject(APP_BASE_HREF); protected readonly isDocumine = getConfig().IS_DOCUMINE; + @ViewChild(MatMenuTrigger) menuTrigger: MatMenuTrigger; constructor( private readonly _permissionsService: PermissionsService, private readonly _fileDownloadService: FileDownloadService, private readonly _componentLogService: ComponentLogService, + private readonly _activeListingEntity: ActiveListingEntityService, private readonly _dialog: IqserDialog, private readonly _toaster: Toaster, ) {} @@ -43,11 +48,20 @@ export class FileDownloadBtnComponent implements OnChanges { ngOnChanges(): void { this.invalidDownload = this.files().some(file => file.processingStatus === ProcessingFileStatuses.ERROR); this.canDownloadFiles = this._permissionsService.canDownloadFiles(this.files(), this.dossier()); - this.tooltip = this.canDownloadFiles ? _('dossier-overview.download-file') : _('dossier-overview.download-file-disabled'); + if (this.canDownloadFiles) { + if (this.isDocumine && !this.dropdownButton()) { + this.tooltip = _('dossier-overview.report-download'); + } else { + this.tooltip = _('dossier-overview.download-file'); + } + } else { + this.tooltip = _('dossier-overview.download-file-disabled'); + } } async downloadFiles($event?: MouseEvent) { $event?.stopImmediatePropagation(); + this.menuTrigger?.closeMenu(); const ref = this._dialog.openDefault(DownloadDialogComponent, { data: { dossier: this.dossier(), files: this.files() }, }); @@ -71,15 +85,29 @@ export class FileDownloadBtnComponent implements OnChanges { .catch(() => this._toaster.error(_('download-status.error'))); } + onDownloadMenuClosed() { + this._activeListingEntity.updateEntity(); + } + + setActiveListingEntity($event: MouseEvent) { + $event.stopImmediatePropagation(); + if (this.dropdownButton()) { + const entityId = this.dossierDownload() ? this.dossier().id : this.files()[0].id; + this._activeListingEntity.updateEntity(entityId); + } + } + downloadComponentAsJSON($event: MouseEvent) { $event.stopImmediatePropagation(); - const fileToDownload = this.singleFileDownload() ? this.files()[0] : null; + this.menuTrigger?.closeMenu(); + const fileToDownload = !this.dossierDownload() ? this.files()[0] : null; return firstValueFrom(this._componentLogService.exportJSON(this.dossier().dossierTemplateId, this.dossier().id, fileToDownload)); } async downloadComponentAsXML($event: MouseEvent) { $event.stopImmediatePropagation(); - const fileToDownload = this.singleFileDownload() ? this.files()[0] : null; + this.menuTrigger?.closeMenu(); + const fileToDownload = !this.dossierDownload() ? this.files()[0] : null; return firstValueFrom(this._componentLogService.exportXML(this.dossier().dossierTemplateId, this.dossier().id, fileToDownload)); } } diff --git a/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.html b/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.html index 086c35b84..9fa619fa1 100644 --- a/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.html +++ b/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.html @@ -25,7 +25,7 @@ [tooltipPosition]="tooltipPosition" [type]="buttonType" [attr.help-mode-key]="helpModeKey(btn)" - singleFileDownload + [singleFileDownload]="singleEntityAction" > diff --git a/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.ts b/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.ts index 8f310dc0d..40206c988 100644 --- a/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.ts @@ -1,4 +1,4 @@ -import { Component, inject, Input, OnChanges, SimpleChanges, ViewChild } from '@angular/core'; +import { booleanAttribute, Component, inject, input, Input, OnChanges, SimpleChanges, ViewChild } from '@angular/core'; import { Action, ActionTypes, Dossier, File } from '@red/domain'; import { CircleButtonComponent, CircleButtonType, IqserDialog, StopPropagationDirective, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @@ -44,6 +44,7 @@ export class ExpandableFileActionsComponent implements OnChanges { @Input() tooltipPosition: IqserTooltipPosition; @Input() helpModeKeyPrefix: 'dossier' | 'editor'; @Input() isDossierOverviewWorkflow = false; + @Input() singleEntityAction = false; displayedButtons: Action[]; hiddenButtons: Action[]; expanded = false; diff --git a/apps/red-ui/src/app/services/active-listing-entity.service.ts b/apps/red-ui/src/app/services/active-listing-entity.service.ts new file mode 100644 index 000000000..f4c27868e --- /dev/null +++ b/apps/red-ui/src/app/services/active-listing-entity.service.ts @@ -0,0 +1,13 @@ +import { Injectable, signal } from '@angular/core'; + +@Injectable({ + providedIn: 'root', +}) +export class ActiveListingEntityService { + readonly #activeEntity = signal(''); + readonly activeEntity = this.#activeEntity.asReadonly(); + + updateEntity(entity: string = '') { + this.#activeEntity.set(entity); + } +} diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json index 91a25aeb1..d22fb33cc 100644 --- a/apps/red-ui/src/assets/i18n/redact/de.json +++ b/apps/red-ui/src/assets/i18n/redact/de.json @@ -272,9 +272,6 @@ "watermarks": "Wasserzeichen" }, "analysis-disabled": "", - "annotation": { - "pending": "(Analyse steht aus)" - }, "annotation-actions": { "accept-recommendation": { "label": "Empfehlung annehmen" @@ -330,14 +327,14 @@ "error": "Rekategorisierung des Bilds fehlgeschlagen: {error}", "success": "Bild wurde einer neuen Kategorie zugeordnet." }, - "remove": { - "error": "Entfernen der Schwärzung fehlgeschlagen: {error}", - "success": "Schwärzung wurde entfernt" - }, "remove-hint": { "error": "Entfernen des Hinweises fehlgeschlagen: {error}", "success": "Hinweis wurde entfernt" }, + "remove": { + "error": "Entfernen der Schwärzung fehlgeschlagen: {error}", + "success": "Schwärzung wurde entfernt" + }, "undo": { "error": "Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error}", "success": "Rücksetzung erfolgreich" @@ -350,15 +347,15 @@ "remove-highlights": { "label": "Ausgewählte Markierungen entfernen" }, - "resize": { - "label": "Größe ändern" - }, "resize-accept": { "label": "Neue Größe speichern" }, "resize-cancel": { "label": "Größenänderung abbrechen" }, + "resize": { + "label": "Größe ändern" + }, "see-references": { "label": "Referenzen anzeigen" }, @@ -392,6 +389,9 @@ "skipped": "Ignorierte Schwärzung", "text-highlight": "Markierung" }, + "annotation": { + "pending": "(Analyse steht aus)" + }, "annotations": "Annotationen", "archived-dossiers-listing": { "no-data": { @@ -535,9 +535,8 @@ "title": "{length} {length, plural, one{Komponente} other{Komponenten}}" }, "component-download": { - "disabled-tooltip": "", "json": "", - "tooltip": "", + "report": "", "xml": "" }, "component-management": { @@ -637,18 +636,14 @@ "warning": "Warnung: Wiederherstellung des Benutzers nicht möglich." }, "confirmation-dialog": { - "approve-file": { - "question": "Dieses Dokument enthält ungesehene Änderungen, die sich durch die Reanalyse ergeben haben.

Möchten Sie es trotzdem freigeben?", - "title": "Warnung!" - }, "approve-file-without-analysis": { "confirmationText": "Ohne Analyse freigeben", "denyText": "Abbrechen", "question": "Analyse zur Erkennung neuer Schwärzungen erforderlich.", "title": "Warnung!" }, - "approve-multiple-files": { - "question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen, die im Zuge einer Reanalyse hinzugefügt wurden.

Möchen Sie die Dateien wirklich freigeben?", + "approve-file": { + "question": "Dieses Dokument enthält ungesehene Änderungen, die sich durch die Reanalyse ergeben haben.

Möchten Sie es trotzdem freigeben?", "title": "Warnung!" }, "approve-multiple-files-without-analysis": { @@ -657,6 +652,10 @@ "question": "Für mindestens eine Datei ist ein Analyselauf zur Erkennung neuer Schwärzungen erforderlich.", "title": "Warnung" }, + "approve-multiple-files": { + "question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen, die im Zuge einer Reanalyse hinzugefügt wurden.

Möchen Sie die Dateien wirklich freigeben?", + "title": "Warnung!" + }, "assign-file-to-me": { "question": { "multiple": "Dieses Dokument wird gerade von einer anderen Person geprüft.

Möchten Sie sich die Datei dennoch zuweisen?", @@ -1026,13 +1025,14 @@ "recent": "Neu ({hours} h)", "unassigned": "Keinem Bearbeiter zugewiesen" }, - "reanalyse": { - "action": "Datei analysieren" - }, "reanalyse-dossier": { "error": "Einplanung der Dateien für die Reanalyse fehlgeschlagen. Bitte versuchen Sie es noch einmal.", "success": "Dateien für Reanalyse vorgesehen." }, + "reanalyse": { + "action": "Datei analysieren" + }, + "report-download": "", "start-auto-analysis": "Auto-Analyse aktivieren", "stop-auto-analysis": "Auto-Analyse anhalten", "table-col-names": { @@ -1102,14 +1102,6 @@ "total-documents": "Dokumente", "total-people": "{count} {count, plural, one{Benutzer} other {Benutzer}}" }, - "dossier-templates": { - "label": "Dossier-Vorlagen", - "status": { - "active": "Aktiv", - "inactive": "Inaktiv", - "incomplete": "Unvollständig" - } - }, "dossier-templates-listing": { "action": { "clone": "Vorlage klonen", @@ -1144,6 +1136,14 @@ "title": "{length} {length, plural, one{Dossier-Vorlage} other{Dossier-Vorlagen}}" } }, + "dossier-templates": { + "label": "Dossier-Vorlagen", + "status": { + "active": "Aktiv", + "inactive": "Inaktiv", + "incomplete": "Unvollständig" + } + }, "dossier-watermark-selector": { "heading": "Wasserzeichen auf Dokumenten", "no-watermark": "Kein Wasserzeichen in der Dossier-Vorlage verfügbar:
Bitten Sie Ihren Admin, eines zu konfigurieren.", @@ -1339,15 +1339,6 @@ "title": "{length} {length, plural, one{Wörterbuch} other{Wörterbücher}}" } }, - "entity": { - "info": { - "actions": { - "revert": "Zurücksetzen", - "save": "Änderungen speichern" - }, - "heading": "Entität bearbeiten" - } - }, "entity-rules-screen": { "error": { "generic": "Fehler: Aktualisierung der Entitätsregeln fehlgeschlagen." @@ -1362,19 +1353,28 @@ "warning-text": "Warnung: experimentelle Funktion!", "warnings-found": "{warnings, plural, one{A warning} other{{warnings} warnings}} in Regeln gefunden" }, + "entity": { + "info": { + "actions": { + "revert": "Zurücksetzen", + "save": "Änderungen speichern" + }, + "heading": "Entität bearbeiten" + } + }, "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": { @@ -1392,12 +1392,6 @@ }, "exact-date": "{day}. {month} {year} um {hour}:{minute} Uhr", "file": "Datei", - "file-attribute": { - "update": { - "error": "Aktualisierung des Werts für das Datei-Attribut fehlgeschlagen. Bitte versuchen Sie es noch einmal.", - "success": "Der Wert für das Dateiattribut wurde erfolgreich aktualisiert." - } - }, "file-attribute-encoding-types": { "ascii": "ASCII", "iso": "ISO-8859-1", @@ -1408,6 +1402,12 @@ "number": "Nummer", "text": "Freier Text" }, + "file-attribute": { + "update": { + "error": "Aktualisierung des Werts für das Datei-Attribut fehlgeschlagen. Bitte versuchen Sie es noch einmal.", + "success": "Der Wert für das Dateiattribut wurde erfolgreich aktualisiert." + } + }, "file-attributes-configurations": { "cancel": "Abbrechen", "form": { @@ -1625,15 +1625,6 @@ "csv": "Die Datei-Attribute wurden erfolgreich aus der hochgeladenen CSV-Datei importiert." } }, - "filter": { - "analysis": "Analyse erforderlich", - "comment": "Kommentare", - "hint": "Nur Hinweise", - "image": "Bilder", - "none": "Keine Annotationen", - "redaction": "Schwärzungen", - "updated": "Aktualisiert" - }, "filter-menu": { "filter-options": "Filteroptionen", "filter-types": "Filter", @@ -1643,6 +1634,15 @@ "unseen-pages": "Nur Annotationen auf ungesehenen Seiten", "with-comments": "Nur Annotationen mit Kommentaren" }, + "filter": { + "analysis": "Analyse erforderlich", + "comment": "Kommentare", + "hint": "Nur Hinweise", + "image": "Bilder", + "none": "Keine Annotationen", + "redaction": "Schwärzungen", + "updated": "Aktualisiert" + }, "filters": { "assigned-people": "Bearbeiter", "documents-status": "Dokumentenstatus", @@ -1921,13 +1921,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": "Benachrichtigungen", - "deleted-dossier": "Gelöschtes Dossier", - "label": "Benachrichtigungen", - "mark-all-as-read": "Alle als gelesen markieren", - "mark-as": "Als {type, select, read{gelesen} unread{ungelesen} other{}} markieren" - }, "notifications-screen": { "category": { "email-notifications": "E-Mail-Benachrichtigungen", @@ -1941,6 +1934,7 @@ "dossier": "Benachrichtigungen zu Dossiers", "other": "Andere Benachrichtigungen" }, + "options-title": "Wählen Sie aus, bei welchen Aktivitäten Sie benachrichtigt werden möchten", "options": { "ASSIGN_APPROVER": "Wenn ich einem Dokument als Genehmiger zugewiesen werde", "ASSIGN_REVIEWER": "Wenn ich einem Dokument als Prüfer zugewiesen werde", @@ -1958,7 +1952,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, bei welchen Aktivitäten Sie benachrichtigt werden möchten", "schedule": { "daily": "Tägliche Zusammenfassung", "instant": "Sofort", @@ -1966,6 +1959,13 @@ }, "title": "Benachrichtigungseinstellungen" }, + "notifications": { + "button-text": "Benachrichtigungen", + "deleted-dossier": "Gelöschtes Dossier", + "label": "Benachrichtigungen", + "mark-all-as-read": "Alle als gelesen markieren", + "mark-as": "Als {type, select, read{gelesen} unread{ungelesen} other{}} markieren" + }, "ocr": { "confirmation-dialog": { "cancel": "Abbrechen", @@ -2057,16 +2057,16 @@ "warnings-label": "Dialoge und Meldungen", "warnings-subtitle": "„Nicht mehr anzeigen“-Optionen" }, - "processing": { - "basic": "Verarbeitung läuft", - "ocr": "OCR" - }, "processing-status": { "ocr": "OCR", "pending": "Ausstehend", "processed": "Verarbeitet", "processing": "Verarbeitung läuft" }, + "processing": { + "basic": "Verarbeitung läuft", + "ocr": "OCR" + }, "readonly": "Lesemodus", "readonly-archived": "Lesemodus (archiviert)", "redact-text": { @@ -2302,12 +2302,6 @@ "red-user-admin": "Benutzeradmin", "regular": "regulärer Benutzer" }, - "search": { - "active-dossiers": "Dokumente in aktiven Dossiers", - "all-dossiers": "Alle Dokumente", - "placeholder": "Dokumente durchsuchen...", - "this-dossier": "In diesem Dossier" - }, "search-screen": { "cols": { "assignee": "Bearbeiter", @@ -2331,6 +2325,12 @@ "no-match": "Der Suchbegriff wurde in keinem der Dokumente gefunden.", "table-header": "{length} {length, plural, one{Suchergebnis} other{Suchergebnisse}}" }, + "search": { + "active-dossiers": "Dokumente in aktiven Dossiers", + "all-dossiers": "Alle Dokumente", + "placeholder": "Dokumente durchsuchen...", + "this-dossier": "In diesem Dossier" + }, "seconds": "Sekunden", "size": "Größe", "smtp-auth-config": { @@ -2586,4 +2586,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 09e7aee4d..43d9a6dc4 100644 --- a/apps/red-ui/src/assets/i18n/redact/en.json +++ b/apps/red-ui/src/assets/i18n/redact/en.json @@ -1032,6 +1032,7 @@ "reanalyse": { "action": "Analyze file" }, + "report-download": "", "start-auto-analysis": "Enable auto-analysis", "stop-auto-analysis": "Stop auto-analysis", "table-col-names": { @@ -2585,4 +2586,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 78b0b3369..65b12bd58 100644 --- a/apps/red-ui/src/assets/i18n/scm/de.json +++ b/apps/red-ui/src/assets/i18n/scm/de.json @@ -272,9 +272,6 @@ "watermarks": "Watermarks" }, "analysis-disabled": "Analysis disabled", - "annotation": { - "pending": "(Pending analysis)" - }, "annotation-actions": { "accept-recommendation": { "label": "Empfehlung annehmen" @@ -330,14 +327,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" @@ -350,15 +347,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" }, @@ -392,6 +389,9 @@ "skipped": "Übersprungen", "text-highlight": "Earmark" }, + "annotation": { + "pending": "(Pending analysis)" + }, "annotations": "Annotations", "archived-dossiers-listing": { "no-data": { @@ -535,9 +535,8 @@ "title": "{length} {length, plural, one{component} other{components}}" }, "component-download": { - "disabled-tooltip": "All files must be processed to be able to export the components as JSON or XML", "json": "Download as JSON", - "tooltip": "Component download", + "report": "", "xml": "Download as XML" }, "component-management": { @@ -637,18 +636,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": { @@ -657,6 +652,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?", @@ -1026,13 +1025,14 @@ "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" + }, + "report-download": "", "start-auto-analysis": "Enable auto-analysis", "stop-auto-analysis": "Stop auto-analysis", "table-col-names": { @@ -1102,14 +1102,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", @@ -1144,6 +1136,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.", @@ -1339,15 +1339,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!" @@ -1362,19 +1353,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": { @@ -1392,12 +1392,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", @@ -1408,6 +1402,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": { @@ -1625,15 +1625,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", @@ -1643,6 +1634,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", @@ -1921,13 +1921,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", @@ -1941,6 +1934,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", @@ -1958,7 +1952,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", @@ -1966,6 +1959,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", @@ -2057,16 +2057,16 @@ "warnings-label": "Prompts and dialogs", "warnings-subtitle": "Do not show again options" }, - "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": { @@ -2302,12 +2302,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", @@ -2331,6 +2325,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": { @@ -2586,4 +2586,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 ee45619f8..05236c488 100644 --- a/apps/red-ui/src/assets/i18n/scm/en.json +++ b/apps/red-ui/src/assets/i18n/scm/en.json @@ -985,7 +985,7 @@ "processing-documents": "{count} processing {count, plural, one{document} other{documents}}" } }, - "download-file": "Report download", + "download-file": "Download", "download-file-disabled": "You need to be approver in the dossier and the {count, plural, one{file needs} other{files need}} to be initially processed in order to download.", "file-listing": { "file-entry": { @@ -1032,6 +1032,7 @@ "reanalyse": { "action": "Analyze file" }, + "report-download": "Report download", "start-auto-analysis": "Enable auto-analysis", "stop-auto-analysis": "Stop auto-analysis", "table-col-names": { @@ -2585,4 +2586,4 @@ } }, "yesterday": "Yesterday" -} \ No newline at end of file +} diff --git a/libs/common-ui b/libs/common-ui index 0fa39cf90..66277814c 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 0fa39cf9003658087e23e4809966a6e22b22c03e +Subproject commit 66277814c5e2d224f78dad5e28c94ac4d084409b