From bea8e6e8a4e3880ebe8f27a385132b36e93e9c15 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Wed, 9 Aug 2023 19:50:57 +0300 Subject: [PATCH] RED-7081 & RED-7005 add upload settings for dossier templates --- ...one-dossier-template-dialog.component.html | 49 +++++++++++++------ ...one-dossier-template-dialog.component.scss | 8 +++ ...clone-dossier-template-dialog.component.ts | 12 +++-- .../dossier-templates.service.ts | 18 +++---- apps/red-ui/src/assets/i18n/redact/de.json | 5 ++ apps/red-ui/src/assets/i18n/redact/en.json | 5 ++ apps/red-ui/src/assets/i18n/scm/de.json | 5 ++ apps/red-ui/src/assets/i18n/scm/en.json | 5 ++ libs/common-ui | 2 +- .../dossier-template.model.ts | 8 ++- .../lib/dossier-templates/dossier-template.ts | 2 + 11 files changed, 87 insertions(+), 32 deletions(-) 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 index 931efd74f..64cbc1dbe 100644 --- 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 @@ -79,22 +79,41 @@ - -

{{ 'download-includes' | 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 }}

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 index ef0294250..d448507ed 100644 --- 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 @@ -48,3 +48,11 @@ redaction-select { } } } + +.half-flex-basis { + flex-basis: 50%; +} + +.px-16 { + padding: 0 16px 0 16px; +} 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 index 2537456d6..afb0def58 100644 --- 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 @@ -1,13 +1,13 @@ +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 { applyIntervalConstraints } from '@utils/date-inputs-utils'; -import { downloadTypesTranslations } from '@translations/download-types-translations'; -import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service'; -import { BaseDialogComponent, getConfig } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { BaseDialogComponent, getConfig } from '@iqser/common-ui'; import { DossierTemplate, IDossierTemplate } from '@red/domain'; -import { HttpStatusCode } from '@angular/common/http'; +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 { @@ -125,6 +125,8 @@ export class AddEditCloneDossierTemplateDialogComponent extends BaseDialogCompon 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], diff --git a/apps/red-ui/src/app/services/dossier-templates/dossier-templates.service.ts b/apps/red-ui/src/app/services/dossier-templates/dossier-templates.service.ts index 001ea18b3..13a45ae97 100644 --- a/apps/red-ui/src/app/services/dossier-templates/dossier-templates.service.ts +++ b/apps/red-ui/src/app/services/dossier-templates/dossier-templates.service.ts @@ -1,16 +1,16 @@ -import { EntitiesService, Toaster } from '@iqser/common-ui'; -import { DossierTemplate, IDossierTemplate } from '@red/domain'; -import { Injectable } from '@angular/core'; -import { firstValueFrom, forkJoin, Observable, of } from 'rxjs'; -import { FileAttributesService } from '../entity-services/file-attributes.service'; -import { catchError, map, mapTo, switchMap, tap } from 'rxjs/operators'; -import { DossierTemplateStatsService } from '../entity-services/dossier-template-stats.service'; import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http'; +import { Injectable } from '@angular/core'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { DictionaryService } from '../entity-services/dictionary.service'; +import { EntitiesService, Toaster } from '@iqser/common-ui'; +import { List, mapEach } from '@iqser/common-ui/lib/utils'; +import { DossierTemplate, IDossierTemplate } from '@red/domain'; import { DefaultColorsService } from '@services/entity-services/default-colors.service'; import { WatermarkService } from '@services/entity-services/watermark.service'; -import { List, mapEach } from '@iqser/common-ui/lib/utils'; +import { firstValueFrom, forkJoin, Observable, of } from 'rxjs'; +import { catchError, map, mapTo, switchMap, tap } from 'rxjs/operators'; +import { DictionaryService } from '../entity-services/dictionary.service'; +import { DossierTemplateStatsService } from '../entity-services/dossier-template-stats.service'; +import { FileAttributesService } from '../entity-services/file-attributes.service'; const DOSSIER_TEMPLATE_CONFLICT_MSG = _('dossier-templates-listing.error.conflict'); const GENERIC_MSG = _('dossier-templates-listing.error.generic'); diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json index 925fc0472..c3851bed7 100644 --- a/apps/red-ui/src/assets/i18n/redact/de.json +++ b/apps/red-ui/src/assets/i18n/redact/de.json @@ -80,6 +80,11 @@ "description": "", "title": "" }, + "upload-settings": { + "heading": "", + "ocr-by-default": "", + "remove-watermark": "" + }, "valid-from": "Gültig ab", "valid-to": "Gültig bis" }, diff --git a/apps/red-ui/src/assets/i18n/redact/en.json b/apps/red-ui/src/assets/i18n/redact/en.json index f6a4b4f31..5e89ea950 100644 --- a/apps/red-ui/src/assets/i18n/redact/en.json +++ b/apps/red-ui/src/assets/i18n/redact/en.json @@ -80,6 +80,11 @@ "description": "Overlapping elements in the document can potentially contain hidden sensitive information. Removing overlapping elements may result in a bigger file size and an increased processing duration.", "title": "Keep overlapping elements" }, + "upload-settings": { + "heading": "Upload settings", + "ocr-by-default": "Automatically perform OCR on document upload", + "remove-watermark": "Remove watermarks before processing OCR" + }, "valid-from": "Valid from", "valid-to": "Valid to" }, diff --git a/apps/red-ui/src/assets/i18n/scm/de.json b/apps/red-ui/src/assets/i18n/scm/de.json index 55180cc1a..fd8765d0c 100644 --- a/apps/red-ui/src/assets/i18n/scm/de.json +++ b/apps/red-ui/src/assets/i18n/scm/de.json @@ -80,6 +80,11 @@ "description": "", "title": "" }, + "upload-settings": { + "heading": "", + "ocr-by-default": "", + "remove-watermark": "" + }, "valid-from": "Gültig ab", "valid-to": "Gültig bis" }, diff --git a/apps/red-ui/src/assets/i18n/scm/en.json b/apps/red-ui/src/assets/i18n/scm/en.json index 7ea454797..048521ff9 100644 --- a/apps/red-ui/src/assets/i18n/scm/en.json +++ b/apps/red-ui/src/assets/i18n/scm/en.json @@ -80,6 +80,11 @@ "description": "Overlapping elements in the document can potentially contain hidden sensitive information. Removing overlapping elements may result in a bigger file size and an increased processing duration.", "title": "Keep overlapping elements" }, + "upload-settings": { + "heading": "", + "ocr-by-default": "", + "remove-watermark": "" + }, "valid-from": "Valid from", "valid-to": "Valid to" }, diff --git a/libs/common-ui b/libs/common-ui index a52f55b5d..ed00a87a7 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit a52f55b5d4b7a18c8e921a193b34619f85912a1b +Subproject commit ed00a87a7a2dd1331d7bb097ee031f8ab63ec1cb 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 6285071a3..24403da76 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 @@ -1,8 +1,8 @@ import { IListable } from '@iqser/common-ui'; -import { IDossierTemplate } from './dossier-template'; +import { List } from '@iqser/common-ui/lib/utils'; import { DownloadFileType } from '../shared'; import { DossierTemplateStatus, DossierTemplateStatuses } from './constants'; -import { List } from '@iqser/common-ui/lib/utils'; +import { IDossierTemplate } from './dossier-template'; export class DossierTemplate implements IDossierTemplate, IListable { readonly createdBy: string; @@ -21,6 +21,8 @@ export class DossierTemplate implements IDossierTemplate, IListable { readonly keepImageMetadata: boolean; readonly keepOverlappingObjects: boolean; readonly applyDictionaryUpdatesToAllDossiersByDefault: boolean; + readonly ocrByDefault: boolean; + readonly removeWatermark: boolean; constructor(dossierTemplate: IDossierTemplate) { this.createdBy = dossierTemplate.createdBy; @@ -39,6 +41,8 @@ export class DossierTemplate implements IDossierTemplate, IListable { this.keepImageMetadata = dossierTemplate.keepImageMetadata; this.keepOverlappingObjects = dossierTemplate.keepOverlappingObjects; this.applyDictionaryUpdatesToAllDossiersByDefault = dossierTemplate.applyDictionaryUpdatesToAllDossiersByDefault; + this.ocrByDefault = dossierTemplate.ocrByDefault; + this.removeWatermark = dossierTemplate.removeWatermark; } get isActive(): boolean { diff --git a/libs/red-domain/src/lib/dossier-templates/dossier-template.ts b/libs/red-domain/src/lib/dossier-templates/dossier-template.ts index 17719be09..c0c1c6af4 100644 --- a/libs/red-domain/src/lib/dossier-templates/dossier-template.ts +++ b/libs/red-domain/src/lib/dossier-templates/dossier-template.ts @@ -61,4 +61,6 @@ export interface IDossierTemplate { */ readonly keepOverlappingObjects: boolean; readonly applyDictionaryUpdatesToAllDossiersByDefault: boolean; + readonly ocrByDefault: boolean; + readonly removeWatermark: boolean; }