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 f22427fe1..a7e0a2cc1 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,9 +1,8 @@ -import { File } from './file'; +import { Dictionary, File, IRedactionLog, IRedactionLogEntry, IViewedPage, User } 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, IRedactionLog, IRedactionLogEntry, IViewedPage, User } from '@red/domain'; export class AnnotationData { visibleAnnotations: AnnotationWrapper[]; 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..cf8c08dc1 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 { 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 { 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', 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/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/document-info/document-info.component.ts b/apps/red-ui/src/app/modules/dossier/components/document-info/document-info.component.ts index cbb590c52..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 { IFileAttributesConfig } from '@red/domain'; +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'; 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/pdf-viewer/pdf-viewer.component.ts b/apps/red-ui/src/app/modules/dossier/components/pdf-viewer/pdf-viewer.component.ts index dabaaae01..2235fa103 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 { IManualRedactionEntry } from '@red/domain'; +import { File, IManualRedactionEntry } 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'; 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 cfa0994c9..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,7 +1,6 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; -import { IFile } from '@redaction/red-ui-http'; -import { Dossier, IFileAttributeConfig } from '@red/domain'; +import { Dossier, IFile, IFileAttributeConfig } from '@red/domain'; import { AppStateService } from '@state/app-state.service'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { FileAttributesService } from '@services/entity-services/file-attributes.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/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 f8fb2dd4b..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 '@red/domain'; @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 7ae4ce11a..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,10 +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 { IFileAttributeConfig } from '@red/domain'; -import { FileStatus, FileStatuses } 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'; @@ -21,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 61ac6540b..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,8 +11,7 @@ import { TemplateRef, ViewChild, } from '@angular/core'; -import { FileStatus } from '@redaction/red-ui-http'; -import { Dossier, DossierAttributeWithValue, IFileAttributeConfig } from '@red/domain'; +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'; @@ -21,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'; 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 fc89acb59..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'; @@ -38,7 +38,8 @@ import { DossiersService } from '@services/entity-services/dossiers.service'; }) export class DossiersListingScreenComponent extends ListingComponent - implements OnInit, AfterViewInit, OnDestroy, OnAttach, OnDetach { + implements OnInit, AfterViewInit, OnDestroy, OnAttach, OnDetach +{ readonly currentUser = this._userService.currentUser; readonly tableColumnConfigs = this._configService.tableConfig; readonly tableHeaderLabel = _('dossier-listing.table-header.title'); @@ -136,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..c1834bd87 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,12 +24,11 @@ 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 } 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'; @@ -41,7 +40,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/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/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 27a1bde5d..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', @@ -46,7 +45,7 @@ export class NeedsWorkBadgeComponent { } get hasAnnotationComments(): boolean { - return this.needsWorkInput instanceof File && ( this.needsWorkInput).hasAnnotationComments; + return this.needsWorkInput instanceof File && (this.needsWorkInput).hasAnnotationComments; } reanalysisRequired() { 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/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/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/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/permissions.service.ts b/apps/red-ui/src/app/services/permissions.service.ts index 66817f6b2..75e12021f 100644 --- a/apps/red-ui/src/app/services/permissions.service.ts +++ b/apps/red-ui/src/app/services/permissions.service.ts @@ -1,8 +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 { Dossier, IComment } from '@red/domain'; +import { Dossier, File, IComment } from '@red/domain'; import { DossiersService } from './entity-services/dossiers.service'; @Injectable({ 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..d58688e80 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,11 @@ import { Injectable } from '@angular/core'; -import { Colors, IFile } from '@redaction/red-ui-http'; +import { Colors } from '@redaction/red-ui-http'; 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 { Dictionary, Dossier, DossierTemplate, File, IDossier, IFile } 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'; 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/libs/red-domain/src/index.ts b/libs/red-domain/src/index.ts index d9288417a..1d5fcf837 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'; @@ -11,3 +11,4 @@ export * from './lib/dictionaries'; export * from './lib/redaction-log'; export * from './lib/geometry'; export * from './lib/file-attributes'; +export * from './lib/files'; diff --git a/libs/red-domain/src/lib/dossier-templates/dossier-template.interface.ts b/libs/red-domain/src/lib/dossier-templates/dossier-template.interface.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.interface.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/dossier-template.model.ts b/libs/red-domain/src/lib/dossier-templates/dossier-template.model.ts index 88ac2fb1a..021b7cea4 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 { DownloadFileType } from '../shared'; export class DossierTemplate implements IDossierTemplate, IListable { readonly createdBy: string; diff --git a/libs/red-domain/src/lib/dossiers/dossier.interface.ts b/libs/red-domain/src/lib/dossiers/dossier.interface.ts index 36092cd41..2a96e2e5d 100644 --- a/libs/red-domain/src/lib/dossiers/dossier.interface.ts +++ b/libs/red-domain/src/lib/dossiers/dossier.interface.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/dossier.model.ts b/libs/red-domain/src/lib/dossiers/dossier.model.ts index 3b9d90bf6..14559dfa4 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 { 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/index.ts b/libs/red-domain/src/lib/dossiers/index.ts index 315c41b16..f64bae501 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.request'; export * from './dossier.model'; export * from './types'; -export { IDossierRequest } from './dossier.request'; diff --git a/libs/red-domain/src/lib/file-attributes/file-attributes.ts b/libs/red-domain/src/lib/file-attributes/file-attributes.ts index 6ec3bb0ab..713659bbc 100644 --- a/libs/red-domain/src/lib/file-attributes/file-attributes.ts +++ b/libs/red-domain/src/lib/file-attributes/file-attributes.ts @@ -1,3 +1,3 @@ export interface FileAttributes { - attributeIdToValue?: any; + attributeIdToValue?: Record; } diff --git a/apps/red-ui/src/app/models/file/file.ts b/libs/red-domain/src/lib/files/file.model.ts similarity index 93% rename from apps/red-ui/src/app/models/file/file.ts rename to libs/red-domain/src/lib/files/file.model.ts index 14747f09b..897c8f64c 100644 --- a/apps/red-ui/src/app/models/file/file.ts +++ b/libs/red-domain/src/lib/files/file.model.ts @@ -1,7 +1,8 @@ import { IListable, List } from '@iqser/common-ui'; -import { FileStatus, FileStatuses, IFile } from '@redaction/red-ui-http'; -import { FileAttributes, IFileAttributesConfig } from '@red/domain'; -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, @@ -44,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; @@ -98,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 87% rename from libs/red-ui-http/src/lib/model/file.ts rename to libs/red-domain/src/lib/files/file.ts index 4aa456a35..6b35bbea9 100644 --- a/libs/red-ui-http/src/lib/model/file.ts +++ b/libs/red-domain/src/lib/files/file.ts @@ -1,8 +1,9 @@ -import { FileAttributes } from '@red/domain'; - /** * 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. @@ -138,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..500414c3d --- /dev/null +++ b/libs/red-domain/src/lib/files/index.ts @@ -0,0 +1,3 @@ +export * from './file'; +export * from './file.model'; +export * from './types'; 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/shared/index.ts b/libs/red-domain/src/lib/shared/index.ts new file mode 100644 index 000000000..7b1e19669 --- /dev/null +++ b/libs/red-domain/src/lib/shared/index.ts @@ -0,0 +1,2 @@ +export * from './sorters/status-sorter'; +export * from './types'; 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/libs/red-ui-http/src/lib/model/models.ts b/libs/red-ui-http/src/lib/model/models.ts index 5a3459b05..1a765c1c5 100644 --- a/libs/red-ui-http/src/lib/model/models.ts +++ b/libs/red-ui-http/src/lib/model/models.ts @@ -7,10 +7,6 @@ export * from './digitalSignatureViewModel'; export * from './downloadResponse'; export * from './downloadStatus'; export * from './downloadStatusResponse'; -export * from '../../../../red-domain/src/lib/file-attributes/file-attribute-config'; -export * from '../../../../red-domain/src/lib/file-attributes/file-attributes'; -export * from '../../../../red-domain/src/lib/file-attributes/file-attributes-config'; -export * from './file'; export * from './fileUploadResult'; export * from './generalConfigurationModel'; export * from './idRemoval';