From c7658527d5f94c6ed720a10f6e527dee5e72b425 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Thu, 16 May 2024 23:38:32 +0300 Subject: [PATCH 1/8] RED-6143: Redo dossier template settings / dialogs --- .../src/app/modules/admin/admin.module.ts | 4 +- ...one-dossier-template-dialog.component.html | 53 ++++++ ...one-dossier-template-dialog.component.scss | 0 ...clone-dossier-template-dialog.component.ts | 101 ++++++++++ ...one-dossier-template-dialog.component.html | 162 ---------------- ...one-dossier-template-dialog.component.scss | 58 ------ ...clone-dossier-template-dialog.component.ts | 173 ----------------- ...sier-templates-listing-screen.component.ts | 2 +- .../dossier-template-details.component.html | 54 ++++++ .../dossier-template-details.component.scss | 20 ++ .../dossier-template-details.component.ts | 36 ++++ ...ossier-template-info-screen.component.html | 150 +++++++++++++++ ...ossier-template-info-screen.component.scss | 44 +++++ .../dossier-template-info-screen.component.ts | 139 ++++++++++++++ .../info/dossier-template-info.module.ts | 11 +- ...ossier-template-info-screen.component.html | 46 ----- ...ossier-template-info-screen.component.scss | 33 ---- .../dossier-template-info-screen.component.ts | 34 ---- .../admin/services/admin-dialog.service.ts | 10 +- .../dossier-template-actions.component.html | 4 +- .../dossier-template-actions.component.ts | 12 +- .../add-dossier-dialog.component.html | 4 +- .../add-dossier-dialog.component.ts | 2 +- .../dossier-templates.service.ts | 10 +- apps/red-ui/src/assets/i18n/redact/de.json | 176 ++++++++++-------- apps/red-ui/src/assets/i18n/redact/en.json | 11 +- apps/red-ui/src/assets/i18n/scm/de.json | 176 ++++++++++-------- apps/red-ui/src/assets/i18n/scm/en.json | 11 +- libs/common-ui | 2 +- .../dossier-template.model.ts | 4 - 30 files changed, 848 insertions(+), 694 deletions(-) create mode 100644 apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.html create mode 100644 apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.scss create mode 100644 apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.ts delete mode 100644 apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component.html delete mode 100644 apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component.scss delete mode 100644 apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component.ts create mode 100644 apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.html create mode 100644 apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.scss create mode 100644 apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.ts create mode 100644 apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.html create mode 100644 apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.scss create mode 100644 apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.ts delete mode 100644 apps/red-ui/src/app/modules/admin/screens/info/info-screen/dossier-template-info-screen.component.html delete mode 100644 apps/red-ui/src/app/modules/admin/screens/info/info-screen/dossier-template-info-screen.component.scss delete mode 100644 apps/red-ui/src/app/modules/admin/screens/info/info-screen/dossier-template-info-screen.component.ts diff --git a/apps/red-ui/src/app/modules/admin/admin.module.ts b/apps/red-ui/src/app/modules/admin/admin.module.ts index b0f171a0f..f34a45611 100644 --- a/apps/red-ui/src/app/modules/admin/admin.module.ts +++ b/apps/red-ui/src/app/modules/admin/admin.module.ts @@ -8,7 +8,6 @@ import { EntitiesListingScreenComponent } from './screens/entities-listing/entit import { DigitalSignatureScreenComponent } from './screens/digital-signature/digital-signature-screen.component'; import { UserListingScreenComponent } from './screens/user-listing/user-listing-screen.component'; import { DossierTemplateBreadcrumbsComponent } from './shared/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component'; -import { AddEditCloneDossierTemplateDialogComponent } from './dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component'; import { AddEntityDialogComponent } from './dialogs/add-entity-dialog/add-entity-dialog.component'; import { EditColorDialogComponent } from './dialogs/edit-color-dialog/edit-color-dialog.component'; import { AdminDialogService } from './services/admin-dialog.service'; @@ -57,9 +56,10 @@ import { DossierTemplateActionsComponent } from './shared/components/dossier-tem import { IqserUsersModule } from '@iqser/common-ui/lib/users'; import { SelectComponent } from '@shared/components/select/select.component'; import { PaginationComponent } from '@common-ui/pagination/pagination.component'; +import { AddCloneDossierTemplateDialogComponent } from './dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component'; const dialogs = [ - AddEditCloneDossierTemplateDialogComponent, + AddCloneDossierTemplateDialogComponent, AddEntityDialogComponent, EditColorDialogComponent, SmtpAuthDialogComponent, diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.html new file mode 100644 index 000000000..622e8ed32 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.html @@ -0,0 +1,53 @@ +
+
+ +
+
+
+ + +
+ +
+ + +
+
+ +
+ + + + + +
+
+ + +
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.scss b/apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.ts new file mode 100644 index 000000000..f3805d392 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.ts @@ -0,0 +1,101 @@ +import { HttpStatusCode } from '@angular/common/http'; +import { Component, Inject } from '@angular/core'; +import { Validators } from '@angular/forms'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { BaseDialogComponent, getConfig, SaveOptions } from '@iqser/common-ui'; +import { DossierTemplate } from '@red/domain'; +import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service'; +import { Router } from '@angular/router'; + +export interface CloneTemplateData { + dossierTemplateId?: string; +} + +@Component({ + templateUrl: './add-clone-dossier-template-dialog.component.html', + styleUrls: ['./add-clone-dossier-template-dialog.component.scss'], +}) +export class AddCloneDossierTemplateDialogComponent extends BaseDialogComponent { + readonly dossierTemplate?: DossierTemplate; + readonly isDocumine = getConfig().IS_DOCUMINE; + readonly translateParams: { type: string; dossierTemplateName?: string }; + + constructor( + private readonly _dossierTemplatesService: DossierTemplatesService, + private readonly _router: Router, + protected readonly _dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) readonly data: CloneTemplateData, + ) { + super(_dialogRef); + this.dossierTemplate = this._dossierTemplatesService.find(this.data.dossierTemplateId); + + this.translateParams = { + type: this.dossierTemplate ? 'clone' : 'create', + dossierTemplateName: this.dossierTemplate?.name, + }; + + this.form = this.#getForm(); + this.initialFormValue = this.form.getRawValue(); + } + + override get disabled(): boolean { + // Ignore 'changed' value, doesn't make sense in this context + return !this.valid || this._hasErrors(); + } + + async save(options?: SaveOptions): Promise { + let dossierTemplate: DossierTemplate; + this._loadingService.start(); + const body = { + ...this.dossierTemplate, + ...this.form.getRawValue(), + }; + try { + if (this.dossierTemplate) { + dossierTemplate = await this._dossierTemplatesService.clone(this.dossierTemplate.id, body); + } else { + dossierTemplate = await this._dossierTemplatesService.createOrUpdate(body); + } + if (options?.nextAction) { + await this._router.navigate([dossierTemplate.routerLink]); + } + this._dialogRef.close(true); + } catch (error) { + if (error.status === HttpStatusCode.Conflict) { + this._toaster.error(_('add-edit-clone-dossier-template.error.conflict'), { error }); + } else { + this._toaster.rawError(error.error.message); + } + } + this._loadingService.stop(); + } + + #getForm() { + return this._formBuilder.group({ + name: [this.dossierTemplate ? this.#getCloneName(this.dossierTemplate) : undefined, Validators.required], + description: [this.dossierTemplate?.description], + }); + } + + #getCloneName(initialTemplate: DossierTemplate): string { + const templateName = initialTemplate.name.trim(); + let nameOfClonedTemplate: string = templateName.split('Copy of ').filter(n => n)[0]; + nameOfClonedTemplate = nameOfClonedTemplate.split(/\(\s*\d+\s*\)$/)[0].trim(); + const allTemplatesNames = this._dossierTemplatesService.all.map(t => t.name); + + let clonesCount = 0; + for (const name of allTemplatesNames) { + const splitName = name.split(nameOfClonedTemplate); + const suffixRegExp = new RegExp(/^\(\s*\d+\s*\)$/); + if (splitName[0] === 'Copy of ' && (splitName[1].trim().match(suffixRegExp) || splitName[1] === '')) { + clonesCount++; + } + } + + if (clonesCount >= 1) { + return `Copy of ${nameOfClonedTemplate} (${clonesCount})`; + } + return `Copy of ${nameOfClonedTemplate}`; + } +} diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component.html deleted file mode 100644 index e48d987f3..000000000 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component.html +++ /dev/null @@ -1,162 +0,0 @@ -
-
- -
-
-
- - -
- -
- - -
- -
-
- - {{ 'add-edit-clone-dossier-template.form.valid-from' | translate }} - - - - {{ 'add-edit-clone-dossier-template.form.valid-to' | translate }} - -
- -
-
- - - - - - - -
- -
- - - - - - - -
-
-
- -
-

- {{ 'add-edit-clone-dossier-template.form.apply-updates-default.heading' | translate }} -

-
- - {{ 'add-edit-clone-dossier-template.form.apply-updates-default.description' | translate }} - -
-
- -
-
-

{{ 'download-includes' | translate }}

- -
- -
-
- -
-

- {{ 'add-edit-clone-dossier-template.form.upload-settings.heading' | translate }} -

-
- - {{ 'add-edit-clone-dossier-template.form.upload-settings.ocr-by-default' | translate }} - -
-
- - {{ 'add-edit-clone-dossier-template.form.upload-settings.remove-watermark' | translate }} - -
-
-
- -
-

{{ 'add-edit-clone-dossier-template.form.hidden-text.heading' | translate }}

-
-
- - {{ 'add-edit-clone-dossier-template.form.hidden-text.title' | translate }} - -
{{ 'add-edit-clone-dossier-template.form.hidden-text.description' | translate }}
-
-
- - {{ 'add-edit-clone-dossier-template.form.image-metadata.title' | translate }} - -
{{ 'add-edit-clone-dossier-template.form.image-metadata.description' | translate }}
-
-
- - {{ 'add-edit-clone-dossier-template.form.overlapping-elements.title' | translate }} - -
- {{ 'add-edit-clone-dossier-template.form.overlapping-elements.description' | translate }} -
-
-
-
-
- -
- - - -
-
- - -
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component.scss b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component.scss deleted file mode 100644 index fc21cb238..000000000 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component.scss +++ /dev/null @@ -1,58 +0,0 @@ -.validity { - width: 230px; - display: flex; - - > div { - display: flex; - flex-direction: column; - margin-top: 16px; - - mat-checkbox { - margin-right: 16px; - height: 100%; - align-items: center; - display: flex; - min-height: 42px; - } - - .iqser-input-group { - min-height: 42px; - justify-content: center; - } - } -} - -redaction-select { - flex: 1; -} - -.download-includes { - margin: 16px 0 10px; - font-weight: 500; -} - -.hidden-elements { - display: flex; - gap: 40px; - - .iqser-input-group { - margin-top: 0; - flex: 1; - - mat-checkbox { - font-weight: 500; - } - - .info { - margin-left: 24px; - } - } -} - -.half-flex-basis { - flex-basis: 50%; -} - -.pl-75 { - padding: 0 0 0 75px; -} diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component.ts deleted file mode 100644 index d7b154c2c..000000000 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component.ts +++ /dev/null @@ -1,173 +0,0 @@ -import { HttpStatusCode } from '@angular/common/http'; -import { Component, Inject } from '@angular/core'; -import { AbstractControl, Validators } from '@angular/forms'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { BaseDialogComponent, getConfig } from '@iqser/common-ui'; -import { DossierTemplate, IDossierTemplate } from '@red/domain'; -import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service'; -import { downloadTypesTranslations } from '@translations/download-types-translations'; -import { applyIntervalConstraints } from '@utils/date-inputs-utils'; -import dayjs, { Dayjs } from 'dayjs'; - -interface EditCloneTemplateData { - dossierTemplateId: string; - clone?: boolean; -} - -const downloadTypes = ['ORIGINAL', 'PREVIEW', 'DELTA_PREVIEW', 'REDACTED'].map(type => ({ - key: type, - label: downloadTypesTranslations[type], -})); - -@Component({ - templateUrl: './add-edit-clone-dossier-template-dialog.component.html', - styleUrls: ['./add-edit-clone-dossier-template-dialog.component.scss'], -}) -export class AddEditCloneDossierTemplateDialogComponent extends BaseDialogComponent { - readonly isDocumine = getConfig().IS_DOCUMINE; - hasValidFrom: boolean; - hasValidTo: boolean; - readonly downloadTypes = downloadTypes; - readonly dossierTemplate: DossierTemplate; - private _previousValidFrom: Dayjs; - private _previousValidTo: Dayjs; - private _lastValidFrom: Dayjs; - private _lastValidTo: Dayjs; - - get disabled(): boolean { - if (!this.data?.clone) { - return super.disabled; - } - return !this.valid; - } - - get translateParams() { - return { - type: this.dossierTemplate ? (this.data.clone ? 'clone' : 'edit') : 'create', - name: this.dossierTemplate?.name, - }; - } - - constructor( - private readonly _dossierTemplatesService: DossierTemplatesService, - protected readonly _dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) readonly data: EditCloneTemplateData, - ) { - super(_dialogRef, !!data && !data.clone); - this.dossierTemplate = this._dossierTemplatesService.find(this.data?.dossierTemplateId); - this.form = this.#getForm(); - this.initialFormValue = this.form.getRawValue(); - this.hasValidFrom = !!this.dossierTemplate?.validFrom; - this.hasValidTo = !!this.dossierTemplate?.validTo; - - this._previousValidFrom = this._lastValidFrom = this.form.get('validFrom').value; - this._previousValidTo = this._lastValidTo = this.form.get('validTo').value; - } - - toggleHasValid(extremity: string) { - if (extremity === 'from') { - this.hasValidFrom = !this.hasValidFrom; - this.form.controls['validFrom'].setValue(this.hasValidFrom ? this._lastValidFrom : null); - } else { - this.hasValidTo = !this.hasValidTo; - this.form.controls['validTo'].setValue(this.hasValidTo ? this._lastValidTo : null); - } - this.applyValidityIntervalConstraints(); - } - - async save() { - this._loadingService.start(); - const dossierTemplate = { - dossierTemplateId: this.dossierTemplate?.dossierTemplateId, - ...this.form.getRawValue(), - validFrom: this.hasValidFrom ? this.form.get('validFrom').value : null, - validTo: this.hasValidTo ? this.form.get('validTo').value : null, - } as IDossierTemplate; - - try { - if (this.data?.clone) { - await this._dossierTemplatesService.clone(this.dossierTemplate.id, dossierTemplate); - } else { - await this._dossierTemplatesService.createOrUpdate(dossierTemplate); - } - this._dialogRef.close(true); - } catch (error) { - if (error.status === HttpStatusCode.Conflict) { - this._toaster.error(_('add-edit-clone-dossier-template.error.conflict'), { error }); - } else { - this._toaster.rawError(error.error.message); - } - } - this._loadingService.stop(); - } - - applyValidityIntervalConstraints(): void { - const formValue = this.form.value; - applyIntervalConstraints(formValue, this._previousValidFrom, this._previousValidTo, this.form, 'validFrom', 'validTo'); - - this._previousValidFrom = this.form.get('validFrom').value; - this._previousValidTo = this.form.get('validTo').value; - this._lastValidFrom = this._previousValidFrom || this._lastValidFrom; - this._lastValidTo = this._previousValidTo || this._lastValidTo; - } - - #getForm() { - return this._formBuilder.group({ - name: [this.#getCloneName(), Validators.required], - description: [this.dossierTemplate?.description], - validFrom: [ - this.dossierTemplate?.validFrom ? dayjs(this.dossierTemplate?.validFrom) : null, - this.#requiredIfValidator(() => this.hasValidFrom), - ], - validTo: [ - this.dossierTemplate?.validTo ? dayjs(this.dossierTemplate?.validTo) : null, - this.#requiredIfValidator(() => this.hasValidTo), - ], - applyDictionaryUpdatesToAllDossiersByDefault: [this.dossierTemplate?.applyDictionaryUpdatesToAllDossiersByDefault], - ocrByDefault: [this.dossierTemplate?.ocrByDefault], - removeWatermark: [this.dossierTemplate?.removeWatermark], - downloadFileTypes: [this.dossierTemplate?.downloadFileTypes || ['PREVIEW', 'REDACTED']], - keepHiddenText: [this.dossierTemplate?.keepHiddenText], - keepImageMetadata: [this.dossierTemplate?.keepImageMetadata], - keepOverlappingObjects: [this.dossierTemplate?.keepOverlappingObjects], - }); - } - - #getCloneName(): string { - if (!this.data?.clone) { - return this.dossierTemplate?.name; - } - - const templateName = this.dossierTemplate.name.trim(); - let nameOfClonedTemplate: string = templateName.split('Copy of ').filter(n => n)[0]; - nameOfClonedTemplate = nameOfClonedTemplate.split(/\(\s*\d+\s*\)$/)[0].trim(); - const allTemplatesNames = this._dossierTemplatesService.all.map(t => t.name); - - let clonesCount = 0; - for (const name of allTemplatesNames) { - const splitName = name.split(nameOfClonedTemplate); - const suffixRegExp = new RegExp(/^\(\s*\d+\s*\)$/); - if (splitName[0] === 'Copy of ' && (splitName[1].trim().match(suffixRegExp) || splitName[1] === '')) { - clonesCount++; - } - } - - if (clonesCount >= 1) { - return `Copy of ${nameOfClonedTemplate} (${clonesCount})`; - } - return `Copy of ${nameOfClonedTemplate}`; - } - - #requiredIfValidator(predicate) { - return (formControl: AbstractControl) => { - if (!formControl.parent) { - return null; - } - if (predicate()) { - return Validators.required(formControl); - } - return null; - }; - } -} diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/dossier-templates-listing-screen/dossier-templates-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/dossier-templates-listing-screen/dossier-templates-listing-screen.component.ts index 40c043d22..fa61c02bf 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/dossier-templates-listing-screen/dossier-templates-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/dossier-templates-listing-screen/dossier-templates-listing-screen.component.ts @@ -63,7 +63,7 @@ export class DossierTemplatesListingScreenComponent extends ListingComponent d.dossierTemplateId)) { diff --git a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.html b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.html new file mode 100644 index 000000000..0e328765d --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.html @@ -0,0 +1,54 @@ +
+ +
{{ ctx.dossierTemplate.name }}
+ +
+
+
+ + +
+ +
+
+ + {{ translations[ctx.dossierTemplate.dossierTemplateStatus] | translate }} +
+ +
+ + {{ 'dossier-template-info-screen.entities' | translate: { count: ctx.stats.numberOfDictionaries } }} +
+ +
+ + +
+ +
+ + +
+ +
+ + {{ 'dossier-template-info-screen.entries' | translate: { count: ctx.stats.numberOfEntries } }} +
+ +
+ + +
+ +
+ + +
+
+
+
+
diff --git a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.scss b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.scss new file mode 100644 index 000000000..dd00e21c8 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.scss @@ -0,0 +1,20 @@ +@use 'common-mixins'; + +.stats-subtitle { + display: grid; + grid-template-columns: repeat(3, max-content); + grid-row-gap: 8px; + grid-column-gap: 8px; + height: fit-content; +} + +.info-wrapper { + display: flex; + align-items: center; +} + +.created-by-wrapper { + border-right: 1px solid var(--iqser-separator); + padding-right: 24px; + margin-right: 24px; +} diff --git a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.ts b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.ts new file mode 100644 index 000000000..2ddbd44f7 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.ts @@ -0,0 +1,36 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { ContextComponent } from '@iqser/common-ui/lib/utils'; +import { type DossierTemplate, type DossierTemplateStats } from '@red/domain'; +import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service'; +import { DossierTemplateStatsService } from '@services/entity-services/dossier-template-stats.service'; +import { dossierTemplateStatusTranslations } from '@translations/dossier-template-status-translations'; + +interface Context { + readonly dossierTemplate: DossierTemplate; + readonly stats: DossierTemplateStats; +} + +@Component({ + selector: 'redaction-dossier-template-details', + templateUrl: './dossier-template-details.component.html', + styleUrls: ['./dossier-template-details.component.scss'], +}) +export class DossierTemplateDetailsComponent extends ContextComponent implements OnInit { + readonly translations = dossierTemplateStatusTranslations; + + @Input({ required: true }) dossierTemplateId: string; + + constructor( + private readonly _dossierTemplatesService: DossierTemplatesService, + private readonly _dossierTemplateStatsService: DossierTemplateStatsService, + ) { + super(); + } + + ngOnInit() { + super._initContext({ + dossierTemplate: this._dossierTemplatesService.getEntityChanged$(this.dossierTemplateId), + stats: this._dossierTemplateStatsService.watch$(this.dossierTemplateId), + }); + } +} diff --git a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.html new file mode 100644 index 000000000..94e7dc00a --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.html @@ -0,0 +1,150 @@ +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+
+ + {{ 'add-edit-clone-dossier-template.form.valid-from' | translate }} + + +
+ + + + + + + +
+
+ +
+ + {{ 'add-edit-clone-dossier-template.form.valid-to' | translate }} + +
+ + + + + + + +
+
+
+ +
+
+ {{ 'add-edit-clone-dossier-template.form.apply-updates-default.heading' | translate }} +
+
+ + {{ 'add-edit-clone-dossier-template.form.apply-updates-default.description' | translate }} + +
+
+ +
+
{{ 'download-includes' | translate }}
+ + +
+ +
+
+ {{ 'add-edit-clone-dossier-template.form.upload-settings.heading' | translate }} +
+
+ + {{ 'add-edit-clone-dossier-template.form.upload-settings.ocr-by-default' | translate }} + +
+
+ + {{ 'add-edit-clone-dossier-template.form.upload-settings.remove-watermark' | translate }} + +
+
+ +
+
{{ 'add-edit-clone-dossier-template.form.hidden-text.heading' | translate }}
+
+ + {{ 'add-edit-clone-dossier-template.form.hidden-text.title' | translate }} + +
{{ 'add-edit-clone-dossier-template.form.hidden-text.description' | translate }}
+
+
+ + {{ 'add-edit-clone-dossier-template.form.image-metadata.title' | translate }} + +
{{ 'add-edit-clone-dossier-template.form.image-metadata.description' | translate }}
+
+
+ + {{ 'add-edit-clone-dossier-template.form.overlapping-elements.title' | translate }} + +
+ {{ 'add-edit-clone-dossier-template.form.overlapping-elements.description' | translate }} +
+
+
+
+ +
+ +
+
+
diff --git a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.scss new file mode 100644 index 000000000..a18ca9b6d --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.scss @@ -0,0 +1,44 @@ +@use 'common-mixins'; + +//:host { +// display: flex; +// flex-grow: 1; +// overflow: hidden; +//} + +.content-container { + display: flex; + justify-content: center; + background-color: var(--iqser-alt-background); + overflow: auto; + @include common-mixins.scroll-bar; +} + +.stats-subtitle { + margin-top: 16px; + display: grid; + grid-template-columns: repeat(3, max-content); + grid-row-gap: 8px; + grid-column-gap: 40px; +} + +.validity { + display: flex; + min-height: 42px; + gap: 40px; + + > div { + display: flex; + align-items: center; + gap: 8px; + } +} + +redaction-select { + flex: 1; +} + +.hidden-elements .info { + margin-left: 24px; + margin-top: 4px; +} diff --git a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.ts new file mode 100644 index 000000000..3cf61bb37 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.ts @@ -0,0 +1,139 @@ +import { Component, OnInit, signal, untracked, WritableSignal } from '@angular/core'; +import { BaseFormComponent, getConfig, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; +import { getParam } from '@iqser/common-ui/lib/utils'; +import { DOSSIER_TEMPLATE_ID, type DossierTemplate, IDossierTemplate } from '@red/domain'; +import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service'; +import { dossierTemplateStatusTranslations } from '@translations/dossier-template-status-translations'; +import dayjs, { Dayjs } from 'dayjs'; +import { HttpStatusCode } from '@angular/common/http'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { applyIntervalConstraints } from '@utils/date-inputs-utils'; +import { AbstractControl, UntypedFormBuilder, Validators } from '@angular/forms'; +import { downloadTypesTranslations } from '@translations/download-types-translations'; +import { Observable } from 'rxjs'; + +const downloadTypes = ['ORIGINAL', 'PREVIEW', 'DELTA_PREVIEW', 'REDACTED'].map(type => ({ + key: type, + label: downloadTypesTranslations[type], +})); + +@Component({ + templateUrl: './dossier-template-info-screen.component.html', + styleUrls: ['./dossier-template-info-screen.component.scss'], +}) +export class DossierTemplateInfoScreenComponent extends BaseFormComponent implements OnInit { + readonly translations = dossierTemplateStatusTranslations; + readonly iconButtonTypes = IconButtonTypes; + readonly isDocumine = getConfig().IS_DOCUMINE; + readonly downloadTypes = downloadTypes; + + readonly dossierTemplate$: Observable; + readonly dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID); + readonly hasValidFrom: WritableSignal; + readonly hasValidTo: WritableSignal; + private _previousValidFrom: Dayjs; + private _previousValidTo: Dayjs; + private _lastValidFrom: Dayjs; + private _lastValidTo: Dayjs; + + constructor( + private readonly _dossierTemplatesService: DossierTemplatesService, + private readonly _loadingService: LoadingService, + private readonly _toaster: Toaster, + private readonly _formBuilder: UntypedFormBuilder, + ) { + super(); + this.dossierTemplate$ = this._dossierTemplatesService.get(this.dossierTemplateId); + this.form = this.#getForm(this._dossierTemplatesService.find(this.dossierTemplateId)); + this.initialFormValue = this.form.getRawValue(); + + this.hasValidFrom = signal(!!this.form.get('validFrom').value); + this.hasValidTo = signal(!!this.form.get('validTo').value); + + this._previousValidFrom = this._lastValidFrom = this.form.get('validFrom').value; + this._previousValidTo = this._lastValidTo = this.form.get('validTo').value; + } + + ngOnInit() { + this._loadingService.stop(); + } + + toggleHasValid(extremity: 'from' | 'to') { + if (extremity === 'from') { + const prevValue = untracked(this.hasValidFrom); + this.hasValidFrom.set(!prevValue); + this.form.controls['validFrom'].setValue(!prevValue ? this._lastValidFrom : null); + } else { + const prevValue = untracked(this.hasValidTo); + this.hasValidTo.set(!prevValue); + this.form.controls['validTo'].setValue(!prevValue ? this._lastValidTo : null); + } + this.applyValidityIntervalConstraints(); + } + + async save() { + this._loadingService.start(); + const dossierTemplate = { + dossierTemplateId: this.dossierTemplateId, + ...this.form.getRawValue(), + validFrom: this.hasValidFrom() ? this.form.get('validFrom').value : null, + validTo: this.hasValidTo() ? this.form.get('validTo').value : null, + } as IDossierTemplate; + + try { + await this._dossierTemplatesService.createOrUpdate(dossierTemplate); + this.initialFormValue = this.form.getRawValue(); + } catch (error) { + if (error.status === HttpStatusCode.Conflict) { + this._toaster.error(_('add-edit-clone-dossier-template.error.conflict'), { error }); + } else { + this._toaster.rawError(error.error.message); + } + } + this._loadingService.stop(); + } + + applyValidityIntervalConstraints(): void { + const formValue = this.form.value; + applyIntervalConstraints(formValue, this._previousValidFrom, this._previousValidTo, this.form, 'validFrom', 'validTo'); + + this._previousValidFrom = this.form.get('validFrom').value; + this._previousValidTo = this.form.get('validTo').value; + this._lastValidFrom = this._previousValidFrom || this._lastValidFrom; + this._lastValidTo = this._previousValidTo || this._lastValidTo; + } + + #getForm(dossierTemplate: DossierTemplate) { + return this._formBuilder.group({ + name: [dossierTemplate.name, Validators.required], + description: [dossierTemplate?.description], + validFrom: [ + dossierTemplate?.validFrom ? dayjs(dossierTemplate?.validFrom) : null, + this.#requiredIfValidator(() => this.hasValidFrom()), + ], + validTo: [ + dossierTemplate?.validTo ? dayjs(dossierTemplate?.validTo) : null, + this.#requiredIfValidator(() => this.hasValidTo()), + ], + applyDictionaryUpdatesToAllDossiersByDefault: [dossierTemplate?.applyDictionaryUpdatesToAllDossiersByDefault], + ocrByDefault: [dossierTemplate?.ocrByDefault], + removeWatermark: [dossierTemplate?.removeWatermark], + downloadFileTypes: [dossierTemplate?.downloadFileTypes || ['PREVIEW', 'REDACTED']], + keepHiddenText: [dossierTemplate?.keepHiddenText], + keepImageMetadata: [dossierTemplate?.keepImageMetadata], + keepOverlappingObjects: [dossierTemplate?.keepOverlappingObjects], + }); + } + + #requiredIfValidator(predicate: () => boolean) { + return (formControl: AbstractControl) => { + if (!formControl.parent) { + return null; + } + if (predicate()) { + return Validators.required(formControl); + } + return null; + }; + } +} diff --git a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info.module.ts b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info.module.ts index 6c2f49351..adb906247 100644 --- a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info.module.ts +++ b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info.module.ts @@ -1,16 +1,18 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { DossierTemplateInfoScreenComponent } from './info-screen/dossier-template-info-screen.component'; +import { DossierTemplateInfoScreenComponent } from './dossier-template-info-screen/dossier-template-info-screen.component'; import { RouterModule } from '@angular/router'; import { SharedModule } from '@shared/shared.module'; -import { HasScrollbarDirective, IqserHelpModeModule } from '@iqser/common-ui'; +import { CircleButtonComponent, HasScrollbarDirective, IconButtonComponent, IqserHelpModeModule } from '@iqser/common-ui'; import { TranslateModule } from '@ngx-translate/core'; import { IqserUsersModule } from '@iqser/common-ui/lib/users'; +import { SelectComponent } from '@shared/components/select/select.component'; +import { DossierTemplateDetailsComponent } from './dossier-template-details/dossier-template-details.component'; const routes = [{ path: '', component: DossierTemplateInfoScreenComponent }]; @NgModule({ - declarations: [DossierTemplateInfoScreenComponent], + declarations: [DossierTemplateInfoScreenComponent, DossierTemplateDetailsComponent], imports: [ RouterModule.forChild(routes), CommonModule, @@ -19,6 +21,9 @@ const routes = [{ path: '', component: DossierTemplateInfoScreenComponent }]; TranslateModule, IqserHelpModeModule, HasScrollbarDirective, + CircleButtonComponent, + IconButtonComponent, + SelectComponent, ], }) export class DossierTemplateInfoModule {} diff --git a/apps/red-ui/src/app/modules/admin/screens/info/info-screen/dossier-template-info-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/info/info-screen/dossier-template-info-screen.component.html deleted file mode 100644 index ab6d52248..000000000 --- a/apps/red-ui/src/app/modules/admin/screens/info/info-screen/dossier-template-info-screen.component.html +++ /dev/null @@ -1,46 +0,0 @@ -
-
{{ ctx.dossierTemplate.name }}
- -
- - - -
-
- - {{ translations[ctx.dossierTemplate.dossierTemplateStatus] | translate }} -
- -
- - {{ 'dossier-template-info-screen.entities' | translate : { count: ctx.stats.numberOfDictionaries } }} -
- -
- - -
- -
- - -
- -
- - {{ 'dossier-template-info-screen.entries' | translate : { count: ctx.stats.numberOfEntries } }} -
- -
- - -
- -
- - -
-
- -
{{ ctx.dossierTemplate.description }}
-
diff --git a/apps/red-ui/src/app/modules/admin/screens/info/info-screen/dossier-template-info-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/info/info-screen/dossier-template-info-screen.component.scss deleted file mode 100644 index 857abc06a..000000000 --- a/apps/red-ui/src/app/modules/admin/screens/info/info-screen/dossier-template-info-screen.component.scss +++ /dev/null @@ -1,33 +0,0 @@ -@use 'common-mixins'; - -:host { - display: flex; - flex-grow: 1; - overflow: hidden; -} - -.content-container { - flex: 1; - padding: 30px; - overflow: auto; - @include common-mixins.scroll-bar; -} - -.heading { - display: flex; - align-items: center; - margin-top: 40px; - margin-bottom: 8px; -} - -.stats-subtitle { - margin-top: 16px; - display: grid; - grid-template-columns: repeat(3, max-content); - grid-row-gap: 8px; - grid-column-gap: 40px; -} - -.template-description { - margin-top: 10px; -} diff --git a/apps/red-ui/src/app/modules/admin/screens/info/info-screen/dossier-template-info-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/info/info-screen/dossier-template-info-screen.component.ts deleted file mode 100644 index bf9ccf1cd..000000000 --- a/apps/red-ui/src/app/modules/admin/screens/info/info-screen/dossier-template-info-screen.component.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Component, inject, OnInit } from '@angular/core'; -import { LoadingService } from '@iqser/common-ui'; -import { ContextComponent, getParam } from '@iqser/common-ui/lib/utils'; -import { DOSSIER_TEMPLATE_ID, type DossierTemplate, type DossierTemplateStats } from '@red/domain'; -import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service'; -import { DossierTemplateStatsService } from '@services/entity-services/dossier-template-stats.service'; -import { dossierTemplateStatusTranslations } from '@translations/dossier-template-status-translations'; - -interface Context { - readonly dossierTemplate: DossierTemplate; - readonly stats: DossierTemplateStats; -} - -@Component({ - templateUrl: './dossier-template-info-screen.component.html', - styleUrls: ['./dossier-template-info-screen.component.scss'], -}) -export class DossierTemplateInfoScreenComponent extends ContextComponent implements OnInit { - readonly #loadingService = inject(LoadingService); - readonly translations = dossierTemplateStatusTranslations; - - constructor(dossierTemplatesService: DossierTemplatesService, dossierTemplateStatsService: DossierTemplateStatsService) { - super(); - const dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID); - super._initContext({ - dossierTemplate: dossierTemplatesService.getEntityChanged$(dossierTemplateId), - stats: dossierTemplateStatsService.watch$(dossierTemplateId), - }); - } - - ngOnInit() { - this.#loadingService.stop(); - } -} diff --git a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts index 36f0984b6..f627f6b78 100644 --- a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts @@ -1,7 +1,6 @@ import { Injectable, TemplateRef } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { AddEntityDialogComponent } from '../dialogs/add-entity-dialog/add-entity-dialog.component'; -import { AddEditCloneDossierTemplateDialogComponent } from '../dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component'; import { EditColorDialogComponent } from '../dialogs/edit-color-dialog/edit-color-dialog.component'; import { SmtpAuthDialogComponent } from '../dialogs/smtp-auth-dialog/smtp-auth-dialog.component'; import { AddEditUserDialogComponent } from '../dialogs/add-edit-user-dialog/add-edit-user-dialog.component'; @@ -23,6 +22,7 @@ import { IDossierAttributeConfig, IFileAttributeConfig, IReportTemplate } from ' import { ReportTemplateService } from '@services/report-template.service'; import { ConfigureCertificateDialogComponent } from '../dialogs/configure-digital-signature-dialog/configure-certificate-dialog.component'; import { AuditInfoDialogComponent } from '../dialogs/audit-info-dialog/audit-info-dialog.component'; +import { AddCloneDossierTemplateDialogComponent } from '../dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component'; type DialogType = | 'confirm' @@ -30,7 +30,7 @@ type DialogType = | 'editColor' | 'addEditUser' | 'smtpAuthConfig' - | 'addEditCloneDossierTemplate' + | 'addCloneDossierTemplate' | 'auditInfo' | 'uploadDictionary' | 'configureCertificate'; @@ -58,9 +58,9 @@ export class AdminDialogService extends DialogService { component: SmtpAuthDialogComponent, dialogConfig: { autoFocus: true }, }, - addEditCloneDossierTemplate: { - component: AddEditCloneDossierTemplateDialogComponent, - dialogConfig: { width: '950px', autoFocus: true }, + addCloneDossierTemplate: { + component: AddCloneDossierTemplateDialogComponent, + dialogConfig: { autoFocus: true }, }, uploadDictionary: { component: UploadDictionaryDialogComponent, diff --git a/apps/red-ui/src/app/modules/admin/shared/components/dossier-template-actions/dossier-template-actions.component.html b/apps/red-ui/src/app/modules/admin/shared/components/dossier-template-actions/dossier-template-actions.component.html index 14e22b2bb..c20f6e637 100644 --- a/apps/red-ui/src/app/modules/admin/shared/components/dossier-template-actions/dossier-template-actions.component.html +++ b/apps/red-ui/src/app/modules/admin/shared/components/dossier-template-actions/dossier-template-actions.component.html @@ -8,15 +8,15 @@ > diff --git a/apps/red-ui/src/app/modules/admin/shared/components/dossier-template-actions/dossier-template-actions.component.ts b/apps/red-ui/src/app/modules/admin/shared/components/dossier-template-actions/dossier-template-actions.component.ts index 468cb8e48..266e53a0c 100644 --- a/apps/red-ui/src/app/modules/admin/shared/components/dossier-template-actions/dossier-template-actions.component.ts +++ b/apps/red-ui/src/app/modules/admin/shared/components/dossier-template-actions/dossier-template-actions.component.ts @@ -1,10 +1,10 @@ import { NgIf } from '@angular/common'; import { Component, Input, OnInit } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; +import { ActivatedRoute, Router, RouterLink } from '@angular/router'; import { CircleButtonComponent, IqserHelpModeModule, LoadingService } from '@iqser/common-ui'; import { getCurrentUser } from '@iqser/common-ui/lib/users'; import { TranslateModule } from '@ngx-translate/core'; -import { DOSSIER_TEMPLATE_ID, type User } from '@red/domain'; +import { DOSSIER_TEMPLATE_ID, DossierTemplate, type User } from '@red/domain'; import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service'; import { firstValueFrom } from 'rxjs'; import { AdminDialogService } from '../../../services/admin-dialog.service'; @@ -14,12 +14,13 @@ import { AdminDialogService } from '../../../services/admin-dialog.service'; templateUrl: './dossier-template-actions.component.html', styleUrls: ['./dossier-template-actions.component.scss'], standalone: true, - imports: [NgIf, IqserHelpModeModule, CircleButtonComponent, TranslateModule], + imports: [NgIf, IqserHelpModeModule, CircleButtonComponent, TranslateModule, RouterLink], }) export class DossierTemplateActionsComponent implements OnInit { @Input() dossierTemplateId: string; readonly currentUser = getCurrentUser(); + dossierTemplate: DossierTemplate; constructor( private readonly _router: Router, @@ -31,10 +32,11 @@ export class DossierTemplateActionsComponent implements OnInit { ngOnInit() { this.dossierTemplateId ??= this._route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID); + this.dossierTemplate = this._dossierTemplatesService.find(this.dossierTemplateId); } - openEditCloneDossierTemplateDialog(clone: boolean = false) { - this._dialogService.openDialog('addEditCloneDossierTemplate', { dossierTemplateId: this.dossierTemplateId, clone }); + openCloneDossierTemplateDialog() { + this._dialogService.openDialog('addCloneDossierTemplate', { dossierTemplateId: this.dossierTemplateId }); } openDeleteDossierTemplateDialog() { diff --git a/apps/red-ui/src/app/modules/shared/dialogs/add-dossier-dialog/add-dossier-dialog.component.html b/apps/red-ui/src/app/modules/shared/dialogs/add-dossier-dialog/add-dossier-dialog.component.html index 4b42e518a..42a33d4dd 100644 --- a/apps/red-ui/src/app/modules/shared/dialogs/add-dossier-dialog/add-dossier-dialog.component.html +++ b/apps/red-ui/src/app/modules/shared/dialogs/add-dossier-dialog/add-dossier-dialog.component.html @@ -106,14 +106,14 @@
{ diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json index 73336c0c0..6786efd13 100644 --- a/apps/red-ui/src/assets/i18n/redact/de.json +++ b/apps/red-ui/src/assets/i18n/redact/de.json @@ -26,6 +26,11 @@ "title": "Add annotation" } }, + "add-clone-dossier-template": { + "save": "", + "save-and-edit": "", + "title": "" + }, "add-dossier-dialog": { "actions": { "save": "Speichern", @@ -87,8 +92,7 @@ "valid-from": "Gültig ab", "valid-to": "Gültig bis" }, - "save": "Dossier-Vorlage speichern", - "title": "{type, select, edit{Dossier-Vorlage {name} bearbeiten} create{Dossier-Vorlage erstellen} clone{} other{}}" + "save": "Dossier-Vorlage speichern" }, "add-edit-dossier-attribute": { "error": { @@ -250,9 +254,6 @@ "watermarks": "Watermarks" }, "analysis-disabled": "", - "annotation": { - "pending": "(Pending analysis)" - }, "annotation-actions": { "accept-recommendation": { "label": "Empfehlung annehmen" @@ -307,14 +308,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 +328,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 +368,9 @@ "skipped": "Übersprungen", "text-highlight": "Earmark" }, + "annotation": { + "pending": "(Pending analysis)" + }, "archived-dossiers-listing": { "no-data": { "title": "No archived dossiers." @@ -572,18 +576,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 +592,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?", @@ -681,6 +685,25 @@ } }, "dev-mode": "DEV", + "dialog-defaults-form": { + "extra-option-label": "", + "hint": { + "add-dialog": "", + "remove-dialog": "", + "title": "" + }, + "recommendation": { + "remove-dialog": "", + "title": "" + }, + "redaction": { + "add-dialog": "", + "remove-dialog": "", + "title": "" + }, + "system-default": "", + "title": "" + }, "dictionary": "Wörterbuch", "dictionary-overview": { "compare": { @@ -936,13 +959,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": { @@ -1000,6 +1023,7 @@ "entities": "{count} {count, plural, one{entity} other{entities}}", "entries": "{count} {count, plural, one{entry} other{entries}}", "modified-on": "Modified on: {date}", + "title": "", "valid-from": "Valid from: {date}", "valid-to": "Valid to: {date}" }, @@ -1011,14 +1035,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 +1070,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.", @@ -1249,15 +1273,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!" @@ -1272,19 +1287,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": { @@ -1302,12 +1326,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", @@ -1318,6 +1336,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": { @@ -1536,15 +1560,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", @@ -1554,6 +1569,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", @@ -1824,13 +1848,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", @@ -1844,6 +1861,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", @@ -1861,7 +1879,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", @@ -1869,6 +1886,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", @@ -1960,16 +1984,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": { @@ -2193,12 +2217,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", @@ -2222,6 +2240,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": { @@ -2473,4 +2497,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 432c2b6b6..dc4bfcdd2 100644 --- a/apps/red-ui/src/assets/i18n/redact/en.json +++ b/apps/red-ui/src/assets/i18n/redact/en.json @@ -26,6 +26,11 @@ "title": "Add annotation" } }, + "add-clone-dossier-template": { + "save": "{type, select, clone{Clone} other{Save}}", + "save-and-edit": "{type, select, clone{Clone} other{Save}} and edit", + "title": "{type, select, clone{Clone {dossierTemplateName}} other{Create dossier template}}" + }, "add-dossier-dialog": { "actions": { "save": "Save", @@ -87,8 +92,7 @@ "valid-from": "Valid from", "valid-to": "Valid to" }, - "save": "Save dossier template", - "title": "{type, select, edit{Edit {name}} create{Create} clone{Clone} other{}} dossier template" + "save": "Save dossier template" }, "add-edit-dossier-attribute": { "error": { @@ -1019,6 +1023,7 @@ "entities": "{count} {count, plural, one{entity} other{entities}}", "entries": "{count} {count, plural, one{entry} other{entries}}", "modified-on": "Modified on: {date}", + "title": "Edit dossier template", "valid-from": "Valid from: {date}", "valid-to": "Valid to: {date}" }, @@ -2492,4 +2497,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 42aa67419..5619b23b8 100644 --- a/apps/red-ui/src/assets/i18n/scm/de.json +++ b/apps/red-ui/src/assets/i18n/scm/de.json @@ -26,6 +26,11 @@ "title": "Add annotation" } }, + "add-clone-dossier-template": { + "save": "", + "save-and-edit": "", + "title": "" + }, "add-dossier-dialog": { "actions": { "save": "Speichern", @@ -87,8 +92,7 @@ "valid-from": "Gültig ab", "valid-to": "Gültig bis" }, - "save": "Dossier-Vorlage speichern", - "title": "{type, select, edit{Dossier-Vorlage {name} bearbeiten} create{Dossier-Vorlage erstellen} clone{} other{}}" + "save": "Dossier-Vorlage speichern" }, "add-edit-dossier-attribute": { "error": { @@ -250,9 +254,6 @@ "watermarks": "Watermarks" }, "analysis-disabled": "Analysis disabled", - "annotation": { - "pending": "(Pending analysis)" - }, "annotation-actions": { "accept-recommendation": { "label": "Empfehlung annehmen" @@ -307,14 +308,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 +328,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 +368,9 @@ "skipped": "Übersprungen", "text-highlight": "Earmark" }, + "annotation": { + "pending": "(Pending analysis)" + }, "archived-dossiers-listing": { "no-data": { "title": "No archived dossiers." @@ -572,18 +576,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 +592,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?", @@ -681,6 +685,25 @@ } }, "dev-mode": "DEV", + "dialog-defaults-form": { + "extra-option-label": "", + "hint": { + "add-dialog": "", + "remove-dialog": "", + "title": "" + }, + "recommendation": { + "remove-dialog": "", + "title": "" + }, + "redaction": { + "add-dialog": "", + "remove-dialog": "", + "title": "" + }, + "system-default": "", + "title": "" + }, "dictionary": "Wörterbuch", "dictionary-overview": { "compare": { @@ -936,13 +959,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": { @@ -1000,6 +1023,7 @@ "entities": "{count} {count, plural, one{entity} other{entities}}", "entries": "{count} {count, plural, one{entry} other{entries}}", "modified-on": "Modified on: {date}", + "title": "", "valid-from": "Valid from: {date}", "valid-to": "Valid to: {date}" }, @@ -1011,14 +1035,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 +1070,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.", @@ -1249,15 +1273,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!" @@ -1272,19 +1287,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": { @@ -1302,12 +1326,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", @@ -1318,6 +1336,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": { @@ -1536,15 +1560,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", @@ -1554,6 +1569,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", @@ -1824,13 +1848,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", @@ -1844,6 +1861,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", @@ -1861,7 +1879,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", @@ -1869,6 +1886,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", @@ -1960,16 +1984,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": { @@ -2193,12 +2217,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", @@ -2222,6 +2240,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": { @@ -2473,4 +2497,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 35d3fb5d2..8a1bde077 100644 --- a/apps/red-ui/src/assets/i18n/scm/en.json +++ b/apps/red-ui/src/assets/i18n/scm/en.json @@ -26,6 +26,11 @@ "title": "Add annotation" } }, + "add-clone-dossier-template": { + "save": "{type, select, clone{Clone} other{Save}}", + "save-and-edit": "{type, select, clone{Clone} other{Save}} and edit", + "title": "{type, select, clone{Clone {dossierTemplateName}} other{Create dossier template}}" + }, "add-dossier-dialog": { "actions": { "save": "Save", @@ -87,8 +92,7 @@ "valid-from": "Valid from", "valid-to": "Valid to" }, - "save": "Save dossier template", - "title": "{type, select, edit{Edit {name}} create{Create} clone{Clone} other{}} dossier template" + "save": "Save dossier template" }, "add-edit-dossier-attribute": { "error": { @@ -1019,6 +1023,7 @@ "entities": "{count} {count, plural, one{entity} other{entities}}", "entries": "{count} {count, plural, one{entry} other{entries}}", "modified-on": "Modified on: {date}", + "title": "Edit dossier template", "valid-from": "Valid from: {date}", "valid-to": "Valid to: {date}" }, @@ -2492,4 +2497,4 @@ } }, "yesterday": "Yesterday" -} \ No newline at end of file +} diff --git a/libs/common-ui b/libs/common-ui index e737d134a..6f288516e 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit e737d134ad76d247570ed06e7bd21c4d4225c318 +Subproject commit 6f288516e3efa36ec9f1f9eb02d0374c988d3432 diff --git a/libs/red-domain/src/lib/dossier-templates/dossier-template.model.ts b/libs/red-domain/src/lib/dossier-templates/dossier-template.model.ts index 24403da76..b3e249e92 100644 --- a/libs/red-domain/src/lib/dossier-templates/dossier-template.model.ts +++ b/libs/red-domain/src/lib/dossier-templates/dossier-template.model.ts @@ -60,8 +60,4 @@ export class DossierTemplate implements IDossierTemplate, IListable { get routerLink(): string { return `/main/admin/dossier-templates/${this.dossierTemplateId}`; } - - get dossiersRouterLink(): string { - return `/main/${this.dossierTemplateId}/dossiers`; - } } From f9ca725899c4354e68b60186bfaae85521262185 Mon Sep 17 00:00:00 2001 From: Valentin Mihai Date: Mon, 20 May 2024 19:07:23 +0300 Subject: [PATCH 2/8] RED-8882 - update common ui --- libs/common-ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/common-ui b/libs/common-ui index 174d77d2e..4811d301e 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 174d77d2eaedb17b2e729efdc29a07e7942e46e5 +Subproject commit 4811d301e6980d3f7fb0125c673cb6b8b9b4f0cf From ef62fbe44a3675c32a26338cda0cf91b7dbb9d68 Mon Sep 17 00:00:00 2001 From: project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1 Date: Tue, 21 May 2024 01:03:53 +0000 Subject: [PATCH 3/8] push back localazy update --- apps/red-ui/src/assets/i18n/redact/de.json | 153 ++++++++++----------- apps/red-ui/src/assets/i18n/redact/en.json | 2 +- apps/red-ui/src/assets/i18n/scm/de.json | 153 ++++++++++----------- apps/red-ui/src/assets/i18n/scm/en.json | 2 +- 4 files changed, 152 insertions(+), 158 deletions(-) diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json index 237224cd5..02c8abe6c 100644 --- a/apps/red-ui/src/assets/i18n/redact/de.json +++ b/apps/red-ui/src/assets/i18n/redact/de.json @@ -250,6 +250,9 @@ "watermarks": "Watermarks" }, "analysis-disabled": "", + "annotation": { + "pending": "(Pending analysis)" + }, "annotation-actions": { "accept-recommendation": { "label": "Empfehlung annehmen" @@ -304,14 +307,14 @@ "error": "Rekategorisierung des Bildes gescheitert: {error}", "success": "Bild wurde einer neuen Kategorie zugeordnet." }, - "remove-hint": { - "error": "Failed to remove hint: {error}", - "success": "Hint removed!" - }, "remove": { "error": "Fehler beim Entfernen der Schwärzung: {error}", "success": "Schwärzung entfernt!" }, + "remove-hint": { + "error": "Failed to remove hint: {error}", + "success": "Hint removed!" + }, "undo": { "error": "Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error}", "success": "erfolgreich Rückgängig gemacht" @@ -324,15 +327,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" }, @@ -364,9 +367,6 @@ "skipped": "Übersprungen", "text-highlight": "Earmark" }, - "annotation": { - "pending": "(Pending analysis)" - }, "archived-dossiers-listing": { "no-data": { "title": "No archived dossiers." @@ -572,14 +572,18 @@ "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-file": { - "question": "Dieses Dokument enthält ungesehene Änderungen. Möchten Sie es trotzdem genehmigen?", + "approve-multiple-files": { + "question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen. Möchten Sie sie trotzdem genehmigen?", "title": "Warnung!" }, "approve-multiple-files-without-analysis": { @@ -588,10 +592,6 @@ "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?", @@ -955,13 +955,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": { @@ -1030,6 +1030,14 @@ "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", @@ -1065,14 +1073,6 @@ "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.", @@ -1268,6 +1268,15 @@ "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!" @@ -1282,28 +1291,19 @@ "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-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-dossier": { + "action": "Zurück zur Übersicht", + "label": "Das Dossier dieser Datei wurde gelöscht!" } }, "file-preview": { @@ -1321,6 +1321,12 @@ }, "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", @@ -1331,12 +1337,6 @@ "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": { @@ -1555,15 +1555,6 @@ "csv": "File attributes were imported successfully from uploaded CSV file." } }, - "filter-menu": { - "filter-options": "Filteroptionen", - "filter-types": "Filter", - "label": "Filter", - "pages-without-annotations": "Only pages without annotations", - "redaction-changes": "Nur Anmerkungen mit Schwärzungsänderungen", - "unseen-pages": "Nur Anmerkungen auf unsichtbaren Seiten", - "with-comments": "Nur Anmerkungen mit Kommentaren" - }, "filter": { "analysis": "Analyse erforderlich", "comment": "Kommentare", @@ -1573,6 +1564,15 @@ "redaction": "Geschwärzt", "updated": "Aktualisiert" }, + "filter-menu": { + "filter-options": "Filteroptionen", + "filter-types": "Filter", + "label": "Filter", + "pages-without-annotations": "Only pages without annotations", + "redaction-changes": "Nur Anmerkungen mit Schwärzungsänderungen", + "unseen-pages": "Nur Anmerkungen auf unsichtbaren Seiten", + "with-comments": "Nur Anmerkungen mit Kommentaren" + }, "filters": { "assigned-people": "Beauftragt", "documents-status": "Documents state", @@ -1642,11 +1642,9 @@ }, "help-mode": { "bottom-text": "Hilfe-Modus", + "button-text": "Help mode (H)", "clicking-anywhere-on": "Klicken Sie auf eine beliebige Stelle des Bildschirms um zu sehen, welche Bereiche interaktiv sind. Wenn Sie mit der Maus über einen interaktiven Bereich fahren, verändert sich der Mauszeiger, um Ihnen zu zeigen, ob ein Element interaktiv ist.", "instructions": "Hilfe-Modus-Anleitungen öffnen", - "options": { - "do-not-show-again": "" - }, "welcome-to-help-mode": " Willkommen im Hilfe-Modus!
Klicken Sie auf interaktive Elemente, um in einem neuen Tab Infos dazu zu erhalten.
" }, "highlight-action-dialog": { @@ -1845,6 +1843,13 @@ "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", @@ -1858,7 +1863,6 @@ "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", @@ -1876,6 +1880,7 @@ "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", @@ -1883,13 +1888,6 @@ }, "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", @@ -1970,7 +1968,6 @@ }, "form": { "auto-expand-filters-on-action": "Auto-expand filters on my actions", - "help-mode-dialog": "", "load-all-annotations-warning": "Warning regarding loading all annotations at once in file preview", "open-structured-view-by-default": "Display structured component management modal by default", "table-extraction-type": "Table extraction type" @@ -1982,16 +1979,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": { @@ -2215,6 +2212,12 @@ "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", @@ -2238,12 +2241,6 @@ "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": { @@ -2495,4 +2492,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 daed61374..e25d16d1c 100644 --- a/apps/red-ui/src/assets/i18n/redact/en.json +++ b/apps/red-ui/src/assets/i18n/redact/en.json @@ -2495,4 +2495,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 b12e2b014..0824ef3ef 100644 --- a/apps/red-ui/src/assets/i18n/scm/de.json +++ b/apps/red-ui/src/assets/i18n/scm/de.json @@ -250,6 +250,9 @@ "watermarks": "Watermarks" }, "analysis-disabled": "Analysis disabled", + "annotation": { + "pending": "(Pending analysis)" + }, "annotation-actions": { "accept-recommendation": { "label": "Empfehlung annehmen" @@ -304,14 +307,14 @@ "error": "Rekategorisierung des Bildes gescheitert: {error}", "success": "Bild wurde einer neuen Kategorie zugeordnet." }, - "remove-hint": { - "error": "Failed to remove hint: {error}", - "success": "Hint removed!" - }, "remove": { "error": "Fehler beim Entfernen der Schwärzung: {error}", "success": "Schwärzung entfernt!" }, + "remove-hint": { + "error": "Failed to remove hint: {error}", + "success": "Hint removed!" + }, "undo": { "error": "Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error}", "success": "erfolgreich Rückgängig gemacht" @@ -324,15 +327,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" }, @@ -364,9 +367,6 @@ "skipped": "Übersprungen", "text-highlight": "Earmark" }, - "annotation": { - "pending": "(Pending analysis)" - }, "archived-dossiers-listing": { "no-data": { "title": "No archived dossiers." @@ -572,14 +572,18 @@ "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-file": { - "question": "Dieses Dokument enthält ungesehene Änderungen. Möchten Sie es trotzdem genehmigen?", + "approve-multiple-files": { + "question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen. Möchten Sie sie trotzdem genehmigen?", "title": "Warnung!" }, "approve-multiple-files-without-analysis": { @@ -588,10 +592,6 @@ "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?", @@ -955,13 +955,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": { @@ -1030,6 +1030,14 @@ "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", @@ -1065,14 +1073,6 @@ "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.", @@ -1268,6 +1268,15 @@ "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!" @@ -1282,28 +1291,19 @@ "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-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-dossier": { + "action": "Zurück zur Übersicht", + "label": "Das Dossier dieser Datei wurde gelöscht!" } }, "file-preview": { @@ -1321,6 +1321,12 @@ }, "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", @@ -1331,12 +1337,6 @@ "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": { @@ -1555,15 +1555,6 @@ "csv": "File attributes were imported successfully from uploaded CSV file." } }, - "filter-menu": { - "filter-options": "Filteroptionen", - "filter-types": "Filter", - "label": "Filter", - "pages-without-annotations": "Only pages without annotations", - "redaction-changes": "Nur Anmerkungen mit Schwärzungsänderungen", - "unseen-pages": "Nur Anmerkungen auf unsichtbaren Seiten", - "with-comments": "Nur Anmerkungen mit Kommentaren" - }, "filter": { "analysis": "Analyse erforderlich", "comment": "Kommentare", @@ -1573,6 +1564,15 @@ "redaction": "Geschwärzt", "updated": "Aktualisiert" }, + "filter-menu": { + "filter-options": "Filteroptionen", + "filter-types": "Filter", + "label": "Filter", + "pages-without-annotations": "Only pages without annotations", + "redaction-changes": "Nur Anmerkungen mit Schwärzungsänderungen", + "unseen-pages": "Nur Anmerkungen auf unsichtbaren Seiten", + "with-comments": "Nur Anmerkungen mit Kommentaren" + }, "filters": { "assigned-people": "Beauftragt", "documents-status": "Documents state", @@ -1642,11 +1642,9 @@ }, "help-mode": { "bottom-text": "Hilfe-Modus", + "button-text": "Help mode (H)", "clicking-anywhere-on": "Klicken Sie auf eine beliebige Stelle des Bildschirms um zu sehen, welche Bereiche interaktiv sind. Wenn Sie mit der Maus über einen interaktiven Bereich fahren, verändert sich der Mauszeiger, um Ihnen zu zeigen, ob ein Element interaktiv ist.", "instructions": "Hilfe-Modus-Anleitungen öffnen", - "options": { - "do-not-show-again": "" - }, "welcome-to-help-mode": " Willkommen im Hilfe-Modus!
Klicken Sie auf interaktive Elemente, um in einem neuen Tab Infos dazu zu erhalten.
" }, "highlight-action-dialog": { @@ -1845,6 +1843,13 @@ "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", @@ -1858,7 +1863,6 @@ "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", @@ -1876,6 +1880,7 @@ "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", @@ -1883,13 +1888,6 @@ }, "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", @@ -1970,7 +1968,6 @@ }, "form": { "auto-expand-filters-on-action": "Auto expand filters on my actions", - "help-mode-dialog": "", "load-all-annotations-warning": "Warning regarding loading all annotations at once in file preview", "open-structured-view-by-default": "Display Component View by default when opening a document", "table-extraction-type": "Table extraction type" @@ -1982,16 +1979,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": { @@ -2215,6 +2212,12 @@ "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", @@ -2238,12 +2241,6 @@ "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": { @@ -2495,4 +2492,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 5f11a7363..03b1b26f7 100644 --- a/apps/red-ui/src/assets/i18n/scm/en.json +++ b/apps/red-ui/src/assets/i18n/scm/en.json @@ -2495,4 +2495,4 @@ } }, "yesterday": "Yesterday" -} +} \ No newline at end of file From 81ef952451bb64aca6a7b19b441a72f00bfd622f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kilian=20Sch=C3=BCttler?= Date: Tue, 21 May 2024 14:28:51 +0200 Subject: [PATCH 4/8] RED-9151: change text ordering to rendering order of the text --- .../pdf-viewer/services/document-viewer.service.ts | 8 +++++--- .../modules/pdf-viewer/services/webviewer-loaded.guard.ts | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/red-ui/src/app/modules/pdf-viewer/services/document-viewer.service.ts b/apps/red-ui/src/app/modules/pdf-viewer/services/document-viewer.service.ts index 4e6679ea3..fc85b35ce 100644 --- a/apps/red-ui/src/app/modules/pdf-viewer/services/document-viewer.service.ts +++ b/apps/red-ui/src/app/modules/pdf-viewer/services/document-viewer.service.ts @@ -105,9 +105,9 @@ export class REDDocumentViewer { this.#pdf.instance.UI.setAnnotationContentOverlayHandler(() => (current ? undefined : false)); } - init(document: DocumentViewer) { + init(document: DocumentViewer, zOrderFlag: number) { this.#document = document; - this.#listenForDocEvents(); + this.#listenForDocEvents(zOrderFlag); this.keyUp$ = this.#keyUp$; } @@ -160,7 +160,7 @@ export class REDDocumentViewer { } } - #listenForDocEvents() { + #listenForDocEvents(zOrderFlag: number) { this.#document.addEventListener('textSelected', (quads: Quad, selectedText: string, pageNumber: number) => { this.selectedText$.next(selectedText); this.#disableTextPopupIfCompareMode(pageNumber); @@ -180,6 +180,8 @@ export class REDDocumentViewer { this.#document.addEventListener('documentLoaded', () => { this.#logger.info('[PDF] Document loaded'); + this.document.setTextExtractorProcessingFlags([zOrderFlag]); + this.#pdf.runWithCleanup(() => { this.#flattenAnnotations().then(); this.#setCurrentPage(); diff --git a/apps/red-ui/src/app/modules/pdf-viewer/services/webviewer-loaded.guard.ts b/apps/red-ui/src/app/modules/pdf-viewer/services/webviewer-loaded.guard.ts index 2f6491588..06166a4fc 100644 --- a/apps/red-ui/src/app/modules/pdf-viewer/services/webviewer-loaded.guard.ts +++ b/apps/red-ui/src/app/modules/pdf-viewer/services/webviewer-loaded.guard.ts @@ -35,7 +35,7 @@ export function webViewerLoadedGuard(): CanActivateFn | ResolveFn { } annotationManager.init(instance.Core.annotationManager); - documentViewer.init(instance.Core.documentViewer); + documentViewer.init(instance.Core.documentViewer, instance.Core.TextExtractorProcessingFlags.EXTRACT_USING_ZORDER); viewerHeaderService.init(); return !!pdf.instance; From 977213c70ed6084708d4b78dbfa5bded4dfd3937 Mon Sep 17 00:00:00 2001 From: project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1 Date: Wed, 22 May 2024 01:03:37 +0000 Subject: [PATCH 5/8] push back localazy update --- apps/red-ui/src/assets/i18n/redact/de.json | 5 ++++- apps/red-ui/src/assets/i18n/scm/de.json | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json index 02c8abe6c..28c04b572 100644 --- a/apps/red-ui/src/assets/i18n/redact/de.json +++ b/apps/red-ui/src/assets/i18n/redact/de.json @@ -1642,9 +1642,11 @@ }, "help-mode": { "bottom-text": "Hilfe-Modus", - "button-text": "Help mode (H)", "clicking-anywhere-on": "Klicken Sie auf eine beliebige Stelle des Bildschirms um zu sehen, welche Bereiche interaktiv sind. Wenn Sie mit der Maus über einen interaktiven Bereich fahren, verändert sich der Mauszeiger, um Ihnen zu zeigen, ob ein Element interaktiv ist.", "instructions": "Hilfe-Modus-Anleitungen öffnen", + "options": { + "do-not-show-again": "Do not show again" + }, "welcome-to-help-mode": " Willkommen im Hilfe-Modus!
Klicken Sie auf interaktive Elemente, um in einem neuen Tab Infos dazu zu erhalten.
" }, "highlight-action-dialog": { @@ -1968,6 +1970,7 @@ }, "form": { "auto-expand-filters-on-action": "Auto-expand filters on my actions", + "help-mode-dialog": "Help Mode Dialog", "load-all-annotations-warning": "Warning regarding loading all annotations at once in file preview", "open-structured-view-by-default": "Display structured component management modal by default", "table-extraction-type": "Table extraction type" diff --git a/apps/red-ui/src/assets/i18n/scm/de.json b/apps/red-ui/src/assets/i18n/scm/de.json index 0824ef3ef..eb4acdb2c 100644 --- a/apps/red-ui/src/assets/i18n/scm/de.json +++ b/apps/red-ui/src/assets/i18n/scm/de.json @@ -1642,9 +1642,11 @@ }, "help-mode": { "bottom-text": "Hilfe-Modus", - "button-text": "Help mode (H)", "clicking-anywhere-on": "Klicken Sie auf eine beliebige Stelle des Bildschirms um zu sehen, welche Bereiche interaktiv sind. Wenn Sie mit der Maus über einen interaktiven Bereich fahren, verändert sich der Mauszeiger, um Ihnen zu zeigen, ob ein Element interaktiv ist.", "instructions": "Hilfe-Modus-Anleitungen öffnen", + "options": { + "do-not-show-again": "Do not show again" + }, "welcome-to-help-mode": " Willkommen im Hilfe-Modus!
Klicken Sie auf interaktive Elemente, um in einem neuen Tab Infos dazu zu erhalten.
" }, "highlight-action-dialog": { @@ -1968,6 +1970,7 @@ }, "form": { "auto-expand-filters-on-action": "Auto expand filters on my actions", + "help-mode-dialog": "Help Mode Dialog", "load-all-annotations-warning": "Warning regarding loading all annotations at once in file preview", "open-structured-view-by-default": "Display Component View by default when opening a document", "table-extraction-type": "Table extraction type" From 7319cc7cc9016770d1a07c7c10b4522137e8a79b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Wed, 22 May 2024 14:16:35 +0300 Subject: [PATCH 6/8] RED-8872: More readonly tabs in edit dossier, rework to signals --- .../edit-dossier-dialog.component.html | 38 +++--- .../edit-dossier-dialog.component.ts | 117 ++++++++---------- .../src/app/services/permissions.service.ts | 9 +- 3 files changed, 77 insertions(+), 87 deletions(-) diff --git a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.html b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.html index e4961c79b..82dc74088 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.html +++ b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.html @@ -1,18 +1,18 @@ -
+
-
+
{{ item.sideNavTitle || item.title | translate }} @@ -22,46 +22,46 @@
-
-
- {{ activeNavItem.title | translate }} +
+
+ {{ activeNavItem().title | translate }}
-
+
{{ 'readonly' | translate }}
- +
; + + readonly activeNav: WritableSignal
; + readonly dossier: Signal; + readonly navItems: Signal; + readonly activeNavItem: Signal; + readonly activeComponent: Signal; + readonly noPaddingTab: Signal; + readonly showHeading: Signal; + readonly showActionButtons: Signal; + @ViewChild(EditDossierGeneralInfoComponent) generalInfoComponent: EditDossierGeneralInfoComponent; @ViewChild(EditDossierDownloadPackageComponent) downloadPackageComponent: EditDossierDownloadPackageComponent; @ViewChild(EditDossierDictionaryComponent) dictionaryComponent: EditDossierDictionaryComponent; @ViewChild(EditDossierTeamComponent) membersComponent: EditDossierTeamComponent; @ViewChild(EditDossierAttributesComponent) attributesComponent: EditDossierAttributesComponent; - readonly #currentUser = getCurrentUser(); - #dossier: Dossier; constructor( - readonly iqserPermissionsService: IqserPermissionsService, private readonly _dossiersService: DossiersService, private readonly _permissionsService: PermissionsService, protected readonly _dialogRef: MatDialogRef, @@ -61,72 +63,43 @@ export class EditDossierDialogComponent extends BaseDialogComponent implements A readonly configService: ConfigService, ) { super(_dialogRef, true); - this.dossier$ = this._dossiersService.getEntityChanged$(this._data.dossierId).pipe( - tap(dossier => { - this.#dossier = dossier; - this._initializeNavItems(); - }), - ); - this.activeNav = this._data.section || 'dossierInfo'; - } - - get activeNavItem(): NavItem { - return this.navItems.find(item => item.key === this.activeNav); - } - - get activeComponent(): EditDossierSectionInterface { - return { - dossierInfo: this.generalInfoComponent, - downloadPackage: this.downloadPackageComponent, - dossierDictionary: this.dictionaryComponent, - members: this.membersComponent, - dossierAttributes: this.attributesComponent, - }[this.activeNav]; - } - - get noPaddingTab(): boolean { - return ['dossierAttributes', 'dossierDictionary'].includes(this.activeNav); - } - - get showHeading(): boolean { - return !['dossierAttributes', 'dossierDictionary'].includes(this.activeNav); - } - - get showActionButtons(): boolean { - return ( - (['dossierDictionary'].includes(this.activeNav) && this._permissionsService.canEditDossierDictionary(this.#dossier)) || - (['members'].includes(this.activeNav) && - this.#currentUser.isManager && - this.iqserPermissionsService.has(Roles.dossiers.edit)) || - this._permissionsService.canEditDossier(this.#dossier) - ); + this.dossier = toSignal(this._dossiersService.getEntityChanged$(this._data.dossierId)); + this.navItems = computed(() => this._getNavItems(this.dossier())); + this.activeNav = signal(this._data.section || 'dossierInfo'); + this.activeNavItem = computed(() => this.navItems().find(item => item.key === this.activeNav())); + this.activeComponent = computed(() => this._getActiveComponent(this.activeNav())); + this.noPaddingTab = computed(() => ['dossierAttributes', 'dossierDictionary'].includes(this.activeNav())); + this.showHeading = computed(() => !['dossierAttributes', 'dossierDictionary'].includes(this.activeNav())); + this.showActionButtons = computed(() => !this.activeNavItem().readonly); } get changed(): boolean { - return this.activeComponent?.changed; + return this.activeComponent()?.changed; } get valid(): boolean { - return this.activeComponent?.valid; + return this.activeComponent()?.valid; } get disabled(): boolean { - return this.activeComponent?.disabled; + return this.activeComponent()?.disabled; } ngAfterViewInit() { - if (!this.#dossier.ownerId) { + if (!untracked(this.dossier).ownerId) { this._toaster.error(_('edit-dossier-dialog.missing-owner')); } } async save(options?: SaveOptions) { this._loadingService.start(); - const result = await this.activeComponent.save(); + const result = await untracked(this.activeComponent).save(); this._loadingService.stop(); if (result.success) { - this._toaster.success(_('edit-dossier-dialog.change-successful'), { params: { dossierName: this.#dossier.dossierName } }); + this._toaster.success(_('edit-dossier-dialog.change-successful'), { + params: { dossierName: untracked(this.dossier).dossierName }, + }); } if (result.success && options?.closeAfterSave) { @@ -135,7 +108,7 @@ export class EditDossierDialogComponent extends BaseDialogComponent implements A } revert() { - this.activeComponent.revert(); + untracked(this.activeComponent).revert(); } changeTab(key: Section) { @@ -146,34 +119,44 @@ export class EditDossierDialogComponent extends BaseDialogComponent implements A } else { this.revert(); } - this.activeNav = key; + this.activeNav.set(key); }); } else { - this.activeNav = key; + this.activeNav.set(key); } } - private _initializeNavItems(): void { - this.navItems = [ + private _getActiveComponent(section: Section): EditDossierSectionInterface { + return { + dossierInfo: this.generalInfoComponent, + downloadPackage: this.downloadPackageComponent, + dossierDictionary: this.dictionaryComponent, + members: this.membersComponent, + dossierAttributes: this.attributesComponent, + }[section]; + } + + private _getNavItems(dossier: Dossier): NavItem[] { + return [ { key: 'dossierInfo', title: _('edit-dossier-dialog.nav-items.general-info'), sideNavTitle: _('edit-dossier-dialog.nav-items.dossier-info'), - readonly: !this.#dossier.isActive || !this._permissionsService.canEditDossier(this.#dossier), + readonly: !this._permissionsService.canEditDossier(dossier), helpModeKey: 'edit_dossier_dossier_info_DIALOG', }, { key: 'downloadPackage', title: _('edit-dossier-dialog.nav-items.choose-download'), sideNavTitle: _('edit-dossier-dialog.nav-items.download-package'), - readonly: !this._permissionsService.canEditDossier(this.#dossier), + readonly: !this._permissionsService.canEditDossier(dossier), helpModeKey: 'edit_dossier_download_package_DIALOG', }, { key: 'dossierDictionary', sideNavTitle: _('edit-dossier-dialog.nav-items.dictionary'), title: _('edit-dossier-dialog.nav-items.dossier-dictionary'), - readonly: !this._permissionsService.canEditDossierDictionary(this.#dossier), + readonly: !this._permissionsService.canEditDossierDictionary(dossier), helpModeKey: 'edit_dossier_dossier_dictionary_DIALOG', hide: this.configService.values.IS_DOCUMINE, }, @@ -181,13 +164,13 @@ export class EditDossierDialogComponent extends BaseDialogComponent implements A key: 'members', title: _('edit-dossier-dialog.nav-items.team-members'), sideNavTitle: _('edit-dossier-dialog.nav-items.members'), - readonly: !this._permissionsService.canEditTeamMembers(this.#dossier), + readonly: !this._permissionsService.canEditTeamMembers(dossier), helpModeKey: 'edit_dossier_members_DIALOG', }, { key: 'dossierAttributes', title: _('edit-dossier-dialog.nav-items.dossier-attributes'), - readonly: !this._permissionsService.canEditDossierAttributes(this.#dossier), + readonly: !this._permissionsService.canEditDossierAttributes(dossier), helpModeKey: 'edit_dossier_dossier_attributes_DIALOG', }, ]; diff --git a/apps/red-ui/src/app/services/permissions.service.ts b/apps/red-ui/src/app/services/permissions.service.ts index 05e98f73d..0786aa785 100644 --- a/apps/red-ui/src/app/services/permissions.service.ts +++ b/apps/red-ui/src/app/services/permissions.service.ts @@ -302,7 +302,14 @@ export class PermissionsService { } canEditDossier(dossier: Dossier): boolean { - return this._iqserPermissionsService.has(Roles.dossiers.edit) && this.isManager() && !!dossier?.ownerId; + const dossierTemplate = this._dossierTemplatesService.find(dossier.dossierTemplateId); + return ( + this._iqserPermissionsService.has(Roles.dossiers.edit) && + this.isManager() && + !!dossier?.ownerId && + dossier.isActive && + dossierTemplate.isActive + ); } canEditDossierDictionary(dossier: Dossier): boolean { From 19c51fa7211549f2c1c3734836a67a2d50682e1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Wed, 22 May 2024 14:18:07 +0300 Subject: [PATCH 7/8] RED-3800: Remove commented css --- .../dossier-template-info-screen.component.scss | 6 ------ 1 file changed, 6 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.scss index a18ca9b6d..d16588a5d 100644 --- a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.scss @@ -1,11 +1,5 @@ @use 'common-mixins'; -//:host { -// display: flex; -// flex-grow: 1; -// overflow: hidden; -//} - .content-container { display: flex; justify-content: center; From 0ff7c16d0d2ea4e25d8a96cba265517c1a2ecfa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Wed, 22 May 2024 14:37:40 +0300 Subject: [PATCH 8/8] RED-6959: Added selected items count to table header --- apps/red-ui/src/assets/i18n/redact/de.json | 6 ++++-- apps/red-ui/src/assets/i18n/redact/en.json | 6 ++++-- apps/red-ui/src/assets/i18n/scm/de.json | 6 ++++-- apps/red-ui/src/assets/i18n/scm/en.json | 6 ++++-- libs/common-ui | 2 +- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json index f7a32c6c6..50e72fa0e 100644 --- a/apps/red-ui/src/assets/i18n/redact/de.json +++ b/apps/red-ui/src/assets/i18n/redact/de.json @@ -1984,8 +1984,7 @@ "title": "Edit preferences", "warnings-description": "Selecting the 'Do not show this message again' checkbox will skip the warning dialog the next time you trigger it.", "warnings-label": "Prompts and dialogs", - "warnings-subtitle": "Do not show again options", - "warnings-title": "Prompts and dialogs settings" + "warnings-subtitle": "Do not show again options" }, "processing-status": { "ocr": "OCR", @@ -2263,6 +2262,9 @@ }, "title": "Authentifizierung aktivieren" }, + "table-header": { + "selected-count": "" + }, "tenant-resolve": { "contact-administrator": "Cannot remember the workspace? Please contact your administrator.", "header": { diff --git a/apps/red-ui/src/assets/i18n/redact/en.json b/apps/red-ui/src/assets/i18n/redact/en.json index 603905e9d..9ece25962 100644 --- a/apps/red-ui/src/assets/i18n/redact/en.json +++ b/apps/red-ui/src/assets/i18n/redact/en.json @@ -1984,8 +1984,7 @@ "title": "Edit preferences", "warnings-description": "Selecting the 'Do not show this message again' checkbox will skip the warning dialog the next time you trigger it.", "warnings-label": "Prompts and dialogs", - "warnings-subtitle": "Do not show again options", - "warnings-title": "Prompts and dialogs settings" + "warnings-subtitle": "Do not show again options" }, "processing-status": { "ocr": "OCR", @@ -2263,6 +2262,9 @@ }, "title": "Enable authentication" }, + "table-header": { + "selected-count": "{count} selected" + }, "tenant-resolve": { "contact-administrator": "Cannot remember the workspace? Please contact your administrator.", "header": { diff --git a/apps/red-ui/src/assets/i18n/scm/de.json b/apps/red-ui/src/assets/i18n/scm/de.json index 59fc1c3f4..b609290af 100644 --- a/apps/red-ui/src/assets/i18n/scm/de.json +++ b/apps/red-ui/src/assets/i18n/scm/de.json @@ -1984,8 +1984,7 @@ "title": "Edit preferences", "warnings-description": "Selecting the 'Do not show this message again' checkbox will skip the warning dialog the next time you trigger it.", "warnings-label": "Prompts and dialogs", - "warnings-subtitle": "Do not show again options", - "warnings-title": "Prompts and dialogs settings" + "warnings-subtitle": "Do not show again options" }, "processing-status": { "ocr": "OCR", @@ -2263,6 +2262,9 @@ }, "title": "Authentifizierung aktivieren" }, + "table-header": { + "selected-count": "" + }, "tenant-resolve": { "contact-administrator": "Cannot remember the workspace? Please contact your administrator.", "header": { diff --git a/apps/red-ui/src/assets/i18n/scm/en.json b/apps/red-ui/src/assets/i18n/scm/en.json index 90c507af3..c0df22d62 100644 --- a/apps/red-ui/src/assets/i18n/scm/en.json +++ b/apps/red-ui/src/assets/i18n/scm/en.json @@ -1984,8 +1984,7 @@ "title": "Edit preferences", "warnings-description": "Selecting the 'Do not show this message again' checkbox will skip the warning dialog the next time you trigger it.", "warnings-label": "Prompts and dialogs", - "warnings-subtitle": "Do not show again options", - "warnings-title": "Prompts and dialogs settings" + "warnings-subtitle": "Do not show again options" }, "processing-status": { "ocr": "OCR", @@ -2263,6 +2262,9 @@ }, "title": "Enable authentication" }, + "table-header": { + "selected-count": "{count} selected" + }, "tenant-resolve": { "contact-administrator": "Cannot remember the workspace? Please contact your administrator.", "header": { diff --git a/libs/common-ui b/libs/common-ui index 4811d301e..e8f5bc8f2 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 4811d301e6980d3f7fb0125c673cb6b8b9b4f0cf +Subproject commit e8f5bc8f2c0716cd20beb9315b67807157c6c9cc