diff --git a/.eslintrc.json b/.eslintrc.json index 567c024ba..6790da491 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -11,7 +11,6 @@ { "enforceBuildableLibDependency": true, "allow": [ - "@redaction/red-ui-http", "@redaction/red-cache", "@services/**", "@components/**", diff --git a/angular.json b/angular.json index 0e78f4204..990116c5b 100644 --- a/angular.json +++ b/angular.json @@ -210,41 +210,6 @@ "outputs": ["coverage/apps/red-ui"] } } - }, - "red-ui-http": { - "projectType": "library", - "root": "libs/red-ui-http", - "sourceRoot": "libs/red-ui-http/src", - "prefix": "redaction", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:ng-packagr", - "options": { - "tsConfig": "libs/red-ui-http/tsconfig.lib.json", - "project": "libs/red-ui-http/ng-package.json" - } - }, - "lint": { - "builder": "@nrwl/linter:eslint", - "options": { - "lintFilePatterns": ["libs/red-ui-http/src/**/*.ts", "libs/red-ui-http/src/**/*.html"] - }, - "outputs": ["{options.outputFile}"] - }, - "test": { - "builder": "@nrwl/jest:jest", - "options": { - "jestConfig": "libs/red-ui-http/jest.config.js", - "passWithNoTests": true - }, - "outputs": ["coverage/libs/red-ui-http"] - } - }, - "schematics": { - "@schematics/angular:component": { - "style": "scss" - } - } } } } diff --git a/apps/red-ui/src/app/components/downloads-list-screen/downloads-list-screen.component.ts b/apps/red-ui/src/app/components/downloads-list-screen/downloads-list-screen.component.ts index fc39331e1..73cee8af0 100644 --- a/apps/red-ui/src/app/components/downloads-list-screen/downloads-list-screen.component.ts +++ b/apps/red-ui/src/app/components/downloads-list-screen/downloads-list-screen.component.ts @@ -1,6 +1,6 @@ import { Component, forwardRef, Injector } from '@angular/core'; import { FileDownloadService } from '@upload-download/services/file-download.service'; -import { DownloadStatus } from '@upload-download/model/download-status'; +import { DownloadStatus } from '@red/domain'; import { CircleButtonTypes, DefaultListingServicesTmp, diff --git a/apps/red-ui/src/app/components/notifications/notifications.component.html b/apps/red-ui/src/app/components/notifications/notifications.component.html index 3b2f42e76..a7ef00a67 100644 --- a/apps/red-ui/src/app/components/notifications/notifications.component.html +++ b/apps/red-ui/src/app/components/notifications/notifications.component.html @@ -10,10 +10,14 @@ [verticalPadding]="0" > -
-
{{ group.date }}
+
+
+
{{ group.date }}
+
View all
+
+
{{ notification.time }}
notifications.filter(n => !n.readDate).length > 0), distinctUntilChanged(), + shareReplay(1), ); } @@ -46,9 +48,9 @@ export class NotificationsComponent implements OnInit { await this._loadData(); } - async markRead(notification: Notification, $event, isRead = true): Promise { + async markRead($event, notifications: List = this._notifications$.getValue().map(n => n.id), isRead = true): Promise { $event.stopPropagation(); - await this._notificationsService.toggleNotificationRead([notification.id], isRead).toPromise(); + await this._notificationsService.toggleNotificationRead(notifications, isRead).toPromise(); await this._loadData(); } diff --git a/apps/red-ui/src/app/models/file/annotation.wrapper.ts b/apps/red-ui/src/app/models/file/annotation.wrapper.ts index 83c93a4ef..ff1c95d17 100644 --- a/apps/red-ui/src/app/models/file/annotation.wrapper.ts +++ b/apps/red-ui/src/app/models/file/annotation.wrapper.ts @@ -1,7 +1,7 @@ -import { Comment, Point, Rectangle } from '@redaction/red-ui-http'; import { RedactionLogEntryWrapper } from './redaction-log-entry.wrapper'; import { annotationTypesTranslations } from '../../translations/annotation-types-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { IComment, IPoint, IRectangle } from '@red/domain'; export type AnnotationSuperType = | 'add-dictionary' @@ -29,8 +29,8 @@ export class AnnotationWrapper { typeValue: string; recategorizationType: string; color: string; - comments: Comment[] = []; - firstTopLeftPoint: Point; + comments: IComment[] = []; + firstTopLeftPoint: IPoint; annotationId: string; shortContent: string; content: string; @@ -41,7 +41,7 @@ export class AnnotationWrapper { redaction: boolean; status: string; dictionaryOperation: boolean; - positions: Rectangle[]; + positions: IRectangle[]; recommendationType: string; legalBasisValue: string; legalBasisChangeValue?: string; diff --git a/apps/red-ui/src/app/models/file/file-data.model.ts b/apps/red-ui/src/app/models/file/file-data.model.ts index 0658137e6..4a82bd0a4 100644 --- a/apps/red-ui/src/app/models/file/file-data.model.ts +++ b/apps/red-ui/src/app/models/file/file-data.model.ts @@ -1,10 +1,7 @@ -import { RedactionLog, RedactionLogEntry } from '@redaction/red-ui-http'; -import { File } from './file'; +import { Dictionary, File, IRedactionLog, IRedactionLogEntry, IViewedPage, User, ViewMode } from '@red/domain'; import { AnnotationWrapper } from './annotation.wrapper'; import { RedactionLogEntryWrapper } from './redaction-log-entry.wrapper'; -import { ViewMode } from './view-mode'; import * as moment from 'moment'; -import { Dictionary, IViewedPage, User } from '@red/domain'; export class AnnotationData { visibleAnnotations: AnnotationWrapper[]; @@ -16,7 +13,7 @@ export class FileDataModel { hasChangeLog: boolean; - constructor(public file: File, public fileData: Blob, public redactionLog: RedactionLog, public viewedPages?: IViewedPage[]) {} + constructor(public file: File, public fileData: Blob, public redactionLog: IRedactionLog, public viewedPages?: IViewedPage[]) {} getAnnotations( dictionaryData: { [p: string]: Dictionary }, @@ -103,7 +100,7 @@ export class FileDataModel { return result; } - private _isChangeLogEntry(redactionLogEntry: RedactionLogEntry, wrapper: RedactionLogEntryWrapper) { + private _isChangeLogEntry(redactionLogEntry: IRedactionLogEntry, wrapper: RedactionLogEntryWrapper) { if (this.file.numberOfAnalyses > 1) { redactionLogEntry.changes.sort((a, b) => moment(a.dateTime).valueOf() - moment(b.dateTime).valueOf()); diff --git a/apps/red-ui/src/app/models/file/file-type.ts b/apps/red-ui/src/app/models/file/file-type.ts deleted file mode 100644 index 3087b0097..000000000 --- a/apps/red-ui/src/app/models/file/file-type.ts +++ /dev/null @@ -1,6 +0,0 @@ -export enum FileType { - ORIGINAL = 'ORIGINAL', - ANNOTATED = 'ANNOTATED', - REDACTED = 'REDACTED', - FLAT_REDACTED = 'FLAT_REDACTED', -} diff --git a/apps/red-ui/src/app/models/file/manual-annotation-response.ts b/apps/red-ui/src/app/models/file/manual-annotation-response.ts index c19074328..d7f4c623d 100644 --- a/apps/red-ui/src/app/models/file/manual-annotation-response.ts +++ b/apps/red-ui/src/app/models/file/manual-annotation-response.ts @@ -1,11 +1,11 @@ import { ManualRedactionEntryWrapper } from './manual-redaction-entry.wrapper'; -import { ManualAddResponse } from '@redaction/red-ui-http'; +import { IManualAddResponse } from '@red/domain'; export class ManualAnnotationResponse { annotationId; commentId; - constructor(public manualRedactionEntryWrapper: ManualRedactionEntryWrapper, public manualAddResponse: ManualAddResponse) { + constructor(public manualRedactionEntryWrapper: ManualRedactionEntryWrapper, public manualAddResponse: IManualAddResponse) { this.annotationId = manualAddResponse?.annotationId ? manualAddResponse.annotationId : new Date().getTime(); this.commentId = manualAddResponse?.commentId ? manualAddResponse.commentId : new Date().getTime(); } diff --git a/apps/red-ui/src/app/models/file/manual-redaction-entry.wrapper.ts b/apps/red-ui/src/app/models/file/manual-redaction-entry.wrapper.ts index 05e31dc74..39714983c 100644 --- a/apps/red-ui/src/app/models/file/manual-redaction-entry.wrapper.ts +++ b/apps/red-ui/src/app/models/file/manual-redaction-entry.wrapper.ts @@ -1,9 +1,9 @@ -import { ManualRedactionEntry } from '@redaction/red-ui-http'; +import { IManualRedactionEntry } from '@red/domain'; export class ManualRedactionEntryWrapper { constructor( readonly quads: any, - readonly manualRedactionEntry: ManualRedactionEntry, + readonly manualRedactionEntry: IManualRedactionEntry, readonly type: 'DICTIONARY' | 'REDACTION' | 'FALSE_POSITIVE', readonly annotationType: 'TEXT' | 'RECTANGLE' = 'TEXT', readonly rectId?: string, diff --git a/apps/red-ui/src/app/models/file/redaction-log-entry.wrapper.ts b/apps/red-ui/src/app/models/file/redaction-log-entry.wrapper.ts index 8c7649645..251b5bd77 100644 --- a/apps/red-ui/src/app/models/file/redaction-log-entry.wrapper.ts +++ b/apps/red-ui/src/app/models/file/redaction-log-entry.wrapper.ts @@ -1,7 +1,7 @@ -import { Change, Comment, ILegalBasis, Rectangle } from '@redaction/red-ui-http'; +import { IChange, IComment, ILegalBasis, IRectangle } from '@red/domain'; export interface RedactionLogEntryWrapper { - changes?: Array; + changes?: Array; dossierDictionaryEntry?: boolean; endOffset?: number; excluded?: boolean; @@ -19,7 +19,7 @@ export interface RedactionLogEntryWrapper { manual?: boolean; manualRedactionType?: 'ADD' | 'REMOVE' | 'UNDO' | 'LEGAL_BASIS_CHANGE' | 'FORCE_REDACT' | 'RECATEGORIZE'; matchedRule?: number; - positions?: Array; + positions?: Array; reason?: string; redacted?: boolean; section?: string; @@ -29,7 +29,7 @@ export interface RedactionLogEntryWrapper { textBefore?: string; value?: string; image?: boolean; - legalBasisList?: Array; + legalBasisList?: ILegalBasis[]; recommendation?: boolean; recommendationAnnotationId?: string; @@ -37,7 +37,7 @@ export interface RedactionLogEntryWrapper { hidden?: boolean; userId?: string; - comments?: Comment[]; + comments?: IComment[]; isChangeLogEntry?: boolean; changeLogType?: 'ADDED' | 'REMOVED' | 'CHANGED'; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html index 477d76338..a056d7d3c 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html @@ -3,7 +3,7 @@ {{ dialogHeader }}
-
+
@@ -47,10 +47,10 @@ type="text" />
@@ -95,7 +95,7 @@
-
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts index c51eebd57..6fe2d7c2e 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts @@ -2,7 +2,7 @@ import { Component, Inject } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Observable } from 'rxjs'; -import { Toaster } from '@iqser/common-ui'; +import { BaseDialogComponent, Toaster } from '@iqser/common-ui'; import { TranslateService } from '@ngx-translate/core'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { AppStateService } from '@state/app-state.service'; @@ -15,8 +15,8 @@ import { Dictionary, IDictionary } from '@red/domain'; templateUrl: './add-edit-dictionary-dialog.component.html', styleUrls: ['./add-edit-dictionary-dialog.component.scss'], }) -export class AddEditDictionaryDialogComponent { - dictionaryForm: FormGroup; +export class AddEditDictionaryDialogComponent extends BaseDialogComponent { + form: FormGroup; readonly dictionary: Dictionary; technicalName = ''; private readonly _dossierTemplateId: string; @@ -31,9 +31,10 @@ export class AddEditDictionaryDialogComponent { @Inject(MAT_DIALOG_DATA) private readonly _data: { dictionary: Dictionary; dossierTemplateId: string }, ) { + super(); this.dictionary = _data.dictionary; this._dossierTemplateId = _data.dossierTemplateId; - this.dictionaryForm = _formBuilder.group({ + this.form = _formBuilder.group({ label: [this.dictionary?.label, [Validators.required, Validators.minLength(3)]], description: [this.dictionary?.description], rank: [this.dictionary?.rank, Validators.required], @@ -42,7 +43,7 @@ export class AddEditDictionaryDialogComponent { addToDictionaryAction: [!!this.dictionary?.addToDictionaryAction], caseSensitive: [this.dictCaseSensitive], }); - this.dictionaryForm.get('label').valueChanges.subscribe(() => { + this.form.get('label').valueChanges.subscribe(() => { this._updateTechnicalName(); }); } @@ -55,7 +56,7 @@ export class AddEditDictionaryDialogComponent { } get hasColor(): boolean { - const hexColorValue = this.dictionaryForm.get('hexColor').value; + const hexColorValue = this.form.get('hexColor').value; return !hexColorValue || hexColorValue?.length === 0; } @@ -68,12 +69,12 @@ export class AddEditDictionaryDialogComponent { return true; } - for (const key of Object.keys(this.dictionaryForm.getRawValue())) { + for (const key of Object.keys(this.form.getRawValue())) { if (key === 'caseSensitive') { - if (this.dictCaseSensitive !== this.dictionaryForm.get(key).value) { + if (this.dictCaseSensitive !== this.form.get(key).value) { return true; } - } else if (this.dictionary[key] !== this.dictionaryForm.get(key).value) { + } else if (this.dictionary[key] !== this.form.get(key).value) { return true; } } @@ -81,7 +82,7 @@ export class AddEditDictionaryDialogComponent { return false; } - saveDictionary(): void { + save(): void { const dictionary = this._formToObject(); let observable: Observable; @@ -108,7 +109,7 @@ export class AddEditDictionaryDialogComponent { } private _updateTechnicalName() { - const displayName = this.dictionaryForm.get('label').value.trim(); + const displayName = this.form.get('label').value.trim(); const existingTechnicalNames = Object.keys(this._appStateService.dictionaryData[this._dossierTemplateId]); const baseTechnicalName: string = toKebabCase(displayName); let technicalName = baseTechnicalName; @@ -122,13 +123,13 @@ export class AddEditDictionaryDialogComponent { private _formToObject(): IDictionary { return { type: this.dictionary?.type || this.technicalName, - label: this.dictionaryForm.get('label').value, - caseInsensitive: !this.dictionaryForm.get('caseSensitive').value, - description: this.dictionaryForm.get('description').value, - hexColor: this.dictionaryForm.get('hexColor').value, - hint: this.dictionaryForm.get('hint').value, - rank: this.dictionaryForm.get('rank').value, - addToDictionaryAction: this.dictionaryForm.get('addToDictionaryAction').value, + label: this.form.get('label').value, + caseInsensitive: !this.form.get('caseSensitive').value, + description: this.form.get('description').value, + hexColor: this.form.get('hexColor').value, + hint: this.form.get('hint').value, + rank: this.form.get('rank').value, + addToDictionaryAction: this.form.get('addToDictionaryAction').value, dossierTemplateId: this._dossierTemplateId, }; } diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html index cfd34b1a0..cfd174677 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html @@ -8,7 +8,7 @@ class="dialog-header heading-l" >
- +
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts index 11b57cbf6..0a44eb7d0 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts @@ -1,13 +1,12 @@ -import { Component, Inject, OnDestroy } from '@angular/core'; +import { Component, HostListener, Inject, OnDestroy } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { FileAttributeConfigTypes } from '@redaction/red-ui-http'; +import { DossierAttributeConfigTypes, FileAttributeConfigTypes, IDossierAttributeConfig } from '@red/domain'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { AutoUnsubscribe, LoadingService, Toaster } from '@iqser/common-ui'; +import { AutoUnsubscribe, IqserEventTarget, LoadingService, Toaster } from '@iqser/common-ui'; import { HttpErrorResponse } from '@angular/common/http'; import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service'; import { dossierAttributeTypesTranslations } from '../../translations/dossier-attribute-types-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { DossierAttributeConfigTypes, IDossierAttributeConfig } from '@red/domain'; @Component({ templateUrl: './add-edit-dossier-attribute-dialog.component.html', @@ -57,7 +56,7 @@ export class AddEditDossierAttributeDialogComponent extends AutoUnsubscribe impl return false; } - saveFileAttribute() { + saveDossierAttribute() { this._loadingService.start(); const attribute: IDossierAttributeConfig = { @@ -76,4 +75,12 @@ export class AddEditDossierAttributeDialogComponent extends AutoUnsubscribe impl }, ); } + + @HostListener('window:keydown.Enter', ['$event']) + onEnter(event: KeyboardEvent): void { + const node = (event.target as IqserEventTarget).localName; + if (this.dossierAttributeForm.valid && this.changed && node !== 'textarea') { + this.saveDossierAttribute(); + } + } } diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html index ab2e62288..84635ea0a 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html @@ -8,7 +8,7 @@ class="dialog-header heading-l" >
- +
@@ -77,7 +77,7 @@ 'download-type.label' | translate : { - length: dossierTemplateForm.controls['downloadFileTypes'].value.length + length: form.controls['downloadFileTypes'].value.length } " [options]="downloadTypes" @@ -87,7 +87,7 @@
-
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts index 26f5c2e66..d39d36831 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts @@ -7,7 +7,7 @@ import { Moment } from 'moment'; import { applyIntervalConstraints } from '@utils/date-inputs-utils'; import { downloadTypesTranslations } from '../../../../translations/download-types-translations'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; -import { CONFLICT_ERROR_CODE, Toaster } from '@iqser/common-ui'; +import { BaseDialogComponent, CONFLICT_ERROR_CODE, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { DownloadFileType, IDossierTemplate } from '@red/domain'; @@ -15,8 +15,8 @@ import { DownloadFileType, IDossierTemplate } from '@red/domain'; templateUrl: './add-edit-dossier-template-dialog.component.html', styleUrls: ['./add-edit-dossier-template-dialog.component.scss'], }) -export class AddEditDossierTemplateDialogComponent { - dossierTemplateForm: FormGroup; +export class AddEditDossierTemplateDialogComponent extends BaseDialogComponent { + form: FormGroup; hasValidFrom: boolean; hasValidTo: boolean; downloadTypesEnum: DownloadFileType[] = ['ORIGINAL', 'PREVIEW', 'REDACTED']; @@ -36,7 +36,8 @@ export class AddEditDossierTemplateDialogComponent { public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) readonly dossierTemplate: IDossierTemplate, ) { - this.dossierTemplateForm = this._formBuilder.group({ + super(); + this.form = this._formBuilder.group({ name: [this.dossierTemplate?.name, Validators.required], description: [this.dossierTemplate?.description], validFrom: [ @@ -52,10 +53,10 @@ export class AddEditDossierTemplateDialogComponent { this.hasValidFrom = !!this.dossierTemplate?.validFrom; this.hasValidTo = !!this.dossierTemplate?.validTo; - this._previousValidFrom = this.dossierTemplateForm.get('validFrom').value; - this._previousValidTo = this.dossierTemplateForm.get('validTo').value; + this._previousValidFrom = this.form.get('validFrom').value; + this._previousValidTo = this.form.get('validTo').value; - this.dossierTemplateForm.valueChanges.subscribe(value => { + this.form.valueChanges.subscribe(value => { this._applyValidityIntervalConstraints(value); }); } @@ -65,8 +66,8 @@ export class AddEditDossierTemplateDialogComponent { return true; } - for (const key of Object.keys(this.dossierTemplateForm.getRawValue())) { - const formValue = this.dossierTemplateForm.get(key).value; + for (const key of Object.keys(this.form.getRawValue())) { + const formValue = this.form.get(key).value; const objectValue = this.dossierTemplate[key]; if (key === 'validFrom') { if (this.hasValidFrom !== !!objectValue || (this.hasValidFrom && !moment(objectValue).isSame(moment(formValue)))) { @@ -93,13 +94,13 @@ export class AddEditDossierTemplateDialogComponent { return false; } - async saveDossierTemplate() { + async save() { try { const dossierTemplate = { dossierTemplateId: this.dossierTemplate?.dossierTemplateId, - ...this.dossierTemplateForm.getRawValue(), - validFrom: this.hasValidFrom ? this.dossierTemplateForm.get('validFrom').value : null, - validTo: this.hasValidTo ? this.dossierTemplateForm.get('validTo').value : null, + ...this.form.getRawValue(), + validFrom: this.hasValidFrom ? this.form.get('validFrom').value : null, + validTo: this.hasValidTo ? this.form.get('validTo').value : null, }; await this._dossierTemplatesService.createOrUpdate(dossierTemplate).toPromise(); await this._dossierTemplatesService.loadAll().toPromise(); @@ -115,21 +116,12 @@ export class AddEditDossierTemplateDialogComponent { } private _applyValidityIntervalConstraints(value): boolean { - if ( - applyIntervalConstraints( - value, - this._previousValidFrom, - this._previousValidTo, - this.dossierTemplateForm, - 'validFrom', - 'validTo', - ) - ) { + if (applyIntervalConstraints(value, this._previousValidFrom, this._previousValidTo, this.form, 'validFrom', 'validTo')) { return true; } - this._previousValidFrom = this.dossierTemplateForm.get('validFrom').value; - this._previousValidTo = this.dossierTemplateForm.get('validTo').value; + this._previousValidFrom = this.form.get('validFrom').value; + this._previousValidTo = this.form.get('validTo').value; return false; } diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html index 25292811a..3750e6f13 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html @@ -8,7 +8,7 @@ class="dialog-header heading-l" >
- +
@@ -66,7 +66,7 @@
-
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts index bc36e8c9c..854d5f031 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts @@ -1,17 +1,18 @@ import { Component, Inject } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { AppStateService } from '@state/app-state.service'; -import { FileAttributeConfigTypes, IFileAttributeConfig } from '@redaction/red-ui-http'; +import { FileAttributeConfigTypes, IFileAttributeConfig } from '@red/domain'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { fileAttributeTypesTranslations } from '../../translations/file-attribute-types-translations'; +import { BaseDialogComponent } from '@iqser/common-ui'; @Component({ selector: 'redaction-add-edit-file-attribute-dialog', templateUrl: './add-edit-file-attribute-dialog.component.html', styleUrls: ['./add-edit-file-attribute-dialog.component.scss'], }) -export class AddEditFileAttributeDialogComponent { - fileAttributeForm: FormGroup; +export class AddEditFileAttributeDialogComponent extends BaseDialogComponent { + form: FormGroup; fileAttribute: IFileAttributeConfig; dossierTemplateId: string; readonly typeOptions = Object.keys(FileAttributeConfigTypes); @@ -24,10 +25,11 @@ export class AddEditFileAttributeDialogComponent { @Inject(MAT_DIALOG_DATA) public data: { fileAttribute: IFileAttributeConfig; dossierTemplateId: string }, ) { + super(); this.fileAttribute = data.fileAttribute; this.dossierTemplateId = data.dossierTemplateId; - this.fileAttributeForm = this._formBuilder.group({ + this.form = this._formBuilder.group({ label: [this.fileAttribute?.label, Validators.required], csvColumnHeader: [this.fileAttribute?.csvColumnHeader, Validators.required], type: [this.fileAttribute?.type || FileAttributeConfigTypes.TEXT, Validators.required], @@ -43,12 +45,12 @@ export class AddEditFileAttributeDialogComponent { return true; } - for (const key of Object.keys(this.fileAttributeForm.getRawValue())) { + for (const key of Object.keys(this.form.getRawValue())) { if (key === 'readonly') { - if (this.fileAttribute.editable === this.fileAttributeForm.get(key).value) { + if (this.fileAttribute.editable === this.form.get(key).value) { return true; } - } else if (this.fileAttribute[key] !== this.fileAttributeForm.get(key).value) { + } else if (this.fileAttribute[key] !== this.form.get(key).value) { return true; } } @@ -56,11 +58,11 @@ export class AddEditFileAttributeDialogComponent { return false; } - saveFileAttribute() { + save() { const fileAttribute: IFileAttributeConfig = { id: this.fileAttribute?.id, - editable: !this.fileAttributeForm.get('readonly').value, - ...this.fileAttributeForm.getRawValue(), + editable: !this.form.get('readonly').value, + ...this.form.getRawValue(), }; this.dialogRef.close(fileAttribute); } diff --git a/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-file-attribute-dialog/confirm-delete-file-attribute-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-file-attribute-dialog/confirm-delete-file-attribute-dialog.component.ts index 490d1a8a9..1cf2cee1b 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-file-attribute-dialog/confirm-delete-file-attribute-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-file-attribute-dialog/confirm-delete-file-attribute-dialog.component.ts @@ -1,5 +1,5 @@ import { Component, Inject } from '@angular/core'; -import { IFileAttributeConfig } from '@redaction/red-ui-http'; +import { IFileAttributeConfig } from '@red/domain'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html index db9d58b7f..5e27511b4 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html @@ -1,7 +1,7 @@
- +
@@ -13,14 +13,14 @@ type="text" />
@@ -28,7 +28,7 @@
-
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts index a97eb94b7..d087d034b 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts @@ -1,10 +1,9 @@ import { Component, Inject } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { Colors } from '@redaction/red-ui-http'; -import { Toaster } from '@iqser/common-ui'; +import { DefaultColorType, IColors } from '@red/domain'; +import { BaseDialogComponent, Toaster } from '@iqser/common-ui'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { TranslateService } from '@ngx-translate/core'; -import { DefaultColorType } from '@models/default-color-key.model'; import { defaultColorsTranslations } from '../../translations/default-colors-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { DictionaryService } from '@shared/services/dictionary.service'; @@ -14,10 +13,10 @@ import { DictionaryService } from '@shared/services/dictionary.service'; templateUrl: './edit-color-dialog.component.html', styleUrls: ['./edit-color-dialog.component.scss'], }) -export class EditColorDialogComponent { - readonly colors: Colors; +export class EditColorDialogComponent extends BaseDialogComponent { + readonly colors: IColors; readonly colorKey: DefaultColorType; - colorForm: FormGroup; + form: FormGroup; translations = defaultColorsTranslations; private readonly _initialColor: string; private readonly _dossierTemplateId: string; @@ -29,26 +28,27 @@ export class EditColorDialogComponent { private readonly _translateService: TranslateService, private readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) - private readonly _data: { colors: Colors; colorKey: DefaultColorType; dossierTemplateId: string }, + private readonly _data: { colors: IColors; colorKey: DefaultColorType; dossierTemplateId: string }, ) { + super(); this.colors = _data.colors; this.colorKey = _data.colorKey; this._dossierTemplateId = _data.dossierTemplateId; this._initialColor = _data.colors[this.colorKey]; - this.colorForm = this._formBuilder.group({ + this.form = this._formBuilder.group({ color: [this.colors[this.colorKey], [Validators.required, Validators.minLength(7)]], }); } get changed(): boolean { - return this.colorForm.get('color').value !== this._initialColor; + return this.form.get('color').value !== this._initialColor; } - async saveColors() { + async save() { const colors = { ...this.colors, - [this.colorKey]: this.colorForm.get('color').value, + [this.colorKey]: this.form.get('color').value, }; try { diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.ts index 098cd2db2..1a0df33c3 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.ts @@ -1,9 +1,9 @@ import { Component, EventEmitter, forwardRef, Injector, Input, OnChanges, Output, SimpleChanges } from '@angular/core'; import { Field } from '../file-attributes-csv-import-dialog.component'; -import { FileAttributeConfigTypes } from '@redaction/red-ui-http'; import { CircleButtonTypes, DefaultListingServices, ListingComponent, TableColumnConfig } from '@iqser/common-ui'; import { fileAttributeTypesTranslations } from '../../../translations/file-attribute-types-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { FileAttributeConfigTypes } from '@red/domain'; @Component({ selector: 'redaction-active-fields-listing', diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts index 7abebddcc..e0d094671 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts @@ -2,12 +2,11 @@ import { Component, Inject, Injector } from '@angular/core'; import { AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import * as Papa from 'papaparse'; -import { FileAttributeConfigType, FileAttributeConfigTypes, FileAttributesConfig } from '@redaction/red-ui-http'; import { Observable } from 'rxjs'; import { map, startWith } from 'rxjs/operators'; import { DefaultListingServices, IListable, ListingComponent, TableColumnConfig, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { FileAttributeConfig } from '@models/file/file-attribute-config'; +import { FileAttributeConfig, FileAttributeConfigType, FileAttributeConfigTypes, IFileAttributesConfig } from '@red/domain'; import { FileAttributesService } from '@services/entity-services/file-attributes.service'; export interface Field extends IListable { @@ -48,7 +47,7 @@ export class FileAttributesCsvImportDialogComponent extends ListingComponent, - @Inject(MAT_DIALOG_DATA) public data: SMTPConfiguration, + @Inject(MAT_DIALOG_DATA) public data: ISmtpConfiguration, ) { this.authForm = this._formBuilder.group({ user: [data?.user || this._userService.currentUser.email, [Validators.required]], diff --git a/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts index bd78df974..b6630892b 100644 --- a/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts @@ -1,6 +1,6 @@ import { ChangeDetectionStrategy, Component, forwardRef, Injector, OnInit } from '@angular/core'; import { AppStateService } from '@state/app-state.service'; -import { Colors } from '@redaction/red-ui-http'; +import { DefaultColorType, IColors } from '@red/domain'; import { ActivatedRoute } from '@angular/router'; import { AdminDialogService } from '../../services/admin-dialog.service'; import { @@ -11,7 +11,6 @@ import { LoadingService, TableColumnConfig, } from '@iqser/common-ui'; -import { DefaultColorType } from '@models/default-color-key.model'; import { defaultColorsTranslations } from '../../translations/default-colors-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserService } from '@services/user.service'; @@ -38,7 +37,7 @@ export class DefaultColorsScreenComponent extends ListingComponent imp { label: _('default-colors-screen.table-col-names.key'), sortByKey: 'searchKey', width: '2fr' }, { label: _('default-colors-screen.table-col-names.color'), class: 'flex-center' }, ]; - private _colorsObj: Colors; + private _colorsObj: IColors; constructor( protected readonly _injector: Injector, diff --git a/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts index 728224faa..7dff45c3b 100644 --- a/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts @@ -1,5 +1,4 @@ import { Component, OnDestroy } from '@angular/core'; -import { DigitalSignature } from '@redaction/red-ui-http'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { lastIndexOfEnd } from '@utils/functions'; import { AutoUnsubscribe, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; @@ -7,6 +6,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserService } from '@services/user.service'; import { RouterHistoryService } from '@services/router-history.service'; import { DigitalSignatureService } from '../../services/digital-signature.service'; +import { IDigitalSignature } from '@red/domain'; @Component({ selector: 'redaction-digital-signature-screen', @@ -17,7 +17,7 @@ export class DigitalSignatureScreenComponent extends AutoUnsubscribe implements readonly iconButtonTypes = IconButtonTypes; readonly currentUser = this._userService.currentUser; - digitalSignature: DigitalSignature; + digitalSignature: IDigitalSignature; digitalSignatureForm: FormGroup; digitalSignatureExists = false; diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts index 6bbaaa1fa..7aac12a90 100644 --- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts @@ -1,5 +1,4 @@ import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, Injector, OnDestroy, OnInit, ViewChild } from '@angular/core'; -import { FileAttributesConfig, IFileAttributeConfig } from '@redaction/red-ui-http'; import { AppStateService } from '@state/app-state.service'; import { ActivatedRoute } from '@angular/router'; import { AdminDialogService } from '../../services/admin-dialog.service'; @@ -14,7 +13,7 @@ import { import { fileAttributeTypesTranslations } from '../../translations/file-attribute-types-translations'; import { UserService } from '@services/user.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { FileAttributeConfig } from '@models/file/file-attribute-config'; +import { FileAttributeConfig, IFileAttributeConfig, IFileAttributesConfig } from '@red/domain'; import { FileAttributesService } from '@services/entity-services/file-attributes.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; @@ -47,7 +46,7 @@ export class FileAttributesListingScreenComponent extends ListingComponent
- +
@@ -43,7 +43,7 @@
- diff --git a/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.ts b/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.ts index 99416e913..929d3067d 100644 --- a/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.ts @@ -1,10 +1,10 @@ import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { Justification } from '@models/justification.model'; +import { Justification } from '@red/domain'; import { JustificationsService } from '@services/entity-services/justifications.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; -import { LoadingService } from '@iqser/common-ui'; +import { BaseDialogComponent, LoadingService } from '@iqser/common-ui'; @Component({ selector: 'redaction-add-edit-justification-dialog', @@ -12,8 +12,8 @@ import { LoadingService } from '@iqser/common-ui'; styleUrls: ['./add-edit-justification-dialog.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class AddEditJustificationDialogComponent { - justificationForm: FormGroup; +export class AddEditJustificationDialogComponent extends BaseDialogComponent { + form: FormGroup; constructor( private readonly _formBuilder: FormBuilder, @@ -23,7 +23,8 @@ export class AddEditJustificationDialogComponent { public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public justification: Justification, ) { - this.justificationForm = this._formBuilder.group({ + super(); + this.form = this._formBuilder.group({ name: [{ value: this.justification?.name, disabled: !!this.justification }, Validators.required], reason: [this.justification?.reason, Validators.required], description: [this.justification?.description, Validators.required], @@ -33,10 +34,7 @@ export class AddEditJustificationDialogComponent { get changed(): boolean { return ( !this.justification || - Object.keys(this.justificationForm.getRawValue()).reduce( - (prev, key) => prev || this.justification[key] !== this.justificationForm.get(key).value, - false, - ) + Object.keys(this.form.getRawValue()).reduce((prev, key) => prev || this.justification[key] !== this.form.get(key).value, false) ); } @@ -44,7 +42,7 @@ export class AddEditJustificationDialogComponent { const dossierTemplateId = this._dossierTemplatesService.activeDossierTemplateId; this._loadingService.start(); - await this._justificationService.createOrUpdate(this.justificationForm.getRawValue(), dossierTemplateId).toPromise(); + await this._justificationService.createOrUpdate(this.form.getRawValue(), dossierTemplateId).toPromise(); await this._justificationService.loadAll(dossierTemplateId).toPromise(); this._loadingService.stop(); this.dialogRef.close(true); diff --git a/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-dialog.service.ts b/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-dialog.service.ts index a29958999..a4ee07326 100644 --- a/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-dialog.service.ts +++ b/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-dialog.service.ts @@ -12,7 +12,7 @@ import { AddEditJustificationDialogComponent } from './add-edit-justification-di import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; import { JustificationsService } from '@services/entity-services/justifications.service'; -import { Justification } from '@models/justification.model'; +import { Justification } from '@red/domain'; type DialogType = 'confirm' | 'addEditJustification'; diff --git a/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-screen/justifications-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-screen/justifications-screen.component.ts index 85c61817b..7a2008ccb 100644 --- a/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-screen/justifications-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-screen/justifications-screen.component.ts @@ -9,7 +9,7 @@ import { LoadingService, TableColumnConfig, } from '@iqser/common-ui'; -import { Justification } from '@models/justification.model'; +import { Justification } from '@red/domain'; import { JustificationsService } from '@services/entity-services/justifications.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; import { JustificationsDialogService } from '../justifications-dialog.service'; diff --git a/apps/red-ui/src/app/modules/admin/screens/justifications/table-item/table-item.component.ts b/apps/red-ui/src/app/modules/admin/screens/justifications/table-item/table-item.component.ts index 7f02569a7..e9217b9d8 100644 --- a/apps/red-ui/src/app/modules/admin/screens/justifications/table-item/table-item.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/justifications/table-item/table-item.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; -import { Justification } from '@models/justification.model'; +import { Justification } from '@red/domain'; import { CircleButtonTypes, ListingService, LoadingService } from '@iqser/common-ui'; import { JustificationsDialogService } from '../justifications-dialog.service'; import { UserService } from '@services/user.service'; diff --git a/apps/red-ui/src/app/modules/admin/screens/license-information/license-information-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/license-information/license-information-screen.component.ts index 7e8c5843c..00006cde9 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license-information/license-information-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/license-information/license-information-screen.component.ts @@ -1,5 +1,4 @@ import { Component, OnInit } from '@angular/core'; -import { LicenseReport } from '@redaction/red-ui-http'; import { ConfigService } from '@services/config.service'; import * as moment from 'moment'; import { TranslateService } from '@ngx-translate/core'; @@ -8,6 +7,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserService } from '@services/user.service'; import { RouterHistoryService } from '@services/router-history.service'; import { LicenseReportService } from '../../services/licence-report.service'; +import { ILicenseReport } from '@red/domain'; @Component({ selector: 'redaction-license-information-screen', @@ -24,9 +24,9 @@ export class LicenseInformationScreenComponent implements OnInit { }, ]; - currentInfo: LicenseReport = {}; - totalInfo: LicenseReport = {}; - unlicensedInfo: LicenseReport = {}; + currentInfo: ILicenseReport = {}; + totalInfo: ILicenseReport = {}; + unlicensedInfo: ILicenseReport = {}; totalLicensedNumberOfPages = 0; analysisPercentageOfLicense = 100; barChart: any[]; diff --git a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts index e691adcf4..d9d5224a6 100644 --- a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts @@ -1,7 +1,7 @@ import { Component, ElementRef, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { AppStateService } from '@state/app-state.service'; -import { PlaceholdersResponse, ReportTemplate } from '@redaction/red-ui-http'; +import { IPlaceholdersResponse, IReportTemplate } from '@red/domain'; import { download } from '@utils/file-download-utils'; import { ConfirmationDialogInput, LoadingService, Toaster } from '@iqser/common-ui'; import { PermissionsService } from '@services/permissions.service'; @@ -31,7 +31,7 @@ const placeholderTypes: PlaceholderType[] = ['generalPlaceholders', 'fileAttribu }) export class ReportsScreenComponent implements OnInit { placeholders: Placeholder[]; - availableTemplates: ReportTemplate[]; + availableTemplates: IReportTemplate[]; @ViewChild('fileInput') private _fileInput: ElementRef; @@ -57,7 +57,7 @@ export class ReportsScreenComponent implements OnInit { this._loadingService.loadWhile(this._uploadTemplate($event)); } - async download(template: ReportTemplate) { + async download(template: IReportTemplate) { this._loadingService.start(); try { const data = await this._reportTemplateService @@ -71,7 +71,7 @@ export class ReportsScreenComponent implements OnInit { } } - deleteTemplate(template: ReportTemplate) { + deleteTemplate(template: IReportTemplate) { this._dialogService.openDialog('confirm', null, null, () => { this._loadingService.loadWhile(this._deleteTemplate(template)); }); @@ -120,7 +120,7 @@ export class ReportsScreenComponent implements OnInit { this._fileInput.nativeElement.value = null; } - private async _deleteTemplate(template: ReportTemplate) { + private async _deleteTemplate(template: IReportTemplate) { await this._reportTemplateService.delete(template.dossierTemplateId, template.templateId).toPromise(); await this._loadReportTemplates(); } @@ -132,7 +132,7 @@ export class ReportsScreenComponent implements OnInit { } private async _loadPlaceholders() { - const placeholdersResponse: PlaceholdersResponse = await this._reportTemplateService + const placeholdersResponse: IPlaceholdersResponse = await this._reportTemplateService .getAvailablePlaceholders(this._dossierTemplatesService.activeDossierTemplateId) .toPromise(); this.placeholders = placeholderTypes.flatMap(type => diff --git a/apps/red-ui/src/app/modules/admin/screens/watermark/watermark-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/watermark/watermark-screen.component.ts index 15d5ce6ca..fd4130b86 100644 --- a/apps/red-ui/src/app/modules/admin/screens/watermark/watermark-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/watermark/watermark-screen.component.ts @@ -5,7 +5,7 @@ import { environment } from '@environments/environment'; import { HttpClient } from '@angular/common/http'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Debounce, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; -import { IWatermark, WatermarkOrientation, WatermarkOrientations } from '@redaction/red-ui-http'; +import { IWatermark, WatermarkOrientation, WatermarkOrientations } from '@red/domain'; import { ActivatedRoute } from '@angular/router'; import { BASE_HREF } from '../../../../tokens'; import { stampPDFPage } from '@utils/page-stamper'; diff --git a/apps/red-ui/src/app/modules/admin/services/audit.service.ts b/apps/red-ui/src/app/modules/admin/services/audit.service.ts index 2ef8569b4..6cf421b2d 100644 --- a/apps/red-ui/src/app/modules/admin/services/audit.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/audit.service.ts @@ -1,8 +1,7 @@ import { Injectable, Injector } from '@angular/core'; import { GenericService, RequiredParam, Validate } from '@iqser/common-ui'; -import { CategoryModel } from '@redaction/red-ui-http'; +import { IAudit, IAuditResponse, IAuditSearchRequest, ICategory } from '@red/domain'; import { Observable } from 'rxjs'; -import { IAudit, IAuditResponse, IAuditSearchRequest } from '@red/domain'; @Injectable() export class AuditService extends GenericService { @@ -10,8 +9,8 @@ export class AuditService extends GenericService { super(_injector, 'audit'); } - getCategories(): Observable { - return super.getAll(`${this._defaultModelPath}/categories`); + getCategories(): Observable { + return super.getAll(`${this._defaultModelPath}/categories`); } @Validate() diff --git a/apps/red-ui/src/app/modules/admin/services/digital-signature.service.ts b/apps/red-ui/src/app/modules/admin/services/digital-signature.service.ts index d1e86db45..005bb8b08 100644 --- a/apps/red-ui/src/app/modules/admin/services/digital-signature.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/digital-signature.service.ts @@ -1,21 +1,21 @@ import { Injectable, Injector } from '@angular/core'; import { GenericService, RequiredParam, Validate } from '@iqser/common-ui'; -import { DigitalSignature, DigitalSignatureViewModel } from '@redaction/red-ui-http'; import { Observable } from 'rxjs'; +import { IDigitalSignature, IDigitalSignatureRequest } from '@red/domain'; @Injectable() -export class DigitalSignatureService extends GenericService { +export class DigitalSignatureService extends GenericService { constructor(protected readonly _injector: Injector) { super(_injector, 'digital-signature'); } @Validate() - update(@RequiredParam() body: DigitalSignatureViewModel): Observable { + update(@RequiredParam() body: IDigitalSignatureRequest): Observable { return this._put(body); } @Validate() - save(@RequiredParam() body: DigitalSignature): Observable { + save(@RequiredParam() body: IDigitalSignature): Observable { return this._post(body); } @@ -23,7 +23,7 @@ export class DigitalSignatureService extends GenericService { + getSignature(): Observable { return super.getAll(); } } diff --git a/apps/red-ui/src/app/modules/admin/services/licence-report.service.ts b/apps/red-ui/src/app/modules/admin/services/licence-report.service.ts index 5ee5bd9eb..fa1be5312 100644 --- a/apps/red-ui/src/app/modules/admin/services/licence-report.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/licence-report.service.ts @@ -1,15 +1,15 @@ import { Injectable, Injector } from '@angular/core'; import { GenericService, QueryParam, RequiredParam, Validate } from '@iqser/common-ui'; -import { LicenseReport, LicenseReportRequest } from '@redaction/red-ui-http'; +import { ILicenseReport, ILicenseReportRequest } from '@red/domain'; @Injectable() -export class LicenseReportService extends GenericService { +export class LicenseReportService extends GenericService { constructor(protected readonly _injector: Injector) { super(_injector, 'report'); } @Validate() - licenseReport(@RequiredParam() body: LicenseReportRequest, limit?: number, offset?: number) { + licenseReport(@RequiredParam() body: ILicenseReportRequest, limit?: number, offset?: number) { const queryParams: QueryParam[] = []; if (limit) { queryParams.push({ key: 'limit', value: limit }); diff --git a/apps/red-ui/src/app/modules/admin/services/rules.service.ts b/apps/red-ui/src/app/modules/admin/services/rules.service.ts index fb53d0d25..368058d8e 100644 --- a/apps/red-ui/src/app/modules/admin/services/rules.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/rules.service.ts @@ -1,9 +1,9 @@ import { Injectable, Injector } from '@angular/core'; import { GenericService, RequiredParam, Validate } from '@iqser/common-ui'; -import { Rules } from '@redaction/red-ui-http'; +import { IRules } from '@red/domain'; @Injectable() -export class RulesService extends GenericService { +export class RulesService extends GenericService { constructor(protected readonly _injector: Injector) { super(_injector, 'rules'); } @@ -14,7 +14,7 @@ export class RulesService extends GenericService { } @Validate() - uploadRules(@RequiredParam() body: Rules) { + uploadRules(@RequiredParam() body: IRules) { return this._post(body); } } diff --git a/apps/red-ui/src/app/modules/admin/services/smtp-config.service.ts b/apps/red-ui/src/app/modules/admin/services/smtp-config.service.ts index 8d7391026..7d9f0faea 100644 --- a/apps/red-ui/src/app/modules/admin/services/smtp-config.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/smtp-config.service.ts @@ -1,6 +1,6 @@ import { Injectable, Injector } from '@angular/core'; import { GenericService, RequiredParam, Validate } from '@iqser/common-ui'; -import { SMTPConfiguration } from '@redaction/red-ui-http'; +import { ISmtpConfiguration } from '@red/domain'; @Injectable() export class SmtpConfigService extends GenericService { @@ -9,12 +9,12 @@ export class SmtpConfigService extends GenericService { } @Validate() - updateSMTPConfiguration(@RequiredParam() body: SMTPConfiguration) { + updateSMTPConfiguration(@RequiredParam() body: ISmtpConfiguration) { return this._post(body, `${this._defaultModelPath}/smtp`); } @Validate() - testSMTPConfiguration(@RequiredParam() body: SMTPConfiguration) { + testSMTPConfiguration(@RequiredParam() body: ISmtpConfiguration) { return this._post(body, `${this._defaultModelPath}/smtp/test`); } diff --git a/apps/red-ui/src/app/modules/admin/services/watermark.service.ts b/apps/red-ui/src/app/modules/admin/services/watermark.service.ts index 69335bb26..de2805af5 100644 --- a/apps/red-ui/src/app/modules/admin/services/watermark.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/watermark.service.ts @@ -1,6 +1,6 @@ import { Injectable, Injector } from '@angular/core'; import { GenericService, RequiredParam, Validate } from '@iqser/common-ui'; -import { IWatermark } from '@redaction/red-ui-http'; +import { IWatermark } from '@red/domain'; @Injectable() export class WatermarkService extends GenericService { diff --git a/apps/red-ui/src/app/modules/admin/translations/default-colors-translations.ts b/apps/red-ui/src/app/modules/admin/translations/default-colors-translations.ts index 01a862b21..9e5408ee1 100644 --- a/apps/red-ui/src/app/modules/admin/translations/default-colors-translations.ts +++ b/apps/red-ui/src/app/modules/admin/translations/default-colors-translations.ts @@ -1,5 +1,5 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { DefaultColorType } from '@models/default-color-key.model'; +import { DefaultColorType } from '@red/domain'; export const defaultColorsTranslations: { [key in DefaultColorType]: string } = { analysisColor: _('default-colors-screen.types.analysisColor'), diff --git a/apps/red-ui/src/app/modules/admin/translations/file-attribute-types-translations.ts b/apps/red-ui/src/app/modules/admin/translations/file-attribute-types-translations.ts index 438e55d17..bbef380b6 100644 --- a/apps/red-ui/src/app/modules/admin/translations/file-attribute-types-translations.ts +++ b/apps/red-ui/src/app/modules/admin/translations/file-attribute-types-translations.ts @@ -1,5 +1,5 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { FileAttributeConfigType } from '@redaction/red-ui-http'; +import { FileAttributeConfigType } from '@red/domain'; export const fileAttributeTypesTranslations: { [key in FileAttributeConfigType]: string } = { TEXT: _('file-attribute-types.text'), diff --git a/apps/red-ui/src/app/modules/dossier/components/comments/comments.component.html b/apps/red-ui/src/app/modules/dossier/components/comments/comments.component.html index 0bd328b65..190e5a2c7 100644 --- a/apps/red-ui/src/app/modules/dossier/components/comments/comments.component.html +++ b/apps/red-ui/src/app/modules/dossier/components/comments/comments.component.html @@ -1,4 +1,4 @@ -
+
{{ comment.user | name }} diff --git a/apps/red-ui/src/app/modules/dossier/components/comments/comments.component.ts b/apps/red-ui/src/app/modules/dossier/components/comments/comments.component.ts index 715c7a5b5..0412ddced 100644 --- a/apps/red-ui/src/app/modules/dossier/components/comments/comments.component.ts +++ b/apps/red-ui/src/app/modules/dossier/components/comments/comments.component.ts @@ -1,10 +1,10 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, ViewChild } from '@angular/core'; -import { Comment } from '@redaction/red-ui-http'; +import { IComment } from '@red/domain'; import { ManualAnnotationService } from '../../services/manual-annotation.service'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { UserService } from '@services/user.service'; import { PermissionsService } from '@services/permissions.service'; -import { InputWithActionComponent } from '@iqser/common-ui'; +import { InputWithActionComponent, trackBy } from '@iqser/common-ui'; @Component({ selector: 'redaction-comments', @@ -14,6 +14,7 @@ import { InputWithActionComponent } from '@iqser/common-ui'; }) export class CommentsComponent { @Input() annotation: AnnotationWrapper; + readonly trackBy = trackBy(); @HostBinding('class.hidden') private _hidden = true; @ViewChild(InputWithActionComponent) private readonly _input: InputWithActionComponent; @@ -31,10 +32,10 @@ export class CommentsComponent { this._manualAnnotationService .addComment(value, this.annotation.id) .toPromise() - .then(commentResponse => { + .then(commentId => { this.annotation.comments.push({ text: value, - id: parseInt(commentResponse.commentId, 10), + id: commentId, user: this._userService.currentUser.id, }); this._input.reset(); @@ -47,9 +48,9 @@ export class CommentsComponent { this._hidden = !this._hidden; } - deleteComment(comment: Comment): void { + deleteComment(comment: IComment): void { this._manualAnnotationService - .deleteComment(`${comment.id}`, this.annotation.id) + .deleteComment(comment.id, this.annotation.id) .toPromise() .then(() => { this.annotation.comments.splice(this.annotation.comments.indexOf(comment), 1); diff --git a/apps/red-ui/src/app/modules/dossier/components/document-info/document-info.component.ts b/apps/red-ui/src/app/modules/dossier/components/document-info/document-info.component.ts index a6e3c5093..e89854b93 100644 --- a/apps/red-ui/src/app/modules/dossier/components/document-info/document-info.component.ts +++ b/apps/red-ui/src/app/modules/dossier/components/document-info/document-info.component.ts @@ -1,9 +1,8 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; -import { FileAttributesConfig } from '@redaction/red-ui-http'; +import { File, IFileAttributesConfig } from '@red/domain'; import { AppStateService } from '@state/app-state.service'; import { DossiersDialogService } from '../../services/dossiers-dialog.service'; import { AutoUnsubscribe } from '@iqser/common-ui'; -import { File } from '@models/file/file'; import { FileAttributesService } from '@services/entity-services/file-attributes.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; @@ -17,7 +16,7 @@ export class DocumentInfoComponent extends AutoUnsubscribe implements OnInit { @Input() file: File; @Output() readonly closeDocumentInfoView = new EventEmitter(); - fileAttributesConfig: FileAttributesConfig; + fileAttributesConfig: IFileAttributesConfig; constructor( private readonly _appStateService: AppStateService, diff --git a/apps/red-ui/src/app/modules/dossier/components/page-exclusion/page-exclusion.component.ts b/apps/red-ui/src/app/modules/dossier/components/page-exclusion/page-exclusion.component.ts index b9705a59b..14c4a721f 100644 --- a/apps/red-ui/src/app/modules/dossier/components/page-exclusion/page-exclusion.component.ts +++ b/apps/red-ui/src/app/modules/dossier/components/page-exclusion/page-exclusion.component.ts @@ -2,9 +2,8 @@ import { Component, EventEmitter, Input, OnChanges, Output, ViewChild } from '@a import { PermissionsService } from '@services/permissions.service'; import { InputWithActionComponent, LoadingService, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { File } from '@models/file/file'; +import { File, IPageRange } from '@red/domain'; import { ReanalysisService } from '@services/reanalysis.service'; -import { IPageRange } from '@red/domain'; @Component({ selector: 'redaction-page-exclusion', diff --git a/apps/red-ui/src/app/modules/dossier/components/page-indicator/page-indicator.component.ts b/apps/red-ui/src/app/modules/dossier/components/page-indicator/page-indicator.component.ts index 2c9d39c7d..29ea3b674 100644 --- a/apps/red-ui/src/app/modules/dossier/components/page-indicator/page-indicator.component.ts +++ b/apps/red-ui/src/app/modules/dossier/components/page-indicator/page-indicator.component.ts @@ -47,7 +47,10 @@ export class PageIndicatorComponent implements OnChanges, OnInit, OnDestroy { ngOnInit(): void { this._subscription = this._appStateService.fileChanged$.subscribe(() => { - this.canMarkPagesAsViewed = this._permissionService.canMarkPagesAsViewed(); + if (this.canMarkPagesAsViewed !== this._permissionService.canMarkPagesAsViewed()) { + this.canMarkPagesAsViewed = this._permissionService.canMarkPagesAsViewed(); + this._handlePageRead(); + } }); } diff --git a/apps/red-ui/src/app/modules/dossier/components/pdf-viewer/pdf-viewer.component.ts b/apps/red-ui/src/app/modules/dossier/components/pdf-viewer/pdf-viewer.component.ts index 49d0882f0..89f0532db 100644 --- a/apps/red-ui/src/app/modules/dossier/components/pdf-viewer/pdf-viewer.component.ts +++ b/apps/red-ui/src/app/modules/dossier/components/pdf-viewer/pdf-viewer.component.ts @@ -11,13 +11,12 @@ import { SimpleChanges, ViewChild, } from '@angular/core'; -import { ManualRedactionEntry } from '@redaction/red-ui-http'; +import { File, IManualRedactionEntry, ViewMode } from '@red/domain'; import WebViewer, { Core, WebViewerInstance } from '@pdftron/webviewer'; import { TranslateService } from '@ngx-translate/core'; import { ManualRedactionEntryWrapper } from '@models/file/manual-redaction-entry.wrapper'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { ManualAnnotationService } from '../../services/manual-annotation.service'; -import { File } from '@models/file/file'; import { environment } from '@environments/environment'; import { AnnotationDrawService } from '../../services/annotation-draw.service'; import { AnnotationActionsService } from '../../services/annotation-actions.service'; @@ -28,7 +27,6 @@ import { ConfirmationDialogInput, LoadingService } from '@iqser/common-ui'; import { DossiersDialogService } from '../../services/dossiers-dialog.service'; import { loadCompareDocumentWrapper } from '../../utils/compare-mode.utils'; import { PdfViewerUtils } from '../../utils/pdf-viewer.utils'; -import { ViewMode } from '@models/file/view-mode'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { ActivatedRoute } from '@angular/router'; import Tools = Core.Tools; @@ -556,8 +554,8 @@ export class PdfViewerComponent implements OnInit, OnChanges { } } - private _getManualRedactionEntry(quads: any, text: string, convertQuads: boolean = false): ManualRedactionEntry { - const entry: ManualRedactionEntry = { positions: [] }; + private _getManualRedactionEntry(quads: any, text: string, convertQuads: boolean = false): IManualRedactionEntry { + const entry: IManualRedactionEntry = { positions: [] }; for (const key of Object.keys(quads)) { for (const quad of quads[key]) { const page = parseInt(key, 10); diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts index 8d9d6080e..65acb031a 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts @@ -1,6 +1,6 @@ import { Component } from '@angular/core'; import { MatDialogRef } from '@angular/material/dialog'; -import { ReportTemplate } from '@redaction/red-ui-http'; +import { DownloadFileType, IDossierRequest, IDossierTemplate, IReportTemplate } from '@red/domain'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import * as moment from 'moment'; import { downloadTypesTranslations } from '../../../../translations/download-types-translations'; @@ -8,7 +8,6 @@ import { IconButtonTypes } from '@iqser/common-ui'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; import { ReportTemplateService } from '@services/report-template.service'; -import { DownloadFileType, IDossierRequest, IDossierTemplate } from '@red/domain'; @Component({ templateUrl: './add-dossier-dialog.component.html', @@ -69,7 +68,7 @@ export class AddDossierDialogComponent { return this.dossierForm.invalid; } - reportTemplateValueMapper = (reportTemplate: ReportTemplate) => reportTemplate.templateId; + reportTemplateValueMapper = (reportTemplate: IReportTemplate) => reportTemplate.templateId; async saveDossier(addMembers = false) { const savedDossier = await this._dossiersService.createOrUpdate(this._formToObject()).toPromise(); diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/assign-reviewer-approver-dialog/assign-reviewer-approver-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/assign-reviewer-approver-dialog/assign-reviewer-approver-dialog.component.ts index 5523e25c4..8f12cc5b9 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/assign-reviewer-approver-dialog/assign-reviewer-approver-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/assign-reviewer-approver-dialog/assign-reviewer-approver-dialog.component.ts @@ -4,8 +4,7 @@ import { AppStateService } from '@state/app-state.service'; import { UserService } from '@services/user.service'; import { Toaster } from '@iqser/common-ui'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { File } from '@models/file/file'; -import { Dossier } from '@red/domain'; +import { Dossier, File } from '@red/domain'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { FilesService } from '@services/entity-services/files.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/document-info-dialog/document-info-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/document-info-dialog/document-info-dialog.component.ts index 8ae79ce2f..3683c3bdf 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/document-info-dialog/document-info-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/document-info-dialog/document-info-dialog.component.ts @@ -1,9 +1,8 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; -import { IFile, IFileAttributeConfig } from '@redaction/red-ui-http'; +import { Dossier, IFile, IFileAttributeConfig } from '@red/domain'; import { AppStateService } from '@state/app-state.service'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { Dossier } from '@red/domain'; import { FileAttributesService } from '@services/entity-services/file-attributes.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/deleted-documents/edit-dossier-deleted-documents.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/deleted-documents/edit-dossier-deleted-documents.component.ts index 20bb06d56..19ec288a5 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/deleted-documents/edit-dossier-deleted-documents.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/deleted-documents/edit-dossier-deleted-documents.component.ts @@ -1,6 +1,6 @@ import { Component, EventEmitter, forwardRef, Injector, Input, OnInit, Output } from '@angular/core'; import { EditDossierSectionInterface } from '../edit-dossier-section.interface'; -import { Dossier } from '@red/domain'; +import { Dossier, IFile } from '@red/domain'; import { CircleButtonTypes, ConfirmationDialogInput, @@ -12,7 +12,6 @@ import { TableColumnConfig, TitleColors, } from '@iqser/common-ui'; -import { IFile } from '@redaction/red-ui-http'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import * as moment from 'moment'; import { ConfigService } from '@services/config.service'; diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/download-package/edit-dossier-download-package.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/download-package/edit-dossier-download-package.component.ts index c9ef6f225..dc9931e08 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/download-package/edit-dossier-download-package.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/download-package/edit-dossier-download-package.component.ts @@ -1,7 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; -import { ReportTemplate } from '@redaction/red-ui-http'; +import { Dossier, DownloadFileType, IReportTemplate } from '@red/domain'; import { FormBuilder, FormGroup } from '@angular/forms'; -import { Dossier, DownloadFileType } from '@red/domain'; import { EditDossierSectionInterface } from '../edit-dossier-section.interface'; import { downloadTypesTranslations } from '../../../../../translations/download-types-translations'; import { DossiersService } from '@services/entity-services/dossiers.service'; @@ -18,7 +17,7 @@ export class EditDossierDownloadPackageComponent implements OnInit, EditDossierS key: type, label: downloadTypesTranslations[type], })); - availableReportTypes: ReportTemplate[] = []; + availableReportTypes: IReportTemplate[] = []; @Input() dossier: Dossier; @Output() readonly updateDossier = new EventEmitter(); @@ -62,7 +61,7 @@ export class EditDossierDownloadPackageComponent implements OnInit, EditDossierS return this.dossierForm?.invalid; } - reportTemplateValueMapper = (reportTemplate: ReportTemplate) => reportTemplate.templateId; + reportTemplateValueMapper = (reportTemplate: IReportTemplate) => reportTemplate.templateId; async ngOnInit() { this.availableReportTypes = diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-redaction-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-redaction-dialog.component.ts index 8cc9d50d6..934cb3dcd 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-redaction-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-redaction-dialog.component.ts @@ -1,7 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MatDialogRef } from '@angular/material/dialog'; -import { ForceRedactionRequest } from '@redaction/red-ui-http'; import { Toaster } from '@iqser/common-ui'; import { TranslateService } from '@ngx-translate/core'; import { UserService } from '@services/user.service'; @@ -9,6 +8,7 @@ import { ManualAnnotationService } from '../../services/manual-annotation.servic import { PermissionsService } from '@services/permissions.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { JustificationsService } from '@services/entity-services/justifications.service'; +import { ILegalBasisChangeRequest } from '@red/domain'; export interface LegalBasisOption { label?: string; @@ -63,8 +63,8 @@ export class ForceRedactionDialogComponent implements OnInit { this.dialogRef.close(this._createForceRedactionRequest()); } - private _createForceRedactionRequest(): ForceRedactionRequest { - const request: ForceRedactionRequest = {}; + private _createForceRedactionRequest(): ILegalBasisChangeRequest { + const request: ILegalBasisChangeRequest = {}; const legalOption: LegalBasisOption = this.redactionForm.get('reason').value; diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts index ec0e0d3f5..afe1b932d 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts @@ -2,7 +2,6 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { AppStateService } from '@state/app-state.service'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { AddRedactionRequest } from '@redaction/red-ui-http'; import { Toaster } from '@iqser/common-ui'; import { TranslateService } from '@ngx-translate/core'; import { UserService } from '@services/user.service'; @@ -12,7 +11,7 @@ import { ManualAnnotationResponse } from '@models/file/manual-annotation-respons import { PermissionsService } from '@services/permissions.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { JustificationsService } from '@services/entity-services/justifications.service'; -import { Dictionary } from '@red/domain'; +import { Dictionary, IAddRedactionRequest } from '@red/domain'; export interface LegalBasisOption { label?: string; @@ -112,7 +111,7 @@ export class ManualAnnotationDialogComponent implements OnInit { ); } - private _enhanceManualRedaction(addRedactionRequest: AddRedactionRequest) { + private _enhanceManualRedaction(addRedactionRequest: IAddRedactionRequest) { const legalOption: LegalBasisOption = this.redactionForm.get('reason').value; addRedactionRequest.type = this.redactionForm.get('dictionary').value; if (legalOption) { diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/bulk-actions/dossier-overview-bulk-actions.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/bulk-actions/dossier-overview-bulk-actions.component.ts index 46301664e..9ccc7b34a 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/bulk-actions/dossier-overview-bulk-actions.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/bulk-actions/dossier-overview-bulk-actions.component.ts @@ -1,14 +1,13 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { AppStateService } from '@state/app-state.service'; import { PermissionsService } from '@services/permissions.service'; -import { File } from '@models/file/file'; +import { Dossier, File } from '@red/domain'; import { FileActionService } from '../../../../shared/services/file-action.service'; import { Observable } from 'rxjs'; import { DossiersDialogService } from '../../../../services/dossiers-dialog.service'; import { CircleButtonTypes, ConfirmationDialogInput, ListingService, LoadingService } from '@iqser/common-ui'; import { TranslateService } from '@ngx-translate/core'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { Dossier } from '@red/domain'; import { LongPressEvent } from '@shared/directives/long-press.directive'; import { UserPreferenceService } from '@services/user-preference.service'; import { FileManagementService } from '../../../../shared/services/file-management.service'; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details/dossier-details.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details/dossier-details.component.ts index b5f343a8b..5b809af90 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details/dossier-details.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details/dossier-details.component.ts @@ -1,13 +1,13 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { AppStateService } from '@state/app-state.service'; -import { groupBy, StatusSorter } from '@utils/index'; +import { groupBy } from '@utils/index'; import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/simple-doughnut-chart.component'; import { TranslateChartService } from '@services/translate-chart.service'; import { UserService } from '@services/user.service'; import { FilterService, Toaster } from '@iqser/common-ui'; import { fileStatusTranslations } from '../../../../translations/file-status-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { DossierAttributeWithValue, IDossierRequest, User } from '@red/domain'; +import { DossierAttributeWithValue, IDossierRequest, StatusSorter, User } from '@red/domain'; import { DossiersService } from '@services/entity-services/dossiers.service'; @Component({ @@ -61,7 +61,7 @@ export class DossierDetailsComponent implements OnInit { label: fileStatusTranslations[status], key: status, })); - documentsChartData.sort(StatusSorter.byStatus); + documentsChartData.sort((a, b) => StatusSorter.byStatus(a.key, b.key)); documentsChartData = this.translateChartService.translateStatus(documentsChartData); this.documentsChartData = documentsChartData; this._changeDetectorRef.detectChanges(); diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/table-item/table-item.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/table-item/table-item.component.ts index 8c0c4eba3..423bb01b7 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/table-item/table-item.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/table-item/table-item.component.ts @@ -1,7 +1,6 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core'; -import { File } from '@models/file/file'; +import { File, IFileAttributeConfig } from '@red/domain'; import { Required } from '@iqser/common-ui'; -import { IFileAttributeConfig } from '@redaction/red-ui-http'; @Component({ selector: 'redaction-table-item', diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/config.service.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/config.service.ts index e24c7f5bc..63001ca7e 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/config.service.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/config.service.ts @@ -10,9 +10,8 @@ import { TableColumnConfig, WorkflowConfig, } from '@iqser/common-ui'; -import { File } from '@models/file/file'; +import { File, FileStatus, FileStatuses, IFileAttributeConfig, StatusSorter } from '@red/domain'; import { fileStatusTranslations } from '../../translations/file-status-translations'; -import { FileStatus, FileStatuses, IFileAttributeConfig } from '@redaction/red-ui-http'; import { FileActionService } from '../../shared/services/file-action.service'; import { AppStateService } from '@state/app-state.service'; import { PermissionsService } from '@services/permissions.service'; @@ -20,7 +19,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { TranslateService } from '@ngx-translate/core'; import { UserService } from '@services/user.service'; import { DossiersDialogService } from '../../services/dossiers-dialog.service'; -import { annotationFilterChecker, RedactionFilterSorter, StatusSorter } from '@utils/index'; +import { annotationFilterChecker, RedactionFilterSorter } from '@utils/index'; import { workloadTranslations } from '../../translations/workload-translations'; import * as moment from 'moment'; import { ConfigService as AppConfigService } from '@services/config.service'; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts index 6e444ce63..45a43391c 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts @@ -11,7 +11,7 @@ import { TemplateRef, ViewChild, } from '@angular/core'; -import { FileStatus, IFileAttributeConfig } from '@redaction/red-ui-http'; +import { Dossier, DossierAttributeWithValue, File, FileStatus, IFileAttributeConfig } from '@red/domain'; import { AppStateService } from '@state/app-state.service'; import { FileDropOverlayService } from '@upload-download/services/file-drop-overlay.service'; import { FileUploadModel } from '@upload-download/model/file-upload.model'; @@ -20,7 +20,6 @@ import { StatusOverlayService } from '@upload-download/services/status-overlay.s import { TranslateService } from '@ngx-translate/core'; import * as moment from 'moment'; import { DossierDetailsComponent } from '../components/dossier-details/dossier-details.component'; -import { File } from '@models/file/file'; import { UserService } from '@services/user.service'; import { timer } from 'rxjs'; import { take, tap } from 'rxjs/operators'; @@ -45,7 +44,6 @@ import { DossierAttributesService } from '@shared/services/controller-wrappers/d import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { PermissionsService } from '@services/permissions.service'; import { RouterHistoryService } from '@services/router-history.service'; -import { Dossier, DossierAttributeWithValue } from '@red/domain'; import { Router } from '@angular/router'; import { FileAttributesService } from '@services/entity-services/file-attributes.service'; import { ConfigService as AppConfigService } from '@services/config.service'; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/components/dossiers-listing-actions/dossiers-listing-actions.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/components/dossiers-listing-actions/dossiers-listing-actions.component.ts index 1236afa26..0b865647f 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/components/dossiers-listing-actions/dossiers-listing-actions.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/components/dossiers-listing-actions/dossiers-listing-actions.component.ts @@ -1,6 +1,6 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; import { PermissionsService } from '@services/permissions.service'; -import { StatusSorter } from '@utils/sorters/status-sorter'; +import { StatusSorter } from '../../../../../../../../../../libs/red-domain/src/lib/shared/sorters/status-sorter'; import { CircleButtonTypes, StatusBarConfig } from '@iqser/common-ui'; import { UserService } from '@services/user.service'; import { AppStateService } from '@state/app-state.service'; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/config.service.ts b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/config.service.ts index 8498de620..d929ebb50 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/config.service.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/config.service.ts @@ -1,6 +1,6 @@ import { Injectable, TemplateRef } from '@angular/core'; import { ButtonConfig, IFilterGroup, keyChecker, NestedFilter, TableColumnConfig } from '@iqser/common-ui'; -import { Dossier, User } from '@red/domain'; +import { Dossier, StatusSorter, User } from '@red/domain'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { TranslateService } from '@ngx-translate/core'; import { UserPreferenceService } from '@services/user-preference.service'; @@ -12,7 +12,6 @@ import { dossierStatusChecker, dossierTemplateChecker, RedactionFilterSorter, - StatusSorter, } from '@utils/index'; import { workloadTranslations } from '../../translations/workload-translations'; import { AppStateService } from '@state/app-state.service'; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/screen/dossiers-listing-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/screen/dossiers-listing-screen.component.ts index 2f7fe09be..09e2e3e0b 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/screen/dossiers-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/screen/dossiers-listing-screen.component.ts @@ -10,7 +10,7 @@ import { ViewChild, } from '@angular/core'; import { AppStateService } from '@state/app-state.service'; -import { Dossier, DossierStatuses } from '@red/domain'; +import { Dossier, DossierStatuses, StatusSorter } from '@red/domain'; import { UserService } from '@services/user.service'; import { PermissionsService } from '@services/permissions.service'; import { TranslateChartService } from '@services/translate-chart.service'; @@ -19,7 +19,7 @@ import { timer } from 'rxjs'; import { tap } from 'rxjs/operators'; import { Router } from '@angular/router'; import { DossiersDialogService } from '../../../services/dossiers-dialog.service'; -import { groupBy, StatusSorter } from '@utils/index'; +import { groupBy } from '@utils/index'; import { DefaultListingServicesTmp, EntitiesService, ListingComponent, OnAttach, OnDetach, TableComponent } from '@iqser/common-ui'; import { fileStatusTranslations } from '../../../translations/file-status-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @@ -137,7 +137,7 @@ export class DossiersListingScreenComponent key: status, }); } - this.documentsChartData.sort(StatusSorter.byStatus); + this.documentsChartData.sort((a, b) => StatusSorter.byStatus(a.key, b.key)); this.documentsChartData = this._translateChartService.translateStatus(this.documentsChartData); } diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index bc1fc1b96..1bd12b1e4 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -24,15 +24,13 @@ import { AnnotationData, FileDataModel } from '@models/file/file-data.model'; import { FileActionService } from '../../shared/services/file-action.service'; import { AnnotationDrawService } from '../../services/annotation-draw.service'; import { AnnotationProcessingService } from '../../services/annotation-processing.service'; -import { File } from '@models/file/file'; +import { Dossier, File, FileStatus, User, ViewMode } from '@red/domain'; import { PermissionsService } from '@services/permissions.service'; import { timer } from 'rxjs'; import { UserPreferenceService } from '@services/user-preference.service'; import { UserService } from '@services/user.service'; -import { FileStatus } from '@redaction/red-ui-http'; import { PdfViewerDataService } from '../../services/pdf-viewer-data.service'; import { download } from '@utils/file-download-utils'; -import { ViewMode } from '@models/file/view-mode'; import { FileWorkloadComponent } from '../../components/file-workload/file-workload.component'; import { DossiersDialogService } from '../../services/dossiers-dialog.service'; import { clearStamps, stampPDFPage } from '@utils/page-stamper'; @@ -41,7 +39,6 @@ import { fileStatusTranslations } from '../../translations/file-status-translati import { handleFilterDelta } from '@utils/filter-utils'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { FileActionsComponent } from '../../shared/components/file-actions/file-actions.component'; -import { Dossier, User } from '@red/domain'; import { FilesService } from '@services/entity-services/files.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { FileManagementService } from '../../shared/services/file-management.service'; diff --git a/apps/red-ui/src/app/modules/dossier/services/annotation-actions.service.ts b/apps/red-ui/src/app/modules/dossier/services/annotation-actions.service.ts index 291f42c10..c2836a9f7 100644 --- a/apps/red-ui/src/app/modules/dossier/services/annotation-actions.service.ts +++ b/apps/red-ui/src/app/modules/dossier/services/annotation-actions.service.ts @@ -4,13 +4,13 @@ import { ManualAnnotationService } from './manual-annotation.service'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { Observable } from 'rxjs'; import { TranslateService } from '@ngx-translate/core'; -import { AddRedactionRequest, ForceRedactionRequest } from '@redaction/red-ui-http'; import { getFirstRelevantTextPart } from '@utils/functions'; import { AnnotationPermissions } from '@models/file/annotation.permissions'; import { DossiersDialogService } from './dossiers-dialog.service'; import { BASE_HREF } from '../../../tokens'; import { UserService } from '@services/user.service'; import { Core } from '@pdftron/webviewer'; +import { IAddRedactionRequest, ILegalBasisChangeRequest } from '@red/domain'; import Annotation = Core.Annotations.Annotation; @Injectable() @@ -44,7 +44,7 @@ export class AnnotationActionsService { } forceRedaction($event: MouseEvent, annotations: AnnotationWrapper[], annotationsChanged: EventEmitter) { - this._dialogService.openDialog('forceRedaction', $event, null, (request: ForceRedactionRequest) => { + this._dialogService.openDialog('forceRedaction', $event, null, (request: ILegalBasisChangeRequest) => { annotations.forEach(annotation => { this._processObsAndEmit( this._manualAnnotationService.force({ @@ -323,7 +323,7 @@ export class AnnotationActionsService { ) { $event?.stopPropagation(); - const falsePositiveRequest: AddRedactionRequest = {}; + const falsePositiveRequest: IAddRedactionRequest = {}; falsePositiveRequest.reason = annotation.id; falsePositiveRequest.value = text; falsePositiveRequest.type = 'false_positive'; diff --git a/apps/red-ui/src/app/modules/dossier/services/annotation-draw.service.ts b/apps/red-ui/src/app/modules/dossier/services/annotation-draw.service.ts index 2e1b22449..f87dda6db 100644 --- a/apps/red-ui/src/app/modules/dossier/services/annotation-draw.service.ts +++ b/apps/red-ui/src/app/modules/dossier/services/annotation-draw.service.ts @@ -1,13 +1,14 @@ import { Injectable } from '@angular/core'; import { Core, WebViewerInstance } from '@pdftron/webviewer'; -import { Rectangle, SectionGrid, SectionRectangle } from '@redaction/red-ui-http'; import { hexToRgb } from '@utils/functions'; import { AppStateService } from '@state/app-state.service'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { UserPreferenceService } from '@services/user-preference.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { RedactionLogService } from './redaction-log.service'; -import { environment } from '../../../../environments/environment'; +import { environment } from '@environments/environment'; + +import { IRectangle, ISectionGrid, ISectionRectangle } from '@red/domain'; import Annotation = Core.Annotations.Annotation; @Injectable() @@ -39,28 +40,6 @@ export class AnnotationDrawService { ); } - private async _drawAnnotations( - activeViewer: WebViewerInstance, - annotationWrappers: AnnotationWrapper[], - hideSkipped = false, - compareMode = false, - ) { - const annotations = annotationWrappers.map(annotation => - this._computeAnnotation(activeViewer, annotation, hideSkipped, compareMode), - ); - const annotationManager = activeViewer.Core.annotationManager; - annotationManager.addAnnotations(annotations, { imported: true }); - await annotationManager.drawAnnotationsFromList(annotations); - - if (this._userPreferenceService.areDevFeaturesEnabled) { - const sectionsGrid = await this._redactionLogService - .getSectionGrid(this._dossiersService.activeDossierId, this._appStateService.activeFileId) - .toPromise() - .catch(() => ({ rectanglesPerPage: {} })); - await this._drawSections(activeViewer, sectionsGrid); - } - } - getColor(activeViewer: WebViewerInstance, superType: string, dictionary?: string) { let color; switch (superType) { @@ -96,10 +75,32 @@ export class AnnotationDrawService { return new activeViewer.Core.Math.Quad(x1, y1, x2, y2, x3, y3, x4, y4); } - private async _drawSections(activeViewer: WebViewerInstance, sectionGrid: SectionGrid) { + private async _drawAnnotations( + activeViewer: WebViewerInstance, + annotationWrappers: AnnotationWrapper[], + hideSkipped = false, + compareMode = false, + ) { + const annotations = annotationWrappers.map(annotation => + this._computeAnnotation(activeViewer, annotation, hideSkipped, compareMode), + ); + const annotationManager = activeViewer.Core.annotationManager; + annotationManager.addAnnotations(annotations, { imported: true }); + await annotationManager.drawAnnotationsFromList(annotations); + + if (this._userPreferenceService.areDevFeaturesEnabled) { + const sectionsGrid = await this._redactionLogService + .getSectionGrid(this._dossiersService.activeDossierId, this._appStateService.activeFileId) + .toPromise() + .catch(() => ({ rectanglesPerPage: {} })); + await this._drawSections(activeViewer, sectionsGrid); + } + } + + private async _drawSections(activeViewer: WebViewerInstance, sectionGrid: ISectionGrid) { const sections = []; for (const page of Object.keys(sectionGrid.rectanglesPerPage)) { - const sectionRectangles: SectionRectangle[] = sectionGrid.rectanglesPerPage[page]; + const sectionRectangles = sectionGrid.rectanglesPerPage[page]; sectionRectangles.forEach(sectionRectangle => { sections.push(this._computeSection(activeViewer, parseInt(page, 10), sectionRectangle)); // sectionRectangle.tableCells?.forEach(cell =>{ @@ -112,10 +113,10 @@ export class AnnotationDrawService { await annotationManager.drawAnnotationsFromList(sections); } - private _computeSection(activeViewer: WebViewerInstance, pageNumber: number, sectionRectangle: SectionRectangle) { + private _computeSection(activeViewer: WebViewerInstance, pageNumber: number, sectionRectangle: ISectionRectangle) { const rectangleAnnot = new activeViewer.Core.Annotations.RectangleAnnotation(); const pageHeight = activeViewer.Core.documentViewer.getPageHeight(pageNumber); - const rectangle = { + const rectangle: IRectangle = { topLeft: sectionRectangle.topLeft, page: pageNumber, height: sectionRectangle.height, @@ -168,12 +169,12 @@ export class AnnotationDrawService { return highlight; } - private _rectanglesToQuads(positions: Rectangle[], activeViewer: WebViewerInstance, pageNumber: number): any[] { + private _rectanglesToQuads(positions: IRectangle[], activeViewer: WebViewerInstance, pageNumber: number): any[] { const pageHeight = activeViewer.Core.documentViewer.getPageHeight(pageNumber); return positions.map(p => this._rectangleToQuad(p, activeViewer, pageHeight)); } - private _rectangleToQuad(rectangle: Rectangle, activeViewer: WebViewerInstance, pageHeight: number): any { + private _rectangleToQuad(rectangle: IRectangle, activeViewer: WebViewerInstance, pageHeight: number): any { const x1 = rectangle.topLeft.x; const y1 = pageHeight - (rectangle.topLeft.y + rectangle.height); diff --git a/apps/red-ui/src/app/modules/dossier/services/manual-annotation.service.ts b/apps/red-ui/src/app/modules/dossier/services/manual-annotation.service.ts index 54c60dfbf..991478045 100644 --- a/apps/red-ui/src/app/modules/dossier/services/manual-annotation.service.ts +++ b/apps/red-ui/src/app/modules/dossier/services/manual-annotation.service.ts @@ -1,19 +1,17 @@ import { Injectable, Injector } from '@angular/core'; import { AppStateService } from '@state/app-state.service'; import { - AddRedactionRequest, - ApproveRequest, - CommentResponse, - ForceRedactionRequest, - ImageRecategorizationRequest, - LegalBasisChangeRequest, - ManualAddResponse, - RemoveRedactionRequest, -} from '@redaction/red-ui-http'; + IAddRedactionRequest, + IApproveRequest, + IImageRecategorizationRequest, + ILegalBasisChangeRequest, + IManualAddResponse, + IRemoveRedactionRequest, +} from '@red/domain'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { CONFLICT_ERROR_CODE, ErrorMessageService, GenericService, RequiredParam, Toaster, Validate } from '@iqser/common-ui'; import { TranslateService } from '@ngx-translate/core'; -import { tap } from 'rxjs/operators'; +import { map, tap } from 'rxjs/operators'; import { UserService } from '@services/user.service'; import { PermissionsService } from '@services/permissions.service'; import { AnnotationActionMode } from '../models/annotation-action-mode.model'; @@ -23,7 +21,7 @@ import { DossiersService } from '@services/entity-services/dossiers.service'; import { HttpErrorResponse } from '@angular/common/http'; @Injectable() -export class ManualAnnotationService extends GenericService { +export class ManualAnnotationService extends GenericService { CONFIG: { [key in AnnotationActionMode]: string; }; @@ -87,7 +85,7 @@ export class ManualAnnotationService extends GenericService { fileId = this._appStateService.activeFileId, ) { const url = `${this._defaultModelPath}/comment/add/${dossierId}/${fileId}/${annotationId}`; - return this._post({ text: comment }, url); + return this._post<{ commentId: string }>({ text: comment }, url).pipe(map(res => res.commentId)); } @Validate() @@ -102,7 +100,7 @@ export class ManualAnnotationService extends GenericService { } addRecommendation(annotation: AnnotationWrapper) { - const manualRedactionEntry: AddRedactionRequest = {}; + const manualRedactionEntry: IAddRedactionRequest = {}; manualRedactionEntry.addToDictionary = true; // set the ID as reason, so we can hide the suggestion manualRedactionEntry.reason = annotation.id; @@ -132,7 +130,7 @@ export class ManualAnnotationService extends GenericService { // this wraps // /manualRedaction/redaction/add // /manualRedaction/request/add - addAnnotation(manualRedactionEntry: AddRedactionRequest) { + addAnnotation(manualRedactionEntry: IAddRedactionRequest) { const mode: AnnotationActionMode = this._permissionsService.isApprover() ? 'add' : 'suggest'; return this._makeRequest(mode, manualRedactionEntry, null, manualRedactionEntry.addToDictionary); } @@ -140,7 +138,7 @@ export class ManualAnnotationService extends GenericService { // this wraps // /manualRedaction/redaction/force // /manualRedaction/request/force - force(request: ForceRedactionRequest) { + force(request: ILegalBasisChangeRequest) { const mode: AnnotationActionMode = this._permissionsService.isApprover() ? 'force-redaction' : 'request-force-redaction'; return this._makeRequest(mode, request); } @@ -222,14 +220,14 @@ export class ManualAnnotationService extends GenericService { } @Validate() - addRedaction(@RequiredParam() body: AddRedactionRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string) { + addRedaction(@RequiredParam() body: IAddRedactionRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string) { const url = `${this._defaultModelPath}/redaction/add/${dossierId}/${fileId}`; return this._post(body, url); } @Validate() recategorizeImage( - @RequiredParam() body: ImageRecategorizationRequest, + @RequiredParam() body: IImageRecategorizationRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string, ) { @@ -239,7 +237,7 @@ export class ManualAnnotationService extends GenericService { @Validate() requestImageRecategorization( - @RequiredParam() body: ImageRecategorizationRequest, + @RequiredParam() body: IImageRecategorizationRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string, ) { @@ -248,14 +246,14 @@ export class ManualAnnotationService extends GenericService { } @Validate() - legalBasisChange(@RequiredParam() body: LegalBasisChangeRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string) { + legalBasisChange(@RequiredParam() body: ILegalBasisChangeRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string) { const url = `${this._defaultModelPath}/redaction/legalBasisChange/${dossierId}/${fileId}`; return this._post(body, url); } @Validate() requestLegalBasisChange( - @RequiredParam() body: LegalBasisChangeRequest, + @RequiredParam() body: ILegalBasisChangeRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string, ) { @@ -265,7 +263,7 @@ export class ManualAnnotationService extends GenericService { @Validate() requestRemoveRedaction( - @RequiredParam() body: RemoveRedactionRequest, + @RequiredParam() body: IRemoveRedactionRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string, ) { @@ -275,7 +273,7 @@ export class ManualAnnotationService extends GenericService { @Validate() approveRequest( - @RequiredParam() body: ApproveRequest, + @RequiredParam() body: IApproveRequest, @RequiredParam() annotationId: string, @RequiredParam() dossierId: string, @RequiredParam() fileId: string, @@ -297,26 +295,26 @@ export class ManualAnnotationService extends GenericService { } @Validate() - removeRedaction(@RequiredParam() body: RemoveRedactionRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string) { + removeRedaction(@RequiredParam() body: IRemoveRedactionRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string) { const url = `${this._defaultModelPath}/redaction/remove/${dossierId}/${fileId}`; return this._post(body, url); } @Validate() - requestAddRedaction(@RequiredParam() body: AddRedactionRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string) { + requestAddRedaction(@RequiredParam() body: IAddRedactionRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string) { const url = `${this._defaultModelPath}/request/add/${dossierId}/${fileId}`; return this._post(body, url); } @Validate() - forceRedaction(@RequiredParam() body: ForceRedactionRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string) { + forceRedaction(@RequiredParam() body: ILegalBasisChangeRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string) { const url = `${this._defaultModelPath}/redaction/force/${dossierId}/${fileId}`; return this._post(body, url); } @Validate() requestForceRedaction( - @RequiredParam() body: ForceRedactionRequest, + @RequiredParam() body: ILegalBasisChangeRequest, @RequiredParam() dossierId: string, @RequiredParam() fileId: string, ) { diff --git a/apps/red-ui/src/app/modules/dossier/services/pdf-viewer-data.service.ts b/apps/red-ui/src/app/modules/dossier/services/pdf-viewer-data.service.ts index 4d1357db0..268bbd861 100644 --- a/apps/red-ui/src/app/modules/dossier/services/pdf-viewer-data.service.ts +++ b/apps/red-ui/src/app/modules/dossier/services/pdf-viewer-data.service.ts @@ -4,7 +4,7 @@ import { catchError, map, tap } from 'rxjs/operators'; import { FileDataModel } from '@models/file/file-data.model'; import { AppStateService } from '@state/app-state.service'; import { PermissionsService } from '@services/permissions.service'; -import { File } from '@models/file/file'; +import { File } from '@red/domain'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { FileManagementService } from '../shared/services/file-management.service'; import { RedactionLogService } from './redaction-log.service'; @@ -23,16 +23,14 @@ export class PdfViewerDataService { loadActiveFileRedactionLog() { return this._redactionLogService.getRedactionLog(this._dossiersService.activeDossierId, this._appStateService.activeFileId).pipe( - tap( - redactionLog => redactionLog.redactionLogEntry.sort((a, b) => a.positions[0].page - b.positions[0].page), - catchError(() => of({})), - ), + tap(redactionLog => redactionLog.redactionLogEntry.sort((a, b) => a.positions[0].page - b.positions[0].page)), + catchError(() => of({})), ); } loadActiveFileData(): Observable { const file$ = this.downloadOriginalFile(this._appStateService.activeFile); - const reactionLog$ = this.loadActiveFileRedactionLog().pipe(catchError(() => of({}))); + const reactionLog$ = this.loadActiveFileRedactionLog(); const viewedPages$ = this.getViewedPagesForActiveFile(); return forkJoin([file$, reactionLog$, viewedPages$]).pipe( diff --git a/apps/red-ui/src/app/modules/dossier/services/redaction-log.service.ts b/apps/red-ui/src/app/modules/dossier/services/redaction-log.service.ts index b90b0c456..4ecda514f 100644 --- a/apps/red-ui/src/app/modules/dossier/services/redaction-log.service.ts +++ b/apps/red-ui/src/app/modules/dossier/services/redaction-log.service.ts @@ -1,6 +1,6 @@ import { Injectable, Injector } from '@angular/core'; import { GenericService, QueryParam, RequiredParam, Validate } from '@iqser/common-ui'; -import { RedactionLog, SectionGrid } from '@redaction/red-ui-http'; +import { IRedactionLog, ISectionGrid } from '@red/domain'; @Injectable({ providedIn: 'root', @@ -17,11 +17,11 @@ export class RedactionLogService extends GenericService { queryParams.push({ key: 'withManualRedactions', value: withManualRedactions }); } - return this._getOne([dossierId, fileId], 'redactionLog', queryParams); + return this._getOne([dossierId, fileId], 'redactionLog', queryParams); } @Validate() getSectionGrid(@RequiredParam() dossierId: string, @RequiredParam() fileId: string) { - return this._getOne([dossierId, fileId], 'sectionGrid'); + return this._getOne([dossierId, fileId], 'sectionGrid'); } } diff --git a/apps/red-ui/src/app/modules/dossier/shared/components/file-actions/file-actions.component.ts b/apps/red-ui/src/app/modules/dossier/shared/components/file-actions/file-actions.component.ts index d47ba92f5..7bdcd13cf 100644 --- a/apps/red-ui/src/app/modules/dossier/shared/components/file-actions/file-actions.component.ts +++ b/apps/red-ui/src/app/modules/dossier/shared/components/file-actions/file-actions.component.ts @@ -1,6 +1,6 @@ import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core'; import { PermissionsService } from '@services/permissions.service'; -import { File } from '@models/file/file'; +import { File, FileStatus } from '@red/domain'; import { AppStateService } from '@state/app-state.service'; import { DossiersDialogService } from '../../../services/dossiers-dialog.service'; import { @@ -13,7 +13,6 @@ import { StatusBarConfig, Toaster, } from '@iqser/common-ui'; -import { FileStatus } from '@redaction/red-ui-http'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserService } from '@services/user.service'; import { filter } from 'rxjs/operators'; diff --git a/apps/red-ui/src/app/modules/dossier/shared/components/needs-work-badge/needs-work-badge.component.ts b/apps/red-ui/src/app/modules/dossier/shared/components/needs-work-badge/needs-work-badge.component.ts index 63717551b..7fe83e885 100644 --- a/apps/red-ui/src/app/modules/dossier/shared/components/needs-work-badge/needs-work-badge.component.ts +++ b/apps/red-ui/src/app/modules/dossier/shared/components/needs-work-badge/needs-work-badge.component.ts @@ -1,7 +1,6 @@ import { Component, Input } from '@angular/core'; import { AppStateService } from '@state/app-state.service'; -import { File } from '@models/file/file'; -import { Dossier } from '@red/domain'; +import { Dossier, File } from '@red/domain'; @Component({ selector: 'redaction-needs-work-badge', diff --git a/apps/red-ui/src/app/modules/dossier/shared/services/file-action.service.ts b/apps/red-ui/src/app/modules/dossier/shared/services/file-action.service.ts index 858bb2fe5..dc40eaac5 100644 --- a/apps/red-ui/src/app/modules/dossier/shared/services/file-action.service.ts +++ b/apps/red-ui/src/app/modules/dossier/shared/services/file-action.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { AppStateService } from '@state/app-state.service'; import { UserService } from '@services/user.service'; -import { File } from '@models/file/file'; +import { File } from '@red/domain'; import { PermissionsService } from '@services/permissions.service'; import { DossiersDialogService } from '../../services/dossiers-dialog.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; diff --git a/apps/red-ui/src/app/modules/dossier/shared/services/viewed-pages.service.ts b/apps/red-ui/src/app/modules/dossier/shared/services/viewed-pages.service.ts index a4b84576a..ac3b571aa 100644 --- a/apps/red-ui/src/app/modules/dossier/shared/services/viewed-pages.service.ts +++ b/apps/red-ui/src/app/modules/dossier/shared/services/viewed-pages.service.ts @@ -1,7 +1,8 @@ import { Injectable, Injector } from '@angular/core'; import { GenericService, RequiredParam, Validate } from '@iqser/common-ui'; -import { map } from 'rxjs/operators'; +import { catchError, map } from 'rxjs/operators'; import { IViewedPage, IViewedPagesRequest } from '@red/domain'; +import { of } from 'rxjs'; @Injectable({ providedIn: 'root', @@ -23,6 +24,9 @@ export class ViewedPagesService extends GenericService { @Validate() getViewedPages(@RequiredParam() dossierId: string, @RequiredParam() fileId: string) { - return this._getOne<{ pages?: IViewedPage[] }>([dossierId, fileId]).pipe(map(res => res.pages)); + return this._getOne<{ pages?: IViewedPage[] }>([dossierId, fileId]).pipe( + map(res => res.pages), + catchError(() => of([])), + ); } } diff --git a/apps/red-ui/src/app/modules/dossier/translations/file-status-translations.ts b/apps/red-ui/src/app/modules/dossier/translations/file-status-translations.ts index 1449ed1d2..4d01b3ed2 100644 --- a/apps/red-ui/src/app/modules/dossier/translations/file-status-translations.ts +++ b/apps/red-ui/src/app/modules/dossier/translations/file-status-translations.ts @@ -1,5 +1,5 @@ -import { FileStatus } from '@redaction/red-ui-http'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { FileStatus } from '@red/domain'; export const fileStatusTranslations: { [key in FileStatus]: string } = { APPROVED: _('file-status.approved'), diff --git a/apps/red-ui/src/app/modules/dossier/utils/pdf-viewer.utils.ts b/apps/red-ui/src/app/modules/dossier/utils/pdf-viewer.utils.ts index e18e7b8d5..224d58bf2 100644 --- a/apps/red-ui/src/app/modules/dossier/utils/pdf-viewer.utils.ts +++ b/apps/red-ui/src/app/modules/dossier/utils/pdf-viewer.utils.ts @@ -1,6 +1,5 @@ -import { ViewMode } from '@models/file/view-mode'; +import { IRectangle, ViewMode } from '@red/domain'; import { translateQuads } from '@utils/pdf-coordinates'; -import { Rectangle } from '@redaction/red-ui-http'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { Core, WebViewerInstance } from '@pdftron/webviewer'; import Annotation = Core.Annotations.Annotation; @@ -121,7 +120,7 @@ export class PdfViewerUtils { return translateQuads(page, rotation, quads); } - toPosition(page: number, selectedQuad: { x1: number; x2: number; x3: number; x4: number; y4: number; y2: number }): Rectangle { + toPosition(page: number, selectedQuad: { x1: number; x2: number; x3: number; x4: number; y4: number; y2: number }): IRectangle { const pageHeight = this._documentViewer.getPageHeight(page); const height = selectedQuad.y2 - selectedQuad.y4; return { diff --git a/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts b/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts index 3ec14a67b..76ae7a6b7 100644 --- a/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts @@ -1,7 +1,6 @@ import { ChangeDetectionStrategy, Component, Input, OnDestroy } from '@angular/core'; import { PermissionsService } from '@services/permissions.service'; -import { Dossier } from '@red/domain'; -import { File } from '@models/file/file'; +import { Dossier, File } from '@red/domain'; import { FileDownloadService } from '@upload-download/services/file-download.service'; import { AutoUnsubscribe, CircleButtonType, CircleButtonTypes, List, Toaster } from '@iqser/common-ui'; import { TranslateService } from '@ngx-translate/core'; diff --git a/apps/red-ui/src/app/modules/shared/services/dictionary.service.ts b/apps/red-ui/src/app/modules/shared/services/dictionary.service.ts index 89923d9d7..3e6aad186 100644 --- a/apps/red-ui/src/app/modules/shared/services/dictionary.service.ts +++ b/apps/red-ui/src/app/modules/shared/services/dictionary.service.ts @@ -1,10 +1,9 @@ import { Injectable, Injector } from '@angular/core'; import { Observable, throwError } from 'rxjs'; import { EntitiesService, List, QueryParam, RequiredParam, Toaster, Validate } from '@iqser/common-ui'; -import { Colors, UpdateDictionary } from '@redaction/red-ui-http'; +import { Dictionary, IColors, IDictionary, IUpdateDictionary } from '@red/domain'; import { tap } from 'rxjs/operators'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { Dictionary, IDictionary } from '@red/domain'; const MIN_WORD_LENGTH = 2; @@ -49,7 +48,7 @@ export class DictionaryService extends EntitiesService */ @Validate() getColors(@RequiredParam() dossierTemplateId: string) { - return this._getOne([dossierTemplateId], 'color'); + return this._getOne([dossierTemplateId], 'color'); } /** @@ -57,7 +56,7 @@ export class DictionaryService extends EntitiesService */ @Validate() updateDictionary( - @RequiredParam() body: UpdateDictionary, + @RequiredParam() body: IUpdateDictionary, @RequiredParam() dossierTemplateId: string, @RequiredParam() type: string, dossierId?: string, @@ -71,7 +70,7 @@ export class DictionaryService extends EntitiesService * Set system colors for redaction */ @Validate() - setColors(@RequiredParam() body: Colors, @RequiredParam() dossierTemplateId: string) { + setColors(@RequiredParam() body: IColors, @RequiredParam() dossierTemplateId: string) { return this._post(body, `color/${dossierTemplateId}`); } diff --git a/apps/red-ui/src/app/modules/upload-download/services/file-download.service.ts b/apps/red-ui/src/app/modules/upload-download/services/file-download.service.ts index 205ac900a..770411ec7 100644 --- a/apps/red-ui/src/app/modules/upload-download/services/file-download.service.ts +++ b/apps/red-ui/src/app/modules/upload-download/services/file-download.service.ts @@ -1,15 +1,15 @@ import { Injectable, Injector } from '@angular/core'; import { - DownloadResponse, - DownloadStatusResponse, + DownloadStatus, + IDownloadResponse, IDownloadStatus, - PrepareDownloadRequest, - RemoveDownloadRequest, -} from '@redaction/red-ui-http'; + IDownloadStatusResponse, + IPrepareDownloadRequest, + IRemoveDownloadRequest, +} from '@red/domain'; import { interval, Observable } from 'rxjs'; import { ConfigService } from '@services/config.service'; import { map, mergeMap, tap } from 'rxjs/operators'; -import { DownloadStatus } from '../model/download-status'; import { KeycloakService } from 'keycloak-angular'; import { UserService } from '@services/user.service'; import { EntitiesService, List, RequiredParam, Validate } from '@iqser/common-ui'; @@ -48,7 +48,7 @@ export class FileDownloadService extends EntitiesService { - return super._getOne(['status']).pipe(map(res => res.downloadStatus)); + return super._getOne(['status']).pipe(map(res => res.downloadStatus)); } async performDownload(status: DownloadStatus) { @@ -66,12 +66,12 @@ export class FileDownloadService extends EntitiesService { + prepareDownload(@RequiredParam() body: IPrepareDownloadRequest): Observable { return this._post(body, `${this._defaultModelPath}/prepare`); } @Validate() - delete(@RequiredParam() body: RemoveDownloadRequest): Observable { + delete(@RequiredParam() body: IRemoveDownloadRequest): Observable { return super._post(body, `${this._defaultModelPath}/delete`); } } diff --git a/apps/red-ui/src/app/modules/upload-download/services/file-upload.service.ts b/apps/red-ui/src/app/modules/upload-download/services/file-upload.service.ts index a76853ae1..46d233762 100644 --- a/apps/red-ui/src/app/modules/upload-download/services/file-upload.service.ts +++ b/apps/red-ui/src/app/modules/upload-download/services/file-upload.service.ts @@ -6,7 +6,7 @@ import { interval, Subscription } from 'rxjs'; import { ConfigService } from '@services/config.service'; import { TranslateService } from '@ngx-translate/core'; import { UploadDownloadDialogService } from './upload-download-dialog.service'; -import { FileUploadResult } from '@redaction/red-ui-http'; +import { IFileUploadResult } from '@red/domain'; import { isCsv } from '@utils/file-drop-utils'; import { ErrorMessageService, GenericService, HeadersConfiguration, RequiredParam, Validate } from '@iqser/common-ui'; import { DossiersService } from '@services/entity-services/dossiers.service'; @@ -17,7 +17,7 @@ export interface ActiveUpload { } @Injectable() -export class FileUploadService extends GenericService { +export class FileUploadService extends GenericService { static readonly MAX_PARALLEL_UPLOADS = 5; files: FileUploadModel[] = []; groupedFiles: { [key: string]: FileUploadModel[] } = {}; @@ -130,7 +130,7 @@ export class FileUploadService extends GenericService { const headers = HeadersConfiguration.getHeaders({ contentType: false }).append('ngsw-bypass', 'true'); - return this._http.post(`/${this._defaultModelPath}/${dossierId}`, formParams, { + return this._http.post(`/${this._defaultModelPath}/${dossierId}`, formParams, { headers, observe: 'events', reportProgress: true, diff --git a/apps/red-ui/src/app/services/entity-services/dossiers.service.ts b/apps/red-ui/src/app/services/entity-services/dossiers.service.ts index 278e114b8..c89b8fcd2 100644 --- a/apps/red-ui/src/app/services/entity-services/dossiers.service.ts +++ b/apps/red-ui/src/app/services/entity-services/dossiers.service.ts @@ -1,10 +1,9 @@ import { Injectable, Injector } from '@angular/core'; import { EntitiesService, List, QueryParam, RequiredParam, Toaster, Validate } from '@iqser/common-ui'; -import { Dossier, IDossier, IDossierRequest } from '@red/domain'; +import { Dossier, File, IDossier, IDossierRequest } from '@red/domain'; import { catchError, map, tap } from 'rxjs/operators'; import { BehaviorSubject, Observable, of } from 'rxjs'; import { ActivationEnd, Router } from '@angular/router'; -import { File } from '@models/file/file'; import { DictionaryService } from '@shared/services/dictionary.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { currentComponentRoute } from '@utils/functions'; diff --git a/apps/red-ui/src/app/services/entity-services/file-attributes.service.ts b/apps/red-ui/src/app/services/entity-services/file-attributes.service.ts index 19dc2b727..576e0fb53 100644 --- a/apps/red-ui/src/app/services/entity-services/file-attributes.service.ts +++ b/apps/red-ui/src/app/services/entity-services/file-attributes.service.ts @@ -1,11 +1,10 @@ import { EntitiesService, List, RequiredParam, Validate } from '@iqser/common-ui'; -import { FileAttributes, FileAttributesConfig, IFileAttributeConfig } from '@redaction/red-ui-http'; import { Injectable, Injector } from '@angular/core'; import { BehaviorSubject, Observable, of } from 'rxjs'; import { catchError, map, tap } from 'rxjs/operators'; -import { FileAttributeConfig } from '@models/file/file-attribute-config'; +import { FileAttributeConfig, FileAttributes, IFileAttributeConfig, IFileAttributesConfig } from '@red/domain'; -type FileAttributesConfigMap = Readonly>; +type FileAttributesConfigMap = Readonly>; @Injectable({ providedIn: 'root', @@ -25,12 +24,12 @@ export class FileAttributesService extends EntitiesService { + getFileAttributesConfig(@RequiredParam() dossierTemplateId: string, fetch = true): Observable { if (!fetch) { return this._fileAttributesConfig$.pipe(map(entities => entities[dossierTemplateId])); } - const request$ = this._getOne(['config', dossierTemplateId]); + const request$ = this._getOne(['config', dossierTemplateId]); return request$.pipe( tap(entities => this._fileAttributesConfig$.next({ @@ -42,7 +41,7 @@ export class FileAttributesService extends EntitiesService(body, url); } diff --git a/apps/red-ui/src/app/services/entity-services/files.service.ts b/apps/red-ui/src/app/services/entity-services/files.service.ts index 4cec35fdd..17892bc02 100644 --- a/apps/red-ui/src/app/services/entity-services/files.service.ts +++ b/apps/red-ui/src/app/services/entity-services/files.service.ts @@ -1,7 +1,6 @@ import { Injectable, Injector } from '@angular/core'; import { EntitiesService, List, RequiredParam, Validate } from '@iqser/common-ui'; -import { IFile } from '@redaction/red-ui-http'; -import { File } from '@models/file/file'; +import { File, IFile } from '@red/domain'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { UserService } from '../user.service'; diff --git a/apps/red-ui/src/app/services/entity-services/justifications.service.ts b/apps/red-ui/src/app/services/entity-services/justifications.service.ts index 11778da5f..d2ad24cd2 100644 --- a/apps/red-ui/src/app/services/entity-services/justifications.service.ts +++ b/apps/red-ui/src/app/services/entity-services/justifications.service.ts @@ -1,7 +1,6 @@ import { Injectable, Injector } from '@angular/core'; import { EntitiesService, RequiredParam, Validate } from '@iqser/common-ui'; -import { ILegalBasis } from '@redaction/red-ui-http'; -import { Justification } from '@models/justification.model'; +import { ILegalBasis, Justification } from '@red/domain'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; diff --git a/apps/red-ui/src/app/services/general-settings.service.ts b/apps/red-ui/src/app/services/general-settings.service.ts index 08613dfae..b817352c8 100644 --- a/apps/red-ui/src/app/services/general-settings.service.ts +++ b/apps/red-ui/src/app/services/general-settings.service.ts @@ -1,11 +1,11 @@ import { Injectable, Injector } from '@angular/core'; import { GenericService, RequiredParam, Validate } from '@iqser/common-ui'; -import { GeneralConfigurationModel } from '@redaction/red-ui-http'; +import { IGeneralConfiguration } from '@red/domain'; @Injectable({ providedIn: 'root', }) -export class GeneralSettingsService extends GenericService { +export class GeneralSettingsService extends GenericService { constructor(protected readonly _injector: Injector) { super(_injector, 'configuration'); } @@ -15,7 +15,7 @@ export class GeneralSettingsService extends GenericService(body, `${this._defaultModelPath}/general`); } } diff --git a/apps/red-ui/src/app/services/permissions.service.ts b/apps/red-ui/src/app/services/permissions.service.ts index 8ebf94cf1..75e12021f 100644 --- a/apps/red-ui/src/app/services/permissions.service.ts +++ b/apps/red-ui/src/app/services/permissions.service.ts @@ -1,9 +1,7 @@ import { Injectable } from '@angular/core'; import { AppStateService } from '@state/app-state.service'; import { UserService } from './user.service'; -import { File } from '@models/file/file'; -import { Comment } from '@redaction/red-ui-http'; -import { Dossier } from '@red/domain'; +import { Dossier, File, IComment } from '@red/domain'; import { DossiersService } from './entity-services/dossiers.service'; @Injectable({ @@ -147,7 +145,7 @@ export class PermissionsService { return ['UNDER_REVIEW', 'UNDER_APPROVAL'].includes(file.status) && (this.isFileReviewer(file) || this.isApprover()); } - canDeleteComment(comment: Comment, file = this._activeFile) { + canDeleteComment(comment: IComment, file = this._activeFile) { return (comment.user === this._userService.currentUser.id || this.isApprover()) && !file.isApproved; } } diff --git a/apps/red-ui/src/app/services/report-template.service.ts b/apps/red-ui/src/app/services/report-template.service.ts index 9f24f9f50..72083e60e 100644 --- a/apps/red-ui/src/app/services/report-template.service.ts +++ b/apps/red-ui/src/app/services/report-template.service.ts @@ -1,6 +1,6 @@ import { Injectable, Injector } from '@angular/core'; import { GenericService, HeadersConfiguration, RequiredParam, Validate } from '@iqser/common-ui'; -import { PlaceholdersResponse, ReportTemplate } from '@redaction/red-ui-http'; +import { IPlaceholdersResponse, IReportTemplate } from '@red/domain'; import { Observable } from 'rxjs'; import { HttpResponse } from '@angular/common/http'; @@ -35,12 +35,12 @@ export class ReportTemplateService extends GenericService { @Validate() getAvailableReportTemplates(@RequiredParam() dossierTemplateId: string) { - return this.getAll(`${this._defaultModelPath}/${dossierTemplateId}`); + return this.getAll(`${this._defaultModelPath}/${dossierTemplateId}`); } @Validate() getAvailablePlaceholders(@RequiredParam() dossierTemplateId: string) { - return this._getOne([dossierTemplateId], 'placeholders'); + return this._getOne([dossierTemplateId], 'placeholders'); } downloadReportTemplate(dossierTemplateId: string, templateId: string, observe: 'response'): Observable>; diff --git a/apps/red-ui/src/app/services/user.service.ts b/apps/red-ui/src/app/services/user.service.ts index 9202122ba..fe2626696 100644 --- a/apps/red-ui/src/app/services/user.service.ts +++ b/apps/red-ui/src/app/services/user.service.ts @@ -1,11 +1,10 @@ import { Inject, Injectable, Injector } from '@angular/core'; import { KeycloakService } from 'keycloak-angular'; import jwt_decode from 'jwt-decode'; -import { CreateUserRequest, ResetPasswordRequest } from '@redaction/red-ui-http'; +import { ICreateUserRequest, IMyProfileUpdateRequest, IProfileUpdateRequest, IResetPasswordRequest, IUser, User } from '@red/domain'; import { wipeCaches } from '@redaction/red-cache'; import { BASE_HREF } from '../tokens'; import { BehaviorSubject, Observable } from 'rxjs'; -import { IMyProfileUpdateRequest, IProfileUpdateRequest, IUser, User } from '@red/domain'; import { EntitiesService, List, mapEach, QueryParam, RequiredParam, Validate } from '@iqser/common-ui'; import { tap } from 'rxjs/operators'; @@ -96,12 +95,12 @@ export class UserService extends EntitiesService { } @Validate() - resetPassword(@RequiredParam() body: ResetPasswordRequest, @RequiredParam() userId: string) { + resetPassword(@RequiredParam() body: IResetPasswordRequest, @RequiredParam() userId: string) { return this._post(body, `${this._defaultModelPath}/${userId}/reset-password`); } @Validate() - create(@RequiredParam() body: CreateUserRequest) { + create(@RequiredParam() body: ICreateUserRequest) { return this._post(body); } diff --git a/apps/red-ui/src/app/state/app-state.service.ts b/apps/red-ui/src/app/state/app-state.service.ts index 99ae7e7e9..95323132d 100644 --- a/apps/red-ui/src/app/state/app-state.service.ts +++ b/apps/red-ui/src/app/state/app-state.service.ts @@ -1,12 +1,10 @@ import { Injectable } from '@angular/core'; -import { Colors, IFile } from '@redaction/red-ui-http'; +import { Dictionary, Dossier, DossierTemplate, File, IColors, IDossier, IFile } from '@red/domain'; import { ActivationEnd, Router } from '@angular/router'; import { UserService } from '@services/user.service'; import { forkJoin, Observable, of, Subject } from 'rxjs'; import { catchError, filter, first, map, tap } from 'rxjs/operators'; import { currentComponentRoute, FALLBACK_COLOR, hexToRgb } from '@utils/functions'; -import { File } from '@models/file/file'; -import { Dictionary, Dossier, DossierTemplate, IDossier } from '@red/domain'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { UserPreferenceService } from '@services/user-preference.service'; import { FilesService } from '@services/entity-services/files.service'; @@ -275,7 +273,7 @@ export class AppStateService { requestRemove: FALLBACK_COLOR, updatedColor: FALLBACK_COLOR, dossierTemplateId: dossierTemplateId, - } as Colors), + } as IColors), ), ); } diff --git a/apps/red-ui/src/app/utils/filter-utils.ts b/apps/red-ui/src/app/utils/filter-utils.ts index ebc432957..0e011eeaa 100644 --- a/apps/red-ui/src/app/utils/filter-utils.ts +++ b/apps/red-ui/src/app/utils/filter-utils.ts @@ -1,5 +1,4 @@ -import { File } from '@models/file/file'; -import { Dossier, User, UserType } from '@red/domain'; +import { Dossier, File, User, UserType } from '@red/domain'; import { handleCheckedValue, INestedFilter } from '@iqser/common-ui'; export function handleFilterDelta(oldFilters: INestedFilter[], newFilters: INestedFilter[], allFilters: INestedFilter[]) { diff --git a/apps/red-ui/src/app/utils/index.ts b/apps/red-ui/src/app/utils/index.ts index 3ddc348a7..bff85cbba 100644 --- a/apps/red-ui/src/app/utils/index.ts +++ b/apps/red-ui/src/app/utils/index.ts @@ -1,5 +1,4 @@ export * from './sorters/redaction-filter-sorter'; -export * from './sorters/status-sorter'; export * from './sorters/super-type-sorter'; export * from './api-path-interceptor'; diff --git a/apps/red-ui/src/app/utils/sorters/status-sorter.ts b/apps/red-ui/src/app/utils/sorters/status-sorter.ts deleted file mode 100644 index 5d7a2b55d..000000000 --- a/apps/red-ui/src/app/utils/sorters/status-sorter.ts +++ /dev/null @@ -1,23 +0,0 @@ -type StatusSorterItem = { key?: string } | string; - -export const StatusSorter = { - ERROR: 0, - UNPROCESSED: 1, - REPROCESS: 5, - PROCESSING: 5, - OCR_PROCESSING: 7, - - UNASSIGNED: 10, - UNDER_REVIEW: 15, - UNDER_APPROVAL: 20, - APPROVED: 25, - byStatus: (a: StatusSorterItem, b: StatusSorterItem): number => { - if (typeof a !== typeof b) { - return; - } - - const x = typeof a === 'string' ? a : a.key; - const y = typeof b === 'string' ? b : b.key; - return StatusSorter[x] - StatusSorter[y]; - }, -}; diff --git a/apps/red-ui/src/app/utils/types.d.ts b/apps/red-ui/src/app/utils/types.d.ts index acc52b81e..9b37405ff 100644 --- a/apps/red-ui/src/app/utils/types.d.ts +++ b/apps/red-ui/src/app/utils/types.d.ts @@ -1,3 +1,3 @@ -import { FileStatus } from '@redaction/red-ui-http'; +import { DossierStatus, FileStatus } from '@red/domain'; -export type Color = FileStatus | DossierStatus.StatusEnum; +export type Color = FileStatus | DossierStatus | string; diff --git a/docker/common/nginx/nginx.conf b/docker/common/nginx/nginx.conf index 8673be753..e8e4015e6 100644 --- a/docker/common/nginx/nginx.conf +++ b/docker/common/nginx/nginx.conf @@ -3,7 +3,8 @@ server { listen 8080; proxy_hide_header WWW-Authenticate; port_in_redirect off; - + server_tokens off; + root /usr/share/nginx/html; # SSL stuff for cloudflare proxy-ing - ignores SSL certificate and uses SNI proxy_ssl_verify off; @@ -15,9 +16,8 @@ server { } location /ui/ { - alias /usr/share/nginx/html/ui/; proxy_hide_header WWW-Authenticate; - try_files $uri$args $uri$args/ $uri $uri/ /index.html =404; + try_files $uri$args $uri$args/ $uri $uri/ /ui/index.html =404; } client_max_body_size 0; @@ -31,3 +31,4 @@ server { gzip_types application/javascript text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; } + diff --git a/libs/common-ui b/libs/common-ui index defdc2af4..1df1b1ab8 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit defdc2af4e226ca8bb17df6c4d1cdd85130cfce5 +Subproject commit 1df1b1ab899e21093eb07c444acf90def933cb02 diff --git a/libs/red-domain/src/index.ts b/libs/red-domain/src/index.ts index d1c6ed49e..5365dabd6 100644 --- a/libs/red-domain/src/index.ts +++ b/libs/red-domain/src/index.ts @@ -1,6 +1,6 @@ export * from './lib/dossiers'; export * from './lib/search'; -export * from './lib/shared/types'; +export * from './lib/shared'; export * from './lib/dossier-attributes'; export * from './lib/users'; export * from './lib/pages'; @@ -8,3 +8,12 @@ export * from './lib/audit'; export * from './lib/notifications'; export * from './lib/dossier-templates'; export * from './lib/dictionaries'; +export * from './lib/redaction-log'; +export * from './lib/geometry'; +export * from './lib/file-attributes'; +export * from './lib/files'; +export * from './lib/downloads'; +export * from './lib/reports'; +export * from './lib/configuration'; +export * from './lib/signature'; +export * from './lib/legal-basis'; diff --git a/libs/red-domain/src/lib/audit/audit.model.ts b/libs/red-domain/src/lib/audit/audit.model.ts index 5879c9b03..0cad3389f 100644 --- a/libs/red-domain/src/lib/audit/audit.model.ts +++ b/libs/red-domain/src/lib/audit/audit.model.ts @@ -1,5 +1,5 @@ import { IListable } from '@iqser/common-ui'; -import { IAudit } from './audit.interface'; +import { IAudit } from './audit'; export class Audit implements IAudit, IListable { readonly recordId: string; diff --git a/libs/red-domain/src/lib/audit/audit.response.ts b/libs/red-domain/src/lib/audit/audit.response.ts index 88248547f..31ebc9543 100644 --- a/libs/red-domain/src/lib/audit/audit.response.ts +++ b/libs/red-domain/src/lib/audit/audit.response.ts @@ -1,4 +1,4 @@ -import { IAudit } from './audit.interface'; +import { IAudit } from './audit'; import { List } from '@iqser/common-ui'; export interface IAuditResponse { diff --git a/libs/red-domain/src/lib/audit/audit.interface.ts b/libs/red-domain/src/lib/audit/audit.ts similarity index 100% rename from libs/red-domain/src/lib/audit/audit.interface.ts rename to libs/red-domain/src/lib/audit/audit.ts diff --git a/libs/red-domain/src/lib/audit/category.ts b/libs/red-domain/src/lib/audit/category.ts new file mode 100644 index 000000000..d1df0f16a --- /dev/null +++ b/libs/red-domain/src/lib/audit/category.ts @@ -0,0 +1,4 @@ +export interface ICategory { + category?: string; + recordCount?: number; +} diff --git a/libs/red-domain/src/lib/audit/index.ts b/libs/red-domain/src/lib/audit/index.ts index b37fe2ee6..2680f3c23 100644 --- a/libs/red-domain/src/lib/audit/index.ts +++ b/libs/red-domain/src/lib/audit/index.ts @@ -1,4 +1,5 @@ export * from './audit.model'; -export * from './audit.interface'; +export * from './audit'; export * from './audit.response'; export * from './audit-search.request'; +export * from './category'; diff --git a/libs/red-domain/src/lib/configuration/general-configuration.ts b/libs/red-domain/src/lib/configuration/general-configuration.ts new file mode 100644 index 000000000..8f422c410 --- /dev/null +++ b/libs/red-domain/src/lib/configuration/general-configuration.ts @@ -0,0 +1,5 @@ +export interface IGeneralConfiguration { + auxiliaryName?: string; + displayName?: string; + forgotPasswordFunctionEnabled?: boolean; +} diff --git a/libs/red-domain/src/lib/configuration/index.ts b/libs/red-domain/src/lib/configuration/index.ts new file mode 100644 index 000000000..425d064c7 --- /dev/null +++ b/libs/red-domain/src/lib/configuration/index.ts @@ -0,0 +1,2 @@ +export * from './general-configuration'; +export * from './smtp-configuration'; diff --git a/libs/red-domain/src/lib/configuration/smtp-configuration.ts b/libs/red-domain/src/lib/configuration/smtp-configuration.ts new file mode 100644 index 000000000..4095e55f5 --- /dev/null +++ b/libs/red-domain/src/lib/configuration/smtp-configuration.ts @@ -0,0 +1,15 @@ +export interface ISmtpConfiguration { + auth?: boolean; + envelopeFrom?: string; + from?: string; + fromDisplayName?: string; + host?: string; + id?: string; + password?: string; + port?: number; + replyTo?: string; + replyToDisplayName?: string; + ssl?: boolean; + starttls?: boolean; + user?: string; +} diff --git a/libs/red-domain/src/lib/dictionaries/colors.ts b/libs/red-domain/src/lib/dictionaries/colors.ts new file mode 100644 index 000000000..8e7f10800 --- /dev/null +++ b/libs/red-domain/src/lib/dictionaries/colors.ts @@ -0,0 +1,12 @@ +export interface IColors { + analysisColor?: string; + defaultColor?: string; + dictionaryRequestColor?: string; + dossierTemplateId?: string; + manualRedactionColor?: string; + notRedacted?: string; + previewColor?: string; + requestAdd?: string; + requestRemove?: string; + updatedColor?: string; +} diff --git a/libs/red-domain/src/lib/dictionaries/dictionary.model.ts b/libs/red-domain/src/lib/dictionaries/dictionary.model.ts index 493353989..b26199467 100644 --- a/libs/red-domain/src/lib/dictionaries/dictionary.model.ts +++ b/libs/red-domain/src/lib/dictionaries/dictionary.model.ts @@ -1,5 +1,5 @@ import { IListable, List } from '@iqser/common-ui'; -import { IDictionary } from './dictionary.interface'; +import { IDictionary } from './dictionary'; export class Dictionary implements IDictionary, IListable { readonly addToDictionaryAction: boolean; diff --git a/libs/red-domain/src/lib/dictionaries/dictionary.interface.ts b/libs/red-domain/src/lib/dictionaries/dictionary.ts similarity index 100% rename from libs/red-domain/src/lib/dictionaries/dictionary.interface.ts rename to libs/red-domain/src/lib/dictionaries/dictionary.ts diff --git a/libs/red-domain/src/lib/dictionaries/index.ts b/libs/red-domain/src/lib/dictionaries/index.ts index 37eb4c2bd..83c5659e5 100644 --- a/libs/red-domain/src/lib/dictionaries/index.ts +++ b/libs/red-domain/src/lib/dictionaries/index.ts @@ -1,2 +1,4 @@ -export * from './dictionary.interface'; +export * from './colors'; +export * from './dictionary'; +export * from './update-dictionary'; export * from './dictionary.model'; diff --git a/libs/red-ui-http/src/lib/model/updateDictionary.ts b/libs/red-domain/src/lib/dictionaries/update-dictionary.ts similarity index 74% rename from libs/red-ui-http/src/lib/model/updateDictionary.ts rename to libs/red-domain/src/lib/dictionaries/update-dictionary.ts index 0240ad3e3..d5a57d135 100644 --- a/libs/red-ui-http/src/lib/model/updateDictionary.ts +++ b/libs/red-domain/src/lib/dictionaries/update-dictionary.ts @@ -1,19 +1,7 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - /** * Object containing information of type to be updated. */ -export interface UpdateDictionary { +export interface IUpdateDictionary { /** * If true the ui will add a action to add values to dictionary */ diff --git a/libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.model.ts b/libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.model.ts index e27c3b88c..552640799 100644 --- a/libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.model.ts +++ b/libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.model.ts @@ -1,5 +1,5 @@ import { IListable } from '@iqser/common-ui'; -import { IDossierAttributeConfig } from './dossier-attribute-config.interface'; +import { IDossierAttributeConfig } from './dossier-attribute-config'; import { DossierAttributeConfigType } from './types'; export class DossierAttributeConfig implements IDossierAttributeConfig, IListable { diff --git a/libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.interface.ts b/libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.ts similarity index 100% rename from libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.interface.ts rename to libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.ts diff --git a/libs/red-domain/src/lib/dossier-attributes/dossier-attribute.interface.ts b/libs/red-domain/src/lib/dossier-attributes/dossier-attribute.ts similarity index 100% rename from libs/red-domain/src/lib/dossier-attributes/dossier-attribute.interface.ts rename to libs/red-domain/src/lib/dossier-attributes/dossier-attribute.ts diff --git a/libs/red-domain/src/lib/dossier-attributes/index.ts b/libs/red-domain/src/lib/dossier-attributes/index.ts index d4927a3c0..f13a671ec 100644 --- a/libs/red-domain/src/lib/dossier-attributes/index.ts +++ b/libs/red-domain/src/lib/dossier-attributes/index.ts @@ -1,4 +1,4 @@ export * from './types'; -export * from './dossier-attribute-config.interface'; +export * from './dossier-attribute-config'; export * from './dossier-attribute-config.model'; -export * from './dossier-attribute.interface'; +export * from './dossier-attribute'; diff --git a/libs/red-domain/src/lib/dossier-attributes/types.ts b/libs/red-domain/src/lib/dossier-attributes/types.ts index 6edc61c07..475eb38ee 100644 --- a/libs/red-domain/src/lib/dossier-attributes/types.ts +++ b/libs/red-domain/src/lib/dossier-attributes/types.ts @@ -1,4 +1,4 @@ -import { IDossierAttributeConfig } from './dossier-attribute-config.interface'; +import { IDossierAttributeConfig } from './dossier-attribute-config'; export const DossierAttributeConfigTypes = { DATE: 'DATE', 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 88ac2fb1a..f47b5bed9 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,6 +1,6 @@ import { IListable, List } from '@iqser/common-ui'; -import { IDossierTemplate } from './dossier-template.interface'; -import { DownloadFileType } from '../shared/types'; +import { IDossierTemplate } from './dossier-template'; +import { DownloadFileType } from '../shared'; export class DossierTemplate implements IDossierTemplate, IListable { readonly createdBy: string; diff --git a/libs/red-domain/src/lib/dossier-templates/dossier-template.interface.ts b/libs/red-domain/src/lib/dossier-templates/dossier-template.ts similarity index 96% rename from libs/red-domain/src/lib/dossier-templates/dossier-template.interface.ts rename to libs/red-domain/src/lib/dossier-templates/dossier-template.ts index b5d1d8768..5dd184b39 100644 --- a/libs/red-domain/src/lib/dossier-templates/dossier-template.interface.ts +++ b/libs/red-domain/src/lib/dossier-templates/dossier-template.ts @@ -1,5 +1,5 @@ import { List } from '@iqser/common-ui'; -import { DownloadFileType } from '../shared/types'; +import { DownloadFileType } from '../shared'; export interface IDossierTemplate { /** diff --git a/libs/red-domain/src/lib/dossier-templates/index.ts b/libs/red-domain/src/lib/dossier-templates/index.ts index 526a46be7..24c0bba3f 100644 --- a/libs/red-domain/src/lib/dossier-templates/index.ts +++ b/libs/red-domain/src/lib/dossier-templates/index.ts @@ -1,2 +1,2 @@ -export * from './dossier-template.interface'; +export * from './dossier-template'; export * from './dossier-template.model'; diff --git a/libs/red-domain/src/lib/dossiers/dossier.model.ts b/libs/red-domain/src/lib/dossiers/dossier.model.ts index 3b9d90bf6..5afb12bbb 100644 --- a/libs/red-domain/src/lib/dossiers/dossier.model.ts +++ b/libs/red-domain/src/lib/dossiers/dossier.model.ts @@ -1,8 +1,8 @@ -import { File } from '@models/file/file'; +import { File } from '../files'; import { IListable, List } from '@iqser/common-ui'; -import { IDossier } from './dossier.interface'; +import { IDossier } from './dossier'; import { DossierStatus } from './types'; -import { DownloadFileType } from '../shared/types'; +import { DownloadFileType } from '../shared'; import { IDictionary } from '../dictionaries'; export class Dossier implements IDossier, IListable { diff --git a/libs/red-domain/src/lib/dossiers/dossier.request.ts b/libs/red-domain/src/lib/dossiers/dossier.request.ts index 3c62c1a45..1de6d997e 100644 --- a/libs/red-domain/src/lib/dossiers/dossier.request.ts +++ b/libs/red-domain/src/lib/dossiers/dossier.request.ts @@ -1,5 +1,5 @@ import { List } from '@iqser/common-ui'; -import { DownloadFileType } from '../shared/types'; +import { DownloadFileType } from '../shared'; /** * Object containing information about a dossier. diff --git a/libs/red-domain/src/lib/dossiers/dossier.interface.ts b/libs/red-domain/src/lib/dossiers/dossier.ts similarity index 92% rename from libs/red-domain/src/lib/dossiers/dossier.interface.ts rename to libs/red-domain/src/lib/dossiers/dossier.ts index 36092cd41..2a96e2e5d 100644 --- a/libs/red-domain/src/lib/dossiers/dossier.interface.ts +++ b/libs/red-domain/src/lib/dossiers/dossier.ts @@ -1,5 +1,5 @@ import { DossierStatus } from './types'; -import { DownloadFileType } from '../shared/types'; +import { DownloadFileType } from '../shared'; import { List } from '@iqser/common-ui'; export interface IDossier { diff --git a/libs/red-domain/src/lib/dossiers/index.ts b/libs/red-domain/src/lib/dossiers/index.ts index 315c41b16..5f42d97f7 100644 --- a/libs/red-domain/src/lib/dossiers/index.ts +++ b/libs/red-domain/src/lib/dossiers/index.ts @@ -1,4 +1,4 @@ -export * from './dossier.interface'; +export * from './dossier'; +export * from './dossier.request'; export * from './dossier.model'; export * from './types'; -export { IDossierRequest } from './dossier.request'; diff --git a/apps/red-ui/src/app/modules/upload-download/model/download-status.ts b/libs/red-domain/src/lib/downloads/download-status.model.ts similarity index 85% rename from apps/red-ui/src/app/modules/upload-download/model/download-status.ts rename to libs/red-domain/src/lib/downloads/download-status.model.ts index 495d59daf..fabdb5fa4 100644 --- a/apps/red-ui/src/app/modules/upload-download/model/download-status.ts +++ b/libs/red-domain/src/lib/downloads/download-status.model.ts @@ -1,21 +1,21 @@ -import { DownloadStatusType, IDownloadStatus } from '@redaction/red-ui-http'; import { IListable, List } from '@iqser/common-ui'; -import { DownloadFileType } from '@red/domain'; +import { DownloadStatusType, IDownloadStatus } from './download-status'; +import { DownloadFileType } from '../shared'; export class DownloadStatus implements IDownloadStatus, IListable { + readonly storageId: string; readonly creationDate?: string; readonly dossierId?: string; readonly downloadFileTypes?: List; readonly fileIds?: List; - readonly fileSize?: number; + readonly fileSize: number; readonly filename?: string; readonly lastDownload?: string; readonly mimeType?: string; readonly status?: DownloadStatusType; - readonly storageId?: string; readonly userId?: string; readonly size?: string; - inProgress: boolean; + inProgress = false; constructor(downloadStatus: IDownloadStatus) { this.creationDate = downloadStatus.creationDate; @@ -32,7 +32,7 @@ export class DownloadStatus implements IDownloadStatus, IListable { this.size = this._size; } - get id() { + get id(): string { return this.storageId; } @@ -40,7 +40,7 @@ export class DownloadStatus implements IDownloadStatus, IListable { return this.storageId; } - get isReady() { + get isReady(): boolean { return this.status === 'READY'; } diff --git a/libs/red-domain/src/lib/downloads/download-status.response.ts b/libs/red-domain/src/lib/downloads/download-status.response.ts new file mode 100644 index 000000000..0244b5ad5 --- /dev/null +++ b/libs/red-domain/src/lib/downloads/download-status.response.ts @@ -0,0 +1,5 @@ +import { IDownloadStatus } from './download-status'; + +export interface IDownloadStatusResponse { + downloadStatus?: IDownloadStatus[]; +} diff --git a/libs/red-ui-http/src/lib/model/downloadStatus.ts b/libs/red-domain/src/lib/downloads/download-status.ts similarity index 56% rename from libs/red-ui-http/src/lib/model/downloadStatus.ts rename to libs/red-domain/src/lib/downloads/download-status.ts index 9622665de..fc5b8f28a 100644 --- a/libs/red-ui-http/src/lib/model/downloadStatus.ts +++ b/libs/red-domain/src/lib/downloads/download-status.ts @@ -1,28 +1,17 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { List } from '../red-types'; -import { DownloadFileType } from '@red/domain'; +import { List } from '@iqser/common-ui'; +import { DownloadFileType } from '../shared'; export interface IDownloadStatus { readonly creationDate?: string; readonly dossierId?: string; readonly downloadFileTypes?: List; readonly fileIds?: List; - readonly fileSize?: number; + readonly fileSize: number; readonly filename?: string; readonly lastDownload?: string; readonly mimeType?: string; readonly status?: DownloadStatusType; - readonly storageId?: string; + readonly storageId: string; readonly userId?: string; } diff --git a/libs/red-domain/src/lib/downloads/download.response.ts b/libs/red-domain/src/lib/downloads/download.response.ts new file mode 100644 index 000000000..d627fe509 --- /dev/null +++ b/libs/red-domain/src/lib/downloads/download.response.ts @@ -0,0 +1,3 @@ +export interface IDownloadResponse { + readonly storageId?: string; +} diff --git a/libs/red-domain/src/lib/downloads/index.ts b/libs/red-domain/src/lib/downloads/index.ts new file mode 100644 index 000000000..ef09c02fd --- /dev/null +++ b/libs/red-domain/src/lib/downloads/index.ts @@ -0,0 +1,6 @@ +export * from './download.response'; +export * from './download-status'; +export * from './download-status.model'; +export * from './download-status.response'; +export * from './prepare-download.request'; +export * from './remove-download.request'; diff --git a/libs/red-domain/src/lib/downloads/prepare-download.request.ts b/libs/red-domain/src/lib/downloads/prepare-download.request.ts new file mode 100644 index 000000000..cade875c9 --- /dev/null +++ b/libs/red-domain/src/lib/downloads/prepare-download.request.ts @@ -0,0 +1,9 @@ +/** + * Object containing information on which file and report types should be included in the download. + */ +import { List } from '@iqser/common-ui'; + +export interface IPrepareDownloadRequest { + readonly dossierId?: string; + readonly fileIds?: List; +} diff --git a/libs/red-domain/src/lib/downloads/remove-download.request.ts b/libs/red-domain/src/lib/downloads/remove-download.request.ts new file mode 100644 index 000000000..bef3953de --- /dev/null +++ b/libs/red-domain/src/lib/downloads/remove-download.request.ts @@ -0,0 +1,5 @@ +import { List } from '@iqser/common-ui'; + +export interface IRemoveDownloadRequest { + storageIds: List; +} diff --git a/apps/red-ui/src/app/models/file/file-attribute-config.ts b/libs/red-domain/src/lib/file-attributes/file-attribute-config.model.ts similarity index 90% rename from apps/red-ui/src/app/models/file/file-attribute-config.ts rename to libs/red-domain/src/lib/file-attributes/file-attribute-config.model.ts index 1b61ac423..c7273264e 100644 --- a/apps/red-ui/src/app/models/file/file-attribute-config.ts +++ b/libs/red-domain/src/lib/file-attributes/file-attribute-config.model.ts @@ -1,11 +1,11 @@ -import { FileAttributeConfigType, IFileAttributeConfig } from '@redaction/red-ui-http'; import { IListable } from '@iqser/common-ui'; +import { FileAttributeConfigType, IFileAttributeConfig } from './file-attribute-config'; export class FileAttributeConfig implements IFileAttributeConfig, IListable { readonly id: string; readonly csvColumnHeader?: string; readonly editable?: boolean; - readonly label?: string; + readonly label: string; readonly placeholder?: string; readonly primaryAttribute?: boolean; readonly displayedInFileList?: boolean; diff --git a/libs/red-ui-http/src/lib/model/fileAttributeConfig.ts b/libs/red-domain/src/lib/file-attributes/file-attribute-config.ts similarity index 64% rename from libs/red-ui-http/src/lib/model/fileAttributeConfig.ts rename to libs/red-domain/src/lib/file-attributes/file-attribute-config.ts index b1ac8492b..2219fc90b 100644 --- a/libs/red-ui-http/src/lib/model/fileAttributeConfig.ts +++ b/libs/red-domain/src/lib/file-attributes/file-attribute-config.ts @@ -1,23 +1,11 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - export interface IFileAttributeConfig { + readonly id: string; + readonly label: string; readonly csvColumnHeader?: string; readonly displayedInFileList?: boolean; readonly dossierTemplateId?: string; readonly editable?: boolean; readonly filterable?: boolean; - readonly id: string; - readonly label?: string; readonly placeholder?: string; readonly primaryAttribute?: boolean; readonly type?: FileAttributeConfigType; diff --git a/libs/red-domain/src/lib/file-attributes/file-attributes-config.ts b/libs/red-domain/src/lib/file-attributes/file-attributes-config.ts new file mode 100644 index 000000000..e3363aebe --- /dev/null +++ b/libs/red-domain/src/lib/file-attributes/file-attributes-config.ts @@ -0,0 +1,7 @@ +import { IFileAttributeConfig } from './file-attribute-config'; + +export interface IFileAttributesConfig { + delimiter?: string; + fileAttributeConfigs?: IFileAttributeConfig[]; + filenameMappingColumnHeaderName?: string; +} diff --git a/libs/red-domain/src/lib/file-attributes/file-attributes.ts b/libs/red-domain/src/lib/file-attributes/file-attributes.ts new file mode 100644 index 000000000..713659bbc --- /dev/null +++ b/libs/red-domain/src/lib/file-attributes/file-attributes.ts @@ -0,0 +1,3 @@ +export interface FileAttributes { + attributeIdToValue?: Record; +} diff --git a/libs/red-domain/src/lib/file-attributes/index.ts b/libs/red-domain/src/lib/file-attributes/index.ts new file mode 100644 index 000000000..ee91c20a8 --- /dev/null +++ b/libs/red-domain/src/lib/file-attributes/index.ts @@ -0,0 +1,4 @@ +export * from './file-attribute-config'; +export * from './file-attribute-config.model'; +export * from './file-attributes'; +export * from './file-attributes-config'; diff --git a/libs/red-domain/src/lib/files/file-upload-result.ts b/libs/red-domain/src/lib/files/file-upload-result.ts new file mode 100644 index 000000000..ff9182102 --- /dev/null +++ b/libs/red-domain/src/lib/files/file-upload-result.ts @@ -0,0 +1,19 @@ +/** + * Object containing information about a successfully uploaded file. + */ +import { List } from '@iqser/common-ui'; + +export interface IFileUploadResult { + /** + * List of fileIds generated for uploaded file(s). + */ + fileIds?: List; + /** + * List processed file attributes, in case the upload contained a CSV. + */ + processedAttributes?: List; + /** + * List processed fileIds, in case the upload contained a CSV. + */ + processedFileIds?: List; +} diff --git a/apps/red-ui/src/app/models/file/file.ts b/libs/red-domain/src/lib/files/file.model.ts similarity index 92% rename from apps/red-ui/src/app/models/file/file.ts rename to libs/red-domain/src/lib/files/file.model.ts index 7b6577115..897c8f64c 100644 --- a/apps/red-ui/src/app/models/file/file.ts +++ b/libs/red-domain/src/lib/files/file.model.ts @@ -1,6 +1,8 @@ import { IListable, List } from '@iqser/common-ui'; -import { FileAttributes, FileAttributesConfig, FileStatus, FileStatuses, IFile } from '@redaction/red-ui-http'; -import { StatusSorter } from '@utils/sorters/status-sorter'; +import { StatusSorter } from '../shared'; +import { FileStatus, FileStatuses } from './types'; +import { IFile } from './file'; +import { FileAttributes, IFileAttributesConfig } from '../file-attributes'; const processingStatuses: List = [ FileStatuses.REPROCESS, @@ -43,10 +45,10 @@ export class File implements IFile, IListable { readonly excludedPages?: number[]; readonly hasSuggestions: boolean; - readonly primaryAttribute: string; - lastOpened: boolean; + readonly primaryAttribute?: string; + lastOpened = false; readonly statusSort: number; - readonly cacheIdentifier: string; + readonly cacheIdentifier?: string; readonly hintsOnly: boolean; readonly hasNone: boolean; readonly isUnassigned: boolean; @@ -61,7 +63,7 @@ export class File implements IFile, IListable { readonly isWorkable: boolean; readonly canBeOCRed: boolean; - constructor(file: IFile, readonly reviewerName: string, fileAttributesConfig?: FileAttributesConfig) { + constructor(file: IFile, readonly reviewerName: string, fileAttributesConfig?: IFileAttributesConfig) { this.added = file.added; this.allManualRedactionsApplied = !!file.allManualRedactionsApplied; this.analysisDuration = file.analysisDuration; @@ -97,7 +99,7 @@ export class File implements IFile, IListable { this.statusSort = StatusSorter[this.status]; if (this.lastUpdated && this.lastOCRTime) { - this.cacheIdentifier = btoa(this.lastUploaded + this.lastOCRTime); + this.cacheIdentifier = btoa((this.lastUploaded ?? '') + this.lastOCRTime); } this.hintsOnly = this.hasHints && !this.hasRedactions; this.hasNone = !this.hasRedactions && !this.hasHints && !this.hasSuggestions; diff --git a/libs/red-ui-http/src/lib/model/file.ts b/libs/red-domain/src/lib/files/file.ts similarity index 81% rename from libs/red-ui-http/src/lib/model/file.ts rename to libs/red-domain/src/lib/files/file.ts index edc6ecd8a..6b35bbea9 100644 --- a/libs/red-ui-http/src/lib/model/file.ts +++ b/libs/red-domain/src/lib/files/file.ts @@ -1,19 +1,9 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { FileAttributes } from './fileAttributes'; - /** * Object containing information on a specific file. */ +import { FileStatus } from './types'; +import { FileAttributes } from '../file-attributes'; + export interface IFile { /** * Date and time when the file was added to the system. @@ -149,21 +139,3 @@ export interface IFile { */ readonly uploader?: string; } - -export const FileStatuses = { - APPROVED: 'APPROVED', - DELETED: 'DELETED', - ERROR: 'ERROR', - EXCLUDED: 'EXCLUDED', - FULLREPROCESS: 'FULLREPROCESS', - INDEXING: 'INDEXING', - OCR_PROCESSING: 'OCR_PROCESSING', - PROCESSING: 'PROCESSING', - REPROCESS: 'REPROCESS', - UNASSIGNED: 'UNASSIGNED', - UNDER_APPROVAL: 'UNDER_APPROVAL', - UNDER_REVIEW: 'UNDER_REVIEW', - UNPROCESSED: 'UNPROCESSED', -} as const; - -export type FileStatus = keyof typeof FileStatuses; diff --git a/libs/red-domain/src/lib/files/index.ts b/libs/red-domain/src/lib/files/index.ts new file mode 100644 index 000000000..48d54df0c --- /dev/null +++ b/libs/red-domain/src/lib/files/index.ts @@ -0,0 +1,4 @@ +export * from './file'; +export * from './file.model'; +export * from './types'; +export * from './file-upload-result'; diff --git a/libs/red-domain/src/lib/files/types.ts b/libs/red-domain/src/lib/files/types.ts new file mode 100644 index 000000000..83f856bd4 --- /dev/null +++ b/libs/red-domain/src/lib/files/types.ts @@ -0,0 +1,17 @@ +export const FileStatuses = { + APPROVED: 'APPROVED', + DELETED: 'DELETED', + ERROR: 'ERROR', + EXCLUDED: 'EXCLUDED', + FULLREPROCESS: 'FULLREPROCESS', + INDEXING: 'INDEXING', + OCR_PROCESSING: 'OCR_PROCESSING', + PROCESSING: 'PROCESSING', + REPROCESS: 'REPROCESS', + UNASSIGNED: 'UNASSIGNED', + UNDER_APPROVAL: 'UNDER_APPROVAL', + UNDER_REVIEW: 'UNDER_REVIEW', + UNPROCESSED: 'UNPROCESSED', +} as const; + +export type FileStatus = keyof typeof FileStatuses; diff --git a/libs/red-domain/src/lib/geometry/cell-rectangle.ts b/libs/red-domain/src/lib/geometry/cell-rectangle.ts new file mode 100644 index 000000000..81ef6c36f --- /dev/null +++ b/libs/red-domain/src/lib/geometry/cell-rectangle.ts @@ -0,0 +1,7 @@ +import { IPoint } from './point'; + +export interface ICellRectangle { + height: number; + topLeft: IPoint; + width: number; +} diff --git a/libs/red-domain/src/lib/geometry/index.ts b/libs/red-domain/src/lib/geometry/index.ts new file mode 100644 index 000000000..85eb5f765 --- /dev/null +++ b/libs/red-domain/src/lib/geometry/index.ts @@ -0,0 +1,5 @@ +export * from './point'; +export * from './rectangle'; +export * from './cell-rectangle'; +export * from './section-rectangle'; +export * from './section-grid'; diff --git a/libs/red-domain/src/lib/geometry/point.ts b/libs/red-domain/src/lib/geometry/point.ts new file mode 100644 index 000000000..a22340cd5 --- /dev/null +++ b/libs/red-domain/src/lib/geometry/point.ts @@ -0,0 +1,4 @@ +export interface IPoint { + x: number; + y: number; +} diff --git a/libs/red-domain/src/lib/geometry/rectangle.ts b/libs/red-domain/src/lib/geometry/rectangle.ts new file mode 100644 index 000000000..4e8c4a0bc --- /dev/null +++ b/libs/red-domain/src/lib/geometry/rectangle.ts @@ -0,0 +1,5 @@ +import { ICellRectangle } from './cell-rectangle'; + +export interface IRectangle extends ICellRectangle { + page?: number; +} diff --git a/libs/red-domain/src/lib/geometry/section-grid.ts b/libs/red-domain/src/lib/geometry/section-grid.ts new file mode 100644 index 000000000..93d06e15f --- /dev/null +++ b/libs/red-domain/src/lib/geometry/section-grid.ts @@ -0,0 +1,6 @@ +import { ISectionRectangle } from './section-rectangle'; +import { List } from '@iqser/common-ui'; + +export interface ISectionGrid { + rectanglesPerPage: Record>; +} diff --git a/libs/red-domain/src/lib/geometry/section-rectangle.ts b/libs/red-domain/src/lib/geometry/section-rectangle.ts new file mode 100644 index 000000000..4e0307779 --- /dev/null +++ b/libs/red-domain/src/lib/geometry/section-rectangle.ts @@ -0,0 +1,8 @@ +import { ICellRectangle } from './cell-rectangle'; +import { List } from '@iqser/common-ui'; + +export interface ISectionRectangle extends ICellRectangle { + numberOfParts?: number; + part?: number; + tableCells?: List; +} diff --git a/libs/red-domain/src/lib/legal-basis/index.ts b/libs/red-domain/src/lib/legal-basis/index.ts new file mode 100644 index 000000000..93da6669b --- /dev/null +++ b/libs/red-domain/src/lib/legal-basis/index.ts @@ -0,0 +1,3 @@ +export * from './legal-basis-change.request'; +export * from './legal-basis'; +export * from './justification.model'; diff --git a/apps/red-ui/src/app/models/justification.model.ts b/libs/red-domain/src/lib/legal-basis/justification.model.ts similarity index 63% rename from apps/red-ui/src/app/models/justification.model.ts rename to libs/red-domain/src/lib/legal-basis/justification.model.ts index dc4a898b1..50fcfa71c 100644 --- a/apps/red-ui/src/app/models/justification.model.ts +++ b/libs/red-domain/src/lib/legal-basis/justification.model.ts @@ -1,19 +1,22 @@ -import { ILegalBasis } from '@redaction/red-ui-http'; import { IListable } from '@iqser/common-ui'; +import { ILegalBasis } from './legal-basis'; export class Justification implements ILegalBasis, IListable { - readonly id: string; readonly description?: string; - readonly name?: string; + readonly name: string; readonly reason?: string; - readonly searchKey: string; constructor(justification: ILegalBasis) { - this.id = justification.name; this.description = justification.description; this.name = justification.name; this.reason = justification.reason; + } - this.searchKey = this.name; + get id(): string { + return this.name; + } + + get searchKey(): string { + return this.name; } } diff --git a/libs/red-domain/src/lib/legal-basis/legal-basis-change.request.ts b/libs/red-domain/src/lib/legal-basis/legal-basis-change.request.ts new file mode 100644 index 000000000..e1d95b092 --- /dev/null +++ b/libs/red-domain/src/lib/legal-basis/legal-basis-change.request.ts @@ -0,0 +1,5 @@ +export interface ILegalBasisChangeRequest { + annotationId?: string; + comment?: string; + legalBasis?: string; +} diff --git a/libs/red-domain/src/lib/legal-basis/legal-basis.ts b/libs/red-domain/src/lib/legal-basis/legal-basis.ts new file mode 100644 index 000000000..3ec087e3a --- /dev/null +++ b/libs/red-domain/src/lib/legal-basis/legal-basis.ts @@ -0,0 +1,5 @@ +export interface ILegalBasis { + name: string; + description?: string; + reason?: string; +} diff --git a/libs/red-domain/src/lib/notifications/index.ts b/libs/red-domain/src/lib/notifications/index.ts index 5738aa93a..951f39beb 100644 --- a/libs/red-domain/src/lib/notifications/index.ts +++ b/libs/red-domain/src/lib/notifications/index.ts @@ -1,3 +1,3 @@ -export * from './notification.interface'; +export * from './notification'; export * from './notification.model'; export * from './types'; diff --git a/libs/red-domain/src/lib/notifications/notification-target.interface.ts b/libs/red-domain/src/lib/notifications/notification-target.ts similarity index 100% rename from libs/red-domain/src/lib/notifications/notification-target.interface.ts rename to libs/red-domain/src/lib/notifications/notification-target.ts diff --git a/libs/red-domain/src/lib/notifications/notification.model.ts b/libs/red-domain/src/lib/notifications/notification.model.ts index 5423f4563..e5e35502b 100644 --- a/libs/red-domain/src/lib/notifications/notification.model.ts +++ b/libs/red-domain/src/lib/notifications/notification.model.ts @@ -1,6 +1,6 @@ import { IListable } from '@iqser/common-ui'; -import { INotification } from './notification.interface'; -import { INotificationTarget } from './notification-target.interface'; +import { INotification } from './notification'; +import { INotificationTarget } from './notification-target'; export class Notification implements INotification, IListable { readonly creationDate: string; diff --git a/libs/red-domain/src/lib/notifications/notification.interface.ts b/libs/red-domain/src/lib/notifications/notification.ts similarity index 80% rename from libs/red-domain/src/lib/notifications/notification.interface.ts rename to libs/red-domain/src/lib/notifications/notification.ts index e65021bdf..f303b13c8 100644 --- a/libs/red-domain/src/lib/notifications/notification.interface.ts +++ b/libs/red-domain/src/lib/notifications/notification.ts @@ -1,4 +1,4 @@ -import { INotificationTarget } from './notification-target.interface'; +import { INotificationTarget } from './notification-target'; export interface INotification { creationDate: string; diff --git a/libs/red-domain/src/lib/redaction-log/add-redaction.request.ts b/libs/red-domain/src/lib/redaction-log/add-redaction.request.ts new file mode 100644 index 000000000..ca567f0e8 --- /dev/null +++ b/libs/red-domain/src/lib/redaction-log/add-redaction.request.ts @@ -0,0 +1,13 @@ +import { IRectangle } from '../geometry'; +import { List } from '@iqser/common-ui'; + +export interface IAddRedactionRequest { + addToDictionary?: boolean; + addToDossierDictionary?: boolean; + comment?: { text: string }; + legalBasis?: string; + positions?: List; + reason?: string; + type?: string; + value?: string; +} diff --git a/libs/red-domain/src/lib/redaction-log/approve-request.ts b/libs/red-domain/src/lib/redaction-log/approve-request.ts new file mode 100644 index 000000000..d816cee65 --- /dev/null +++ b/libs/red-domain/src/lib/redaction-log/approve-request.ts @@ -0,0 +1,3 @@ +export interface IApproveRequest { + addOrRemoveFromDictionary?: boolean; +} diff --git a/libs/red-domain/src/lib/redaction-log/change.ts b/libs/red-domain/src/lib/redaction-log/change.ts new file mode 100644 index 000000000..341b4cfb9 --- /dev/null +++ b/libs/red-domain/src/lib/redaction-log/change.ts @@ -0,0 +1,11 @@ +export interface IChange { + dateTime?: string; + type?: ChangeType; +} + +export const ChangeTypes = { + ADDED: 'ADDED', + CHANGED: 'CHANGED', + REMOVED: 'REMOVED', +} as const; +export type ChangeType = keyof typeof ChangeTypes; diff --git a/libs/red-domain/src/lib/redaction-log/comment.ts b/libs/red-domain/src/lib/redaction-log/comment.ts new file mode 100644 index 000000000..d2fb3a87e --- /dev/null +++ b/libs/red-domain/src/lib/redaction-log/comment.ts @@ -0,0 +1,9 @@ +export interface IComment { + id: string; + user: string; + date?: string; + text: string; + annotationId?: string; + fileId?: string; + softDeletedTime?: string; +} diff --git a/libs/red-domain/src/lib/redaction-log/image-recategorization.request.ts b/libs/red-domain/src/lib/redaction-log/image-recategorization.request.ts new file mode 100644 index 000000000..1870b00f5 --- /dev/null +++ b/libs/red-domain/src/lib/redaction-log/image-recategorization.request.ts @@ -0,0 +1,5 @@ +export interface IImageRecategorizationRequest { + annotationId?: string; + comment?: string; + type?: string; +} diff --git a/libs/red-domain/src/lib/redaction-log/index.ts b/libs/red-domain/src/lib/redaction-log/index.ts new file mode 100644 index 000000000..eef5f3805 --- /dev/null +++ b/libs/red-domain/src/lib/redaction-log/index.ts @@ -0,0 +1,11 @@ +export * from './types'; +export * from './change'; +export * from './comment'; +export * from './add-redaction.request'; +export * from './manual-redaction-entry'; +export * from './redaction-log-entry'; +export * from './redaction-log'; +export * from './remove-redaction.request'; +export * from './manual-add.response'; +export * from './approve-request'; +export * from './image-recategorization.request'; diff --git a/libs/red-domain/src/lib/redaction-log/manual-add.response.ts b/libs/red-domain/src/lib/redaction-log/manual-add.response.ts new file mode 100644 index 000000000..bf104fa27 --- /dev/null +++ b/libs/red-domain/src/lib/redaction-log/manual-add.response.ts @@ -0,0 +1,4 @@ +export interface IManualAddResponse { + annotationId?: string; + commentId?: number; +} diff --git a/libs/red-domain/src/lib/redaction-log/manual-redaction-entry.ts b/libs/red-domain/src/lib/redaction-log/manual-redaction-entry.ts new file mode 100644 index 000000000..45ae9f6c1 --- /dev/null +++ b/libs/red-domain/src/lib/redaction-log/manual-redaction-entry.ts @@ -0,0 +1,19 @@ +import { IRectangle } from '../geometry'; +import { LogEntryStatus } from './types'; + +export interface IManualRedactionEntry { + addToDictionary?: boolean; + addToDossierDictionary?: boolean; + annotationId?: string; + fileId?: string; + legalBasis?: string; + positions?: IRectangle[]; + processedDate?: string; + reason?: string; + requestDate?: string; + softDeletedTime?: string; + status?: LogEntryStatus; + type?: string; + user?: string; + value?: string; +} diff --git a/libs/red-domain/src/lib/redaction-log/redaction-log-entry.ts b/libs/red-domain/src/lib/redaction-log/redaction-log-entry.ts new file mode 100644 index 000000000..209fc808f --- /dev/null +++ b/libs/red-domain/src/lib/redaction-log/redaction-log-entry.ts @@ -0,0 +1,40 @@ +import { IChange } from './change'; +import { IComment } from './comment'; +import { IRectangle } from '../geometry'; +import { LogEntryEngine, LogEntryStatus, ManualRedactionType } from './types'; +import { List } from '@iqser/common-ui'; + +export interface IRedactionLogEntry { + changes?: IChange[]; + color?: List; + comments?: List; + dictionaryEntry?: boolean; + dossierDictionaryEntry?: boolean; + endOffset?: number; + engines?: List; + excluded?: boolean; + hint?: boolean; + id?: string; + image?: boolean; + imageHasTransparency?: boolean; + legalBasis?: string; + legalBasisChangeValue?: string; + manual?: boolean; + manualRedactionType?: ManualRedactionType; + manualRedactionUserId?: string; + matchedRule?: number; + positions?: List; + reason?: string; + recategorizationType?: string; + recommendation?: boolean; + redacted?: boolean; + reference?: List; + section?: string; + sectionNumber?: number; + startOffset?: number; + status?: LogEntryStatus; + textAfter?: string; + textBefore?: string; + type?: string; + value?: string; +} diff --git a/libs/red-domain/src/lib/redaction-log/redaction-log.ts b/libs/red-domain/src/lib/redaction-log/redaction-log.ts new file mode 100644 index 000000000..b5de4258e --- /dev/null +++ b/libs/red-domain/src/lib/redaction-log/redaction-log.ts @@ -0,0 +1,12 @@ +import { ILegalBasis } from '../legal-basis'; +import { IRedactionLogEntry } from './redaction-log-entry'; + +export interface IRedactionLog { + analysisVersion?: number; + dictionaryVersion?: number; + dossierDictionaryVersion?: number; + legalBasis?: ILegalBasis[]; + legalBasisVersion?: number; + redactionLogEntry?: IRedactionLogEntry[]; + rulesVersion?: number; +} diff --git a/libs/red-domain/src/lib/redaction-log/remove-redaction.request.ts b/libs/red-domain/src/lib/redaction-log/remove-redaction.request.ts new file mode 100644 index 000000000..40290994a --- /dev/null +++ b/libs/red-domain/src/lib/redaction-log/remove-redaction.request.ts @@ -0,0 +1,5 @@ +export interface IRemoveRedactionRequest { + annotationId?: string; + comment?: string; + removeFromDictionary?: boolean; +} diff --git a/libs/red-domain/src/lib/redaction-log/types.ts b/libs/red-domain/src/lib/redaction-log/types.ts new file mode 100644 index 000000000..1c7696051 --- /dev/null +++ b/libs/red-domain/src/lib/redaction-log/types.ts @@ -0,0 +1,23 @@ +export const LogEntryEngines = { + DICTIONARY: 'DICTIONARY', + NER: 'NER', + RULE: 'RULE', +}; +export type LogEntryEngine = keyof typeof LogEntryEngines; + +export const ManualRedactionTypes = { + ADD: 'ADD', + FORCE_REDACT: 'FORCE_REDACT', + LEGAL_BASIS_CHANGE: 'LEGAL_BASIS_CHANGE', + RECATEGORIZE: 'RECATEGORIZE', + REMOVE: 'REMOVE', +} as const; +export type ManualRedactionType = keyof typeof ManualRedactionTypes; + +export const LogEntryStatuses = { + APPROVED: 'APPROVED', + DECLINED: 'DECLINED', + REQUESTED: 'REQUESTED', +} as const; + +export type LogEntryStatus = keyof typeof LogEntryStatuses; diff --git a/libs/red-domain/src/lib/reports/index.ts b/libs/red-domain/src/lib/reports/index.ts new file mode 100644 index 000000000..7c1d66f17 --- /dev/null +++ b/libs/red-domain/src/lib/reports/index.ts @@ -0,0 +1,6 @@ +export * from './report-data'; +export * from './report-template'; +export * from './types'; +export * from './license-report.request'; +export * from './license-report'; +export * from './placeholders-response'; diff --git a/libs/red-domain/src/lib/reports/license-report.request.ts b/libs/red-domain/src/lib/reports/license-report.request.ts new file mode 100644 index 000000000..f12577f42 --- /dev/null +++ b/libs/red-domain/src/lib/reports/license-report.request.ts @@ -0,0 +1,8 @@ +import { List } from '@iqser/common-ui'; + +export interface ILicenseReportRequest { + dossierIds?: List; + endDate?: Date; + requestId?: string; + startDate?: Date; +} diff --git a/libs/red-domain/src/lib/reports/license-report.ts b/libs/red-domain/src/lib/reports/license-report.ts new file mode 100644 index 000000000..d0095cdca --- /dev/null +++ b/libs/red-domain/src/lib/reports/license-report.ts @@ -0,0 +1,16 @@ +import { IReportData } from './report-data'; + +export interface ILicenseReport { + data?: IReportData[]; + endDate?: Date; + limit?: number; + numberOfAnalyses?: number; + numberOfAnalyzedFiles?: number; + numberOfAnalyzedPages?: number; + numberOfDossiers?: number; + numberOfOcrFiles?: number; + numberOfOcrPages?: number; + offset?: number; + requestId?: string; + startDate?: Date; +} diff --git a/libs/red-domain/src/lib/reports/placeholders-response.ts b/libs/red-domain/src/lib/reports/placeholders-response.ts new file mode 100644 index 000000000..83d9812d9 --- /dev/null +++ b/libs/red-domain/src/lib/reports/placeholders-response.ts @@ -0,0 +1,8 @@ +/** + * Object containing available placeholders. + */ +export interface IPlaceholdersResponse { + dossierAttributePlaceholders?: Array; + fileAttributePlaceholders?: Array; + generalPlaceholders?: Array; +} diff --git a/libs/red-domain/src/lib/reports/report-data.ts b/libs/red-domain/src/lib/reports/report-data.ts new file mode 100644 index 000000000..3172a586c --- /dev/null +++ b/libs/red-domain/src/lib/reports/report-data.ts @@ -0,0 +1,13 @@ +import { ReportStatus } from './types'; + +export interface IReportData { + addedDate?: Date; + analysisCount?: number; + deletedDate?: Date; + dossier?: string; + fileName?: string; + lastUpdatedDate?: Date; + numberOfAnalyzedPages?: number; + numberOfOcrPages?: number; + status?: ReportStatus; +} diff --git a/libs/red-domain/src/lib/reports/report-template.ts b/libs/red-domain/src/lib/reports/report-template.ts new file mode 100644 index 000000000..815b31cc8 --- /dev/null +++ b/libs/red-domain/src/lib/reports/report-template.ts @@ -0,0 +1,9 @@ +export interface IReportTemplate { + activeByDefault?: boolean; + dossierTemplateId?: string; + fileName?: string; + multiFileReport?: boolean; + storageId?: string; + templateId?: string; + uploadDate?: string; +} diff --git a/libs/red-domain/src/lib/reports/types.ts b/libs/red-domain/src/lib/reports/types.ts new file mode 100644 index 000000000..c01f2da55 --- /dev/null +++ b/libs/red-domain/src/lib/reports/types.ts @@ -0,0 +1,15 @@ +export const ReportStatuses = { + APPROVED: 'APPROVED', + DELETED: 'DELETED', + ERROR: 'ERROR', + FULLREPROCESS: 'FULLREPROCESS', + OCR_PROCESSING: 'OCR_PROCESSING', + PROCESSING: 'PROCESSING', + REPROCESS: 'REPROCESS', + UNASSIGNED: 'UNASSIGNED', + UNDER_APPROVAL: 'UNDER_APPROVAL', + UNDER_REVIEW: 'UNDER_REVIEW', + UNPROCESSED: 'UNPROCESSED', +} as const; + +export type ReportStatus = keyof typeof ReportStatuses; diff --git a/apps/red-ui/src/app/models/default-color-key.model.ts b/libs/red-domain/src/lib/shared/default-color-type.ts similarity index 100% rename from apps/red-ui/src/app/models/default-color-key.model.ts rename to libs/red-domain/src/lib/shared/default-color-type.ts diff --git a/libs/red-domain/src/lib/shared/index.ts b/libs/red-domain/src/lib/shared/index.ts new file mode 100644 index 000000000..3da2cbc13 --- /dev/null +++ b/libs/red-domain/src/lib/shared/index.ts @@ -0,0 +1,6 @@ +export * from './sorters/status-sorter'; +export * from './types'; +export * from './rules'; +export * from './watermark'; +export * from './default-color-type'; +export * from './view-mode'; diff --git a/libs/red-domain/src/lib/shared/rules.ts b/libs/red-domain/src/lib/shared/rules.ts new file mode 100644 index 000000000..64a4f9550 --- /dev/null +++ b/libs/red-domain/src/lib/shared/rules.ts @@ -0,0 +1,13 @@ +/** + * Object containing a string of Drools rules. + */ +export interface IRules { + /** + * The DossierTemplate Id for these rules + */ + dossierTemplateId?: string; + /** + * The actual string of rules. + */ + rules?: string; +} diff --git a/libs/red-domain/src/lib/shared/sorters/status-sorter.ts b/libs/red-domain/src/lib/shared/sorters/status-sorter.ts new file mode 100644 index 000000000..fc6b88f52 --- /dev/null +++ b/libs/red-domain/src/lib/shared/sorters/status-sorter.ts @@ -0,0 +1,32 @@ +import { FileStatus } from '../../files'; + +type StatusSorterItem = { key: FileStatus } | FileStatus | string; +type Sorter = Record & { + byStatus: (a: T, b: T) => number; +}; + +export const StatusSorter: Sorter = { + ERROR: 0, + DELETED: 0, + FULLREPROCESS: 0, + EXCLUDED: 0, + INDEXING: 0, + UNPROCESSED: 1, + REPROCESS: 5, + PROCESSING: 5, + OCR_PROCESSING: 7, + + UNASSIGNED: 10, + UNDER_REVIEW: 15, + UNDER_APPROVAL: 20, + APPROVED: 25, + byStatus: (a: StatusSorterItem, b: StatusSorterItem): number => { + if (typeof a !== typeof b) { + throw TypeError('Used different types when calling StatusSorter.byStatus1'); + } + + const x = typeof a === 'string' ? (a as FileStatus) : a.key; + const y = typeof b === 'string' ? (b as FileStatus) : b.key; + return StatusSorter[x] - StatusSorter[y]; + }, +}; diff --git a/apps/red-ui/src/app/models/file/view-mode.ts b/libs/red-domain/src/lib/shared/view-mode.ts similarity index 100% rename from apps/red-ui/src/app/models/file/view-mode.ts rename to libs/red-domain/src/lib/shared/view-mode.ts diff --git a/libs/red-ui-http/src/lib/model/watermarkModel.ts b/libs/red-domain/src/lib/shared/watermark.ts similarity index 57% rename from libs/red-ui-http/src/lib/model/watermarkModel.ts rename to libs/red-domain/src/lib/shared/watermark.ts index 4d897973d..16f88f466 100644 --- a/libs/red-ui-http/src/lib/model/watermarkModel.ts +++ b/libs/red-domain/src/lib/shared/watermark.ts @@ -1,15 +1,3 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - export interface IWatermark { fontSize?: number; fontType?: string; diff --git a/libs/red-domain/src/lib/signature/digital-signature.request.ts b/libs/red-domain/src/lib/signature/digital-signature.request.ts new file mode 100644 index 000000000..d7d9fa618 --- /dev/null +++ b/libs/red-domain/src/lib/signature/digital-signature.request.ts @@ -0,0 +1,6 @@ +export interface IDigitalSignatureRequest { + certificateName?: string; + contactInfo?: string; + location?: string; + reason?: string; +} diff --git a/libs/red-domain/src/lib/signature/digital-signature.ts b/libs/red-domain/src/lib/signature/digital-signature.ts new file mode 100644 index 000000000..0b971ca70 --- /dev/null +++ b/libs/red-domain/src/lib/signature/digital-signature.ts @@ -0,0 +1,6 @@ +import { IDigitalSignatureRequest } from './digital-signature.request'; + +export interface IDigitalSignature extends IDigitalSignatureRequest { + base64EncodedPrivateKey?: string; + password?: string; +} diff --git a/libs/red-domain/src/lib/signature/index.ts b/libs/red-domain/src/lib/signature/index.ts new file mode 100644 index 000000000..f5a313484 --- /dev/null +++ b/libs/red-domain/src/lib/signature/index.ts @@ -0,0 +1,2 @@ +export * from './digital-signature.request'; +export * from './digital-signature'; diff --git a/libs/red-domain/src/lib/users/create-user.request.ts b/libs/red-domain/src/lib/users/create-user.request.ts new file mode 100644 index 000000000..8faaea329 --- /dev/null +++ b/libs/red-domain/src/lib/users/create-user.request.ts @@ -0,0 +1,20 @@ +import { List } from '@iqser/common-ui'; + +export interface ICreateUserRequest { + /** + * Email of user. + */ + email?: string; + /** + * First name of user. + */ + firstName?: string; + /** + * Last name of user. + */ + lastName?: string; + /** + * The list of RED_* roles. + */ + roles?: List; +} diff --git a/libs/red-domain/src/lib/users/index.ts b/libs/red-domain/src/lib/users/index.ts index 528be9585..1425c58fe 100644 --- a/libs/red-domain/src/lib/users/index.ts +++ b/libs/red-domain/src/lib/users/index.ts @@ -1,6 +1,8 @@ export * from './user.model'; -export * from './user.interface'; +export * from './user'; export * from './my-profile-update.request'; export * from './profile-update.request'; -export * from './profile.interface'; +export * from './profile'; export * from './types'; +export * from './create-user.request'; +export * from './reset-password.request'; diff --git a/libs/red-domain/src/lib/users/profile.interface.ts b/libs/red-domain/src/lib/users/profile.ts similarity index 100% rename from libs/red-domain/src/lib/users/profile.interface.ts rename to libs/red-domain/src/lib/users/profile.ts diff --git a/libs/red-domain/src/lib/users/reset-password.request.ts b/libs/red-domain/src/lib/users/reset-password.request.ts new file mode 100644 index 000000000..1222768c1 --- /dev/null +++ b/libs/red-domain/src/lib/users/reset-password.request.ts @@ -0,0 +1,4 @@ +export interface IResetPasswordRequest { + password?: string; + temporary?: boolean; +} diff --git a/libs/red-domain/src/lib/users/user.model.ts b/libs/red-domain/src/lib/users/user.model.ts index 743cfe8ec..e4c322bd1 100644 --- a/libs/red-domain/src/lib/users/user.model.ts +++ b/libs/red-domain/src/lib/users/user.model.ts @@ -1,6 +1,6 @@ import { IListable, List } from '@iqser/common-ui'; import { KeycloakProfile } from 'keycloak-js'; -import { IUser } from './user.interface'; +import { IUser } from './user'; export class User implements IUser, IListable { readonly email?: string; diff --git a/libs/red-domain/src/lib/users/user.interface.ts b/libs/red-domain/src/lib/users/user.ts similarity index 100% rename from libs/red-domain/src/lib/users/user.interface.ts rename to libs/red-domain/src/lib/users/user.ts diff --git a/libs/red-ui-http/.eslintrc.json b/libs/red-ui-http/.eslintrc.json deleted file mode 100644 index 4b905e040..000000000 --- a/libs/red-ui-http/.eslintrc.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts"], - "extends": ["plugin:@nrwl/nx/angular", "plugin:@angular-eslint/template/process-inline-templates"], - "parserOptions": { - "project": ["libs/red-ui-http/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": [ - "error", - { - "type": "attribute", - "prefix": "redaction", - "style": "camelCase" - } - ], - "@angular-eslint/component-selector": [ - "error", - { - "type": "element", - "prefix": "redaction", - "style": "kebab-case" - } - ], - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/explicit-member-accessibility": "off", - "@typescript-eslint/naming-convention": "off", - "no-control-regex": "off", - "max-len": "off" - }, - "plugins": ["@angular-eslint/eslint-plugin", "@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nrwl/nx/angular-template"], - "rules": {} - } - ] -} diff --git a/libs/red-ui-http/jest.config.js b/libs/red-ui-http/jest.config.js deleted file mode 100644 index d91499a36..000000000 --- a/libs/red-ui-http/jest.config.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - preset: '../../jest.preset.js', - setupFilesAfterEnv: ['/src/test-setup.ts'], - globals: { - 'ts-jest': { - stringifyContentPathRegex: '\\.(html|svg)$', - - tsconfig: '/tsconfig.spec.json' - } - }, - coverageDirectory: '../../coverage/libs/red-ui-http', - - displayName: 'red-ui-http', - snapshotSerializers: [ - 'jest-preset-angular/build/serializers/no-ng-attributes', - 'jest-preset-angular/build/serializers/ng-snapshot', - 'jest-preset-angular/build/serializers/html-comment' - ], - transform: { '^.+\\.(ts|js|html)$': 'jest-preset-angular' } -}; diff --git a/libs/red-ui-http/ng-package.json b/libs/red-ui-http/ng-package.json deleted file mode 100644 index f29047cf7..000000000 --- a/libs/red-ui-http/ng-package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", - "dest": "../../dist/libs/red-ui-http", - "lib": { - "entryFile": "src/index.ts" - } -} diff --git a/libs/red-ui-http/package.json b/libs/red-ui-http/package.json deleted file mode 100644 index fe8f1348b..000000000 --- a/libs/red-ui-http/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "@redaction/red-ui-http", - "version": "1.1", - "peerDependencies": { - "@angular/common": "^7.2.0", - "@angular/core": "^7.2.0" - } -} diff --git a/libs/red-ui-http/src/index.ts b/libs/red-ui-http/src/index.ts deleted file mode 100644 index 11aece60c..000000000 --- a/libs/red-ui-http/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './lib/index'; diff --git a/libs/red-ui-http/src/lib/index.ts b/libs/red-ui-http/src/lib/index.ts deleted file mode 100644 index 3ddad16a0..000000000 --- a/libs/red-ui-http/src/lib/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './model/models'; diff --git a/libs/red-ui-http/src/lib/model/addRedactionRequest.ts b/libs/red-ui-http/src/lib/model/addRedactionRequest.ts deleted file mode 100644 index c939814cc..000000000 --- a/libs/red-ui-http/src/lib/model/addRedactionRequest.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { Rectangle } from './rectangle'; - -export interface AddRedactionRequest { - addToDictionary?: boolean; - addToDossierDictionary?: boolean; - comment?: { text: string }; - legalBasis?: string; - positions?: Array; - reason?: string; - type?: string; - value?: string; -} diff --git a/libs/red-ui-http/src/lib/model/approveRequest.ts b/libs/red-ui-http/src/lib/model/approveRequest.ts deleted file mode 100644 index fc4f7ff49..000000000 --- a/libs/red-ui-http/src/lib/model/approveRequest.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface ApproveRequest { - addOrRemoveFromDictionary?: boolean; -} diff --git a/libs/red-ui-http/src/lib/model/categoryModel.ts b/libs/red-ui-http/src/lib/model/categoryModel.ts deleted file mode 100644 index 501052aa8..000000000 --- a/libs/red-ui-http/src/lib/model/categoryModel.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface CategoryModel { - category?: string; - recordCount?: number; -} diff --git a/libs/red-ui-http/src/lib/model/cellRectangle.ts b/libs/red-ui-http/src/lib/model/cellRectangle.ts deleted file mode 100644 index 791a61ce3..000000000 --- a/libs/red-ui-http/src/lib/model/cellRectangle.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { Point } from './point'; - -export interface CellRectangle { - height?: number; - topLeft?: Point; - width?: number; -} diff --git a/libs/red-ui-http/src/lib/model/change.ts b/libs/red-ui-http/src/lib/model/change.ts deleted file mode 100644 index 54d1ff263..000000000 --- a/libs/red-ui-http/src/lib/model/change.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface Change { - dateTime?: string; - type?: Change.TypeEnum; -} - -export namespace Change { - export type TypeEnum = 'ADDED' | 'CHANGED' | 'REMOVED'; - export const TypeEnum = { - ADDED: 'ADDED' as TypeEnum, - CHANGED: 'CHANGED' as TypeEnum, - REMOVED: 'REMOVED' as TypeEnum, - }; -} diff --git a/libs/red-ui-http/src/lib/model/colors.ts b/libs/red-ui-http/src/lib/model/colors.ts deleted file mode 100644 index de52b1baa..000000000 --- a/libs/red-ui-http/src/lib/model/colors.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface Colors { - analysisColor?: string; - defaultColor?: string; - dictionaryRequestColor?: string; - dossierTemplateId?: string; - manualRedactionColor?: string; - notRedacted?: string; - previewColor?: string; - requestAdd?: string; - requestRemove?: string; - updatedColor?: string; -} diff --git a/libs/red-ui-http/src/lib/model/comment.ts b/libs/red-ui-http/src/lib/model/comment.ts deleted file mode 100644 index 310cc2176..000000000 --- a/libs/red-ui-http/src/lib/model/comment.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface Comment { - annotationId?: string; - date?: string; - fileId?: string; - id?: number; - softDeletedTime?: string; - text?: string; - user?: string; -} diff --git a/libs/red-ui-http/src/lib/model/commentResponse.ts b/libs/red-ui-http/src/lib/model/commentResponse.ts deleted file mode 100644 index 041903ed9..000000000 --- a/libs/red-ui-http/src/lib/model/commentResponse.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface CommentResponse { - commentId?: string; -} diff --git a/libs/red-ui-http/src/lib/model/createUserRequest.ts b/libs/red-ui-http/src/lib/model/createUserRequest.ts deleted file mode 100644 index 43cf02da2..000000000 --- a/libs/red-ui-http/src/lib/model/createUserRequest.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface CreateUserRequest { - /** - * Email of user. - */ - email?: string; - /** - * First name of user. - */ - firstName?: string; - /** - * Last name of user. - */ - lastName?: string; - /** - * The list of RED_* roles. - */ - roles?: Array; -} diff --git a/libs/red-ui-http/src/lib/model/digitalSignature.ts b/libs/red-ui-http/src/lib/model/digitalSignature.ts deleted file mode 100644 index 31321fc50..000000000 --- a/libs/red-ui-http/src/lib/model/digitalSignature.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface DigitalSignature { - base64EncodedPrivateKey?: string; - certificateName?: string; - contactInfo?: string; - location?: string; - password?: string; - reason?: string; -} diff --git a/libs/red-ui-http/src/lib/model/digitalSignatureViewModel.ts b/libs/red-ui-http/src/lib/model/digitalSignatureViewModel.ts deleted file mode 100644 index f5e3110fb..000000000 --- a/libs/red-ui-http/src/lib/model/digitalSignatureViewModel.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface DigitalSignatureViewModel { - certificateName?: string; - contactInfo?: string; - location?: string; - reason?: string; -} diff --git a/libs/red-ui-http/src/lib/model/downloadResponse.ts b/libs/red-ui-http/src/lib/model/downloadResponse.ts deleted file mode 100644 index b875b7ac0..000000000 --- a/libs/red-ui-http/src/lib/model/downloadResponse.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface DownloadResponse { - readonly storageId?: string; -} diff --git a/libs/red-ui-http/src/lib/model/downloadStatusResponse.ts b/libs/red-ui-http/src/lib/model/downloadStatusResponse.ts deleted file mode 100644 index a35b3942d..000000000 --- a/libs/red-ui-http/src/lib/model/downloadStatusResponse.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { IDownloadStatus } from './downloadStatus'; - -export interface DownloadStatusResponse { - downloadStatus?: IDownloadStatus[]; -} diff --git a/libs/red-ui-http/src/lib/model/fileAttributes.ts b/libs/red-ui-http/src/lib/model/fileAttributes.ts deleted file mode 100644 index f54f234f4..000000000 --- a/libs/red-ui-http/src/lib/model/fileAttributes.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface FileAttributes { - attributeIdToValue?: any; -} diff --git a/libs/red-ui-http/src/lib/model/fileAttributesConfig.ts b/libs/red-ui-http/src/lib/model/fileAttributesConfig.ts deleted file mode 100644 index 00aefa3c5..000000000 --- a/libs/red-ui-http/src/lib/model/fileAttributesConfig.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { IFileAttributeConfig } from './fileAttributeConfig'; - -export interface FileAttributesConfig { - delimiter?: string; - fileAttributeConfigs?: Array; - filenameMappingColumnHeaderName?: string; -} diff --git a/libs/red-ui-http/src/lib/model/fileUploadResult.ts b/libs/red-ui-http/src/lib/model/fileUploadResult.ts deleted file mode 100644 index 770633614..000000000 --- a/libs/red-ui-http/src/lib/model/fileUploadResult.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -/** - * Object containing information about a successfully uploaded file. - */ -export interface FileUploadResult { - /** - * List of fileIds generated for uploaded file(s). - */ - fileIds?: Array; - /** - * List processed file attributes, in case the upload contained a CSV. - */ - processedAttributes?: Array; - /** - * List processed fileIds, in case the upload contained a CSV. - */ - processedFileIds?: Array; -} diff --git a/libs/red-ui-http/src/lib/model/forceRedactionRequest.ts b/libs/red-ui-http/src/lib/model/forceRedactionRequest.ts deleted file mode 100644 index 76de68146..000000000 --- a/libs/red-ui-http/src/lib/model/forceRedactionRequest.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface ForceRedactionRequest { - annotationId?: string; - comment?: string; - legalBasis?: string; -} diff --git a/libs/red-ui-http/src/lib/model/generalConfigurationModel.ts b/libs/red-ui-http/src/lib/model/generalConfigurationModel.ts deleted file mode 100644 index de1c46a8b..000000000 --- a/libs/red-ui-http/src/lib/model/generalConfigurationModel.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface GeneralConfigurationModel { - auxiliaryName?: string; - displayName?: string; - forgotPasswordFunctionEnabled?: boolean; -} diff --git a/libs/red-ui-http/src/lib/model/idRemoval.ts b/libs/red-ui-http/src/lib/model/idRemoval.ts deleted file mode 100644 index 6dd15c329..000000000 --- a/libs/red-ui-http/src/lib/model/idRemoval.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface IdRemoval { - annotationId?: string; - fileId?: string; - processedDate?: string; - removeFromDictionary?: boolean; - requestDate?: string; - softDeletedTime?: string; - status?: IdRemoval.StatusEnum; - user?: string; -} - -export namespace IdRemoval { - export type StatusEnum = 'APPROVED' | 'DECLINED' | 'REQUESTED'; - export const StatusEnum = { - APPROVED: 'APPROVED' as StatusEnum, - DECLINED: 'DECLINED' as StatusEnum, - REQUESTED: 'REQUESTED' as StatusEnum, - }; -} diff --git a/libs/red-ui-http/src/lib/model/imageRecategorizationRequest.ts b/libs/red-ui-http/src/lib/model/imageRecategorizationRequest.ts deleted file mode 100644 index 11931772e..000000000 --- a/libs/red-ui-http/src/lib/model/imageRecategorizationRequest.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface ImageRecategorizationRequest { - annotationId?: string; - comment?: string; - type?: string; -} diff --git a/libs/red-ui-http/src/lib/model/legalBasis.ts b/libs/red-ui-http/src/lib/model/legalBasis.ts deleted file mode 100644 index 4837ddc59..000000000 --- a/libs/red-ui-http/src/lib/model/legalBasis.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface ILegalBasis { - description?: string; - name?: string; - reason?: string; -} diff --git a/libs/red-ui-http/src/lib/model/legalBasisChangeRequest.ts b/libs/red-ui-http/src/lib/model/legalBasisChangeRequest.ts deleted file mode 100644 index 19b12d1f4..000000000 --- a/libs/red-ui-http/src/lib/model/legalBasisChangeRequest.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface LegalBasisChangeRequest { - annotationId?: string; - comment?: string; - legalBasis?: string; -} diff --git a/libs/red-ui-http/src/lib/model/licenseReport.ts b/libs/red-ui-http/src/lib/model/licenseReport.ts deleted file mode 100644 index 4a483e07e..000000000 --- a/libs/red-ui-http/src/lib/model/licenseReport.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { ReportData } from './reportData'; - -export interface LicenseReport { - data?: Array; - endDate?: Date; - limit?: number; - numberOfAnalyses?: number; - numberOfAnalyzedFiles?: number; - numberOfAnalyzedPages?: number; - numberOfDossiers?: number; - numberOfOcrFiles?: number; - numberOfOcrPages?: number; - offset?: number; - requestId?: string; - startDate?: Date; -} diff --git a/libs/red-ui-http/src/lib/model/licenseReportRequest.ts b/libs/red-ui-http/src/lib/model/licenseReportRequest.ts deleted file mode 100644 index 24f552f0c..000000000 --- a/libs/red-ui-http/src/lib/model/licenseReportRequest.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface LicenseReportRequest { - dossierIds?: Array; - endDate?: Date; - requestId?: string; - startDate?: Date; -} diff --git a/libs/red-ui-http/src/lib/model/manualAddResponse.ts b/libs/red-ui-http/src/lib/model/manualAddResponse.ts deleted file mode 100644 index a2fd87ab6..000000000 --- a/libs/red-ui-http/src/lib/model/manualAddResponse.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface ManualAddResponse { - annotationId?: string; - commentId?: number; -} diff --git a/libs/red-ui-http/src/lib/model/manualRedactionEntry.ts b/libs/red-ui-http/src/lib/model/manualRedactionEntry.ts deleted file mode 100644 index 2b20ce48e..000000000 --- a/libs/red-ui-http/src/lib/model/manualRedactionEntry.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { Rectangle } from './rectangle'; - -export interface ManualRedactionEntry { - addToDictionary?: boolean; - addToDossierDictionary?: boolean; - annotationId?: string; - fileId?: string; - legalBasis?: string; - positions?: Array; - processedDate?: string; - reason?: string; - requestDate?: string; - softDeletedTime?: string; - status?: ManualRedactionEntry.StatusEnum; - type?: string; - user?: string; - value?: string; -} - -export namespace ManualRedactionEntry { - export type StatusEnum = 'APPROVED' | 'DECLINED' | 'REQUESTED'; - export const StatusEnum = { - APPROVED: 'APPROVED' as StatusEnum, - DECLINED: 'DECLINED' as StatusEnum, - REQUESTED: 'REQUESTED' as StatusEnum, - }; -} diff --git a/libs/red-ui-http/src/lib/model/models.ts b/libs/red-ui-http/src/lib/model/models.ts deleted file mode 100644 index d2ce590e1..000000000 --- a/libs/red-ui-http/src/lib/model/models.ts +++ /dev/null @@ -1,47 +0,0 @@ -export * from './addRedactionRequest'; -export * from './approveRequest'; -export * from './categoryModel'; -export * from './cellRectangle'; -export * from './change'; -export * from './colors'; -export * from './comment'; -export * from './commentResponse'; -export * from './createUserRequest'; -export * from './digitalSignature'; -export * from './digitalSignatureViewModel'; -export * from './downloadResponse'; -export * from './downloadStatus'; -export * from './downloadStatusResponse'; -export * from './fileAttributeConfig'; -export * from './fileAttributes'; -export * from './fileAttributesConfig'; -export * from './file'; -export * from './fileUploadResult'; -export * from './forceRedactionRequest'; -export * from './generalConfigurationModel'; -export * from './idRemoval'; -export * from './imageRecategorizationRequest'; -export * from './legalBasis'; -export * from './legalBasisChangeRequest'; -export * from './legalBasis'; -export * from './licenseReport'; -export * from './licenseReportRequest'; -export * from './manualAddResponse'; -export * from './manualRedactionEntry'; -export * from './placeholdersResponse'; -export * from './point'; -export * from './prepareDownloadRequest'; -export * from './rectangle'; -export * from './redactionLog'; -export * from './redactionLogEntry'; -export * from './removeDownloadRequest'; -export * from './removeRedactionRequest'; -export * from './reportData'; -export * from './reportTemplate'; -export * from './resetPasswordRequest'; -export * from './rules'; -export * from './smtp-configuration'; -export * from './sectionGrid'; -export * from './sectionRectangle'; -export * from './updateDictionary'; -export * from './watermarkModel'; diff --git a/libs/red-ui-http/src/lib/model/placeholdersResponse.ts b/libs/red-ui-http/src/lib/model/placeholdersResponse.ts deleted file mode 100644 index a5fa97016..000000000 --- a/libs/red-ui-http/src/lib/model/placeholdersResponse.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -/** - * Object containing available placeholders. - */ -export interface PlaceholdersResponse { - dossierAttributePlaceholders?: Array; - fileAttributePlaceholders?: Array; - generalPlaceholders?: Array; -} diff --git a/libs/red-ui-http/src/lib/model/point.ts b/libs/red-ui-http/src/lib/model/point.ts deleted file mode 100644 index f04e7f73b..000000000 --- a/libs/red-ui-http/src/lib/model/point.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface Point { - x?: number; - y?: number; -} diff --git a/libs/red-ui-http/src/lib/model/prepareDownloadRequest.ts b/libs/red-ui-http/src/lib/model/prepareDownloadRequest.ts deleted file mode 100644 index 6fe625402..000000000 --- a/libs/red-ui-http/src/lib/model/prepareDownloadRequest.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -import { List } from '../red-types'; - -/** - * Object containing information on which file and report types should be included in the download. - */ -export interface PrepareDownloadRequest { - readonly dossierId?: string; - readonly fileIds?: List; -} diff --git a/libs/red-ui-http/src/lib/model/rectangle.ts b/libs/red-ui-http/src/lib/model/rectangle.ts deleted file mode 100644 index 8d319f2a1..000000000 --- a/libs/red-ui-http/src/lib/model/rectangle.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { Point } from './point'; - -export interface Rectangle { - height?: number; - page?: number; - topLeft?: Point; - width?: number; -} diff --git a/libs/red-ui-http/src/lib/model/redactionLog.ts b/libs/red-ui-http/src/lib/model/redactionLog.ts deleted file mode 100644 index 326b1f634..000000000 --- a/libs/red-ui-http/src/lib/model/redactionLog.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { ILegalBasis } from './legalBasis'; -import { RedactionLogEntry } from './redactionLogEntry'; - -export interface RedactionLog { - analysisVersion?: number; - dictionaryVersion?: number; - dossierDictionaryVersion?: number; - legalBasis?: Array; - legalBasisVersion?: number; - redactionLogEntry?: Array; - rulesVersion?: number; -} diff --git a/libs/red-ui-http/src/lib/model/redactionLogEntry.ts b/libs/red-ui-http/src/lib/model/redactionLogEntry.ts deleted file mode 100644 index dbed8eeac..000000000 --- a/libs/red-ui-http/src/lib/model/redactionLogEntry.ts +++ /dev/null @@ -1,73 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { Change } from './change'; -import { Comment } from './comment'; -import { Rectangle } from './rectangle'; - -export interface RedactionLogEntry { - changes?: Array; - color?: Array; - comments?: Array; - dictionaryEntry?: boolean; - dossierDictionaryEntry?: boolean; - endOffset?: number; - engines?: Array; - excluded?: boolean; - hint?: boolean; - id?: string; - image?: boolean; - imageHasTransparency?: boolean; - legalBasis?: string; - legalBasisChangeValue?: string; - manual?: boolean; - manualRedactionType?: ManualRedactionType; - manualRedactionUserId?: string; - matchedRule?: number; - positions?: Array; - reason?: string; - recategorizationType?: string; - recommendation?: boolean; - redacted?: boolean; - reference?: Array; - section?: string; - sectionNumber?: number; - startOffset?: number; - status?: LogEntryStatus; - textAfter?: string; - textBefore?: string; - type?: string; - value?: string; -} - -export const LogEntryEngines = { - DICTIONARY: 'DICTIONARY', - NER: 'NER', - RULE: 'RULE', -}; -export type LogEntryEngine = keyof typeof LogEntryEngines; - -export const ManualRedactionTypes = { - ADD: 'ADD', - FORCE_REDACT: 'FORCE_REDACT', - LEGAL_BASIS_CHANGE: 'LEGAL_BASIS_CHANGE', - RECATEGORIZE: 'RECATEGORIZE', - REMOVE: 'REMOVE', -} as const; -export type ManualRedactionType = keyof typeof ManualRedactionTypes; - -export const LogEntryStatuses = { - APPROVED: 'APPROVED', - DECLINED: 'DECLINED', - REQUESTED: 'REQUESTED', -} as const; - -export type LogEntryStatus = keyof typeof LogEntryStatuses; diff --git a/libs/red-ui-http/src/lib/model/removeDownloadRequest.ts b/libs/red-ui-http/src/lib/model/removeDownloadRequest.ts deleted file mode 100644 index db24606fc..000000000 --- a/libs/red-ui-http/src/lib/model/removeDownloadRequest.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface RemoveDownloadRequest { - storageIds?: Array; -} diff --git a/libs/red-ui-http/src/lib/model/removeRedactionRequest.ts b/libs/red-ui-http/src/lib/model/removeRedactionRequest.ts deleted file mode 100644 index 25ee3986a..000000000 --- a/libs/red-ui-http/src/lib/model/removeRedactionRequest.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface RemoveRedactionRequest { - annotationId?: string; - comment?: string; - removeFromDictionary?: boolean; -} diff --git a/libs/red-ui-http/src/lib/model/reportData.ts b/libs/red-ui-http/src/lib/model/reportData.ts deleted file mode 100644 index 1be0f479b..000000000 --- a/libs/red-ui-http/src/lib/model/reportData.ts +++ /dev/null @@ -1,52 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface ReportData { - addedDate?: Date; - analysisCount?: number; - deletedDate?: Date; - dossier?: string; - fileName?: string; - lastUpdatedDate?: Date; - numberOfAnalyzedPages?: number; - numberOfOcrPages?: number; - status?: ReportData.StatusEnum; -} - -export namespace ReportData { - export type StatusEnum = - | 'APPROVED' - | 'DELETED' - | 'ERROR' - | 'FULLREPROCESS' - | 'INDEXING' - | 'OCR_PROCESSING' - | 'PROCESSING' - | 'REPROCESS' - | 'UNASSIGNED' - | 'UNDER_APPROVAL' - | 'UNDER_REVIEW' - | 'UNPROCESSED'; - export const StatusEnum = { - APPROVED: 'APPROVED' as StatusEnum, - DELETED: 'DELETED' as StatusEnum, - ERROR: 'ERROR' as StatusEnum, - FULLREPROCESS: 'FULLREPROCESS' as StatusEnum, - OCR_PROCESSING: 'OCR_PROCESSING' as StatusEnum, - PROCESSING: 'PROCESSING' as StatusEnum, - REPROCESS: 'REPROCESS' as StatusEnum, - UNASSIGNED: 'UNASSIGNED' as StatusEnum, - UNDER_APPROVAL: 'UNDER_APPROVAL' as StatusEnum, - UNDER_REVIEW: 'UNDER_REVIEW' as StatusEnum, - UNPROCESSED: 'UNPROCESSED' as StatusEnum, - }; -} diff --git a/libs/red-ui-http/src/lib/model/reportTemplate.ts b/libs/red-ui-http/src/lib/model/reportTemplate.ts deleted file mode 100644 index 362155b99..000000000 --- a/libs/red-ui-http/src/lib/model/reportTemplate.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface ReportTemplate { - activeByDefault?: boolean; - dossierTemplateId?: string; - fileName?: string; - multiFileReport?: boolean; - storageId?: string; - templateId?: string; - uploadDate?: string; -} diff --git a/libs/red-ui-http/src/lib/model/resetPasswordRequest.ts b/libs/red-ui-http/src/lib/model/resetPasswordRequest.ts deleted file mode 100644 index 8ea0c5c97..000000000 --- a/libs/red-ui-http/src/lib/model/resetPasswordRequest.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface ResetPasswordRequest { - password?: string; - temporary?: boolean; -} diff --git a/libs/red-ui-http/src/lib/model/rules.ts b/libs/red-ui-http/src/lib/model/rules.ts deleted file mode 100644 index 95f0514da..000000000 --- a/libs/red-ui-http/src/lib/model/rules.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -/** - * Object containing a string of Drools rules. - */ -export interface Rules { - /** - * The DossierTemplate Id for these rules - */ - dossierTemplateId?: string; - /** - * The actual string of rules. - */ - rules?: string; -} diff --git a/libs/red-ui-http/src/lib/model/sectionGrid.ts b/libs/red-ui-http/src/lib/model/sectionGrid.ts deleted file mode 100644 index dc9f397d6..000000000 --- a/libs/red-ui-http/src/lib/model/sectionGrid.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { SectionRectangle } from './sectionRectangle'; - -export interface SectionGrid { - rectanglesPerPage?: { [key: string]: Array }; -} diff --git a/libs/red-ui-http/src/lib/model/sectionRectangle.ts b/libs/red-ui-http/src/lib/model/sectionRectangle.ts deleted file mode 100644 index a41abfe76..000000000 --- a/libs/red-ui-http/src/lib/model/sectionRectangle.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ -import { CellRectangle } from './cellRectangle'; -import { Point } from './point'; - -export interface SectionRectangle { - height?: number; - numberOfParts?: number; - part?: number; - tableCells?: Array; - topLeft?: Point; - width?: number; -} diff --git a/libs/red-ui-http/src/lib/model/smtp-configuration.ts b/libs/red-ui-http/src/lib/model/smtp-configuration.ts deleted file mode 100644 index cc2cf9a33..000000000 --- a/libs/red-ui-http/src/lib/model/smtp-configuration.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface SMTPConfiguration { - auth?: boolean; - envelopeFrom?: string; - from?: string; - fromDisplayName?: string; - host?: string; - id?: string; - password?: string; - port?: number; - replyTo?: string; - replyToDisplayName?: string; - ssl?: boolean; - starttls?: boolean; - user?: string; -} diff --git a/libs/red-ui-http/src/lib/red-types.ts b/libs/red-ui-http/src/lib/red-types.ts deleted file mode 100644 index 114f10ebc..000000000 --- a/libs/red-ui-http/src/lib/red-types.ts +++ /dev/null @@ -1 +0,0 @@ -export type List = readonly T[]; diff --git a/libs/red-ui-http/tsconfig.json b/libs/red-ui-http/tsconfig.json deleted file mode 100644 index 62ebbd946..000000000 --- a/libs/red-ui-http/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "files": [], - "include": [], - "references": [ - { - "path": "./tsconfig.lib.json" - }, - { - "path": "./tsconfig.spec.json" - } - ] -} diff --git a/libs/red-ui-http/tsconfig.lib.json b/libs/red-ui-http/tsconfig.lib.json deleted file mode 100644 index 6d38c126a..000000000 --- a/libs/red-ui-http/tsconfig.lib.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "target": "es2015", - "declaration": true, - "inlineSources": true, - "types": [], - "lib": ["dom", "es2018"] - }, - "angularCompilerOptions": { - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "enableResourceInlining": true - }, - "exclude": ["src/test-setup.ts", "**/*.spec.ts"], - "include": ["**/*.ts"] -} diff --git a/nx.json b/nx.json index ada799fd1..4d8d0e89b 100644 --- a/nx.json +++ b/nx.json @@ -30,9 +30,6 @@ }, "red-ui": { "tags": [] - }, - "red-ui-http": { - "tags": [] } }, "targetDependencies": { diff --git a/package.json b/package.json index 1ff16c34f..66d09bf81 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,15 @@ { "name": "redaction", - "version": "2.322.0", + "version": "2.332.0", "private": true, "license": "MIT", "scripts": { "build": "nx build", - "build-lint-all": "ng lint --project=red-ui-http --fix && ng lint --project=red-ui --fix && ng lint --project=common-ui --fix && ng build --project=red-ui --configuration production --base-href /ui/", + "build-lint-all": "ng lint --project=red-ui --fix && ng lint --project=common-ui --fix && ng build --project=red-ui --configuration production --base-href /ui/", "build-paligo-styles": "mkdir -p dist/paligo-styles && sass --load-path=. paligo-styles/style.scss > dist/paligo-styles/redacto-theme.css && cp -r libs/common-ui/src/assets/font dist/paligo-styles/fonts", "i18n:extract": "ngx-translate-extract --input ./apps/red-ui/src ./libs/common-ui/src --output apps/red-ui/src/assets/i18n/en.json --clean --sort --format namespaced-json && prettier apps/red-ui/src/assets/i18n/*.json --write", "postinstall": "ngcc --properties es2015 browser module main", - "lint": "ng lint --project=red-domain --fix && ng lint --project=red-ui-http --fix && ng lint --project=red-ui --fix && ng lint --project=common-ui --fix", + "lint": "ng lint --project=red-domain --fix && ng lint --project=red-ui --fix && ng lint --project=common-ui --fix", "nx": "nx", "start": "nx serve", "test": "nx test", @@ -19,7 +19,7 @@ }, "husky": { "hooks": { - "pre-commit": "pretty-quick --staged && ng lint --project=red-ui-http && ng lint --project=red-domain --fix && ng lint --project=red-ui --fix && ng lint --project=common-ui --fix" + "pre-commit": "pretty-quick --staged && ng lint --project=red-domain --fix && ng lint --project=red-ui --fix && ng lint --project=common-ui --fix" } }, "dependencies": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 84e8c2cd8..54069efe4 100644 Binary files a/paligo-theme.tar.gz and b/paligo-theme.tar.gz differ diff --git a/tsconfig.base.json b/tsconfig.base.json index 1c98f9731..6fc38e69f 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -24,7 +24,6 @@ "@iqser/common-ui": ["libs/common-ui/src/index.ts"], "@models/*": ["apps/red-ui/src/app/models/*"], "@redaction/red-cache": ["libs/red-cache/src/index.ts"], - "@redaction/red-ui-http": ["libs/red-ui-http/src/index.ts"], "@services/*": ["apps/red-ui/src/app/services/*"], "@shared/*": ["apps/red-ui/src/app/modules/shared/*"], "@state/*": ["apps/red-ui/src/app/state/*"],