move file to red-domain

This commit is contained in:
Dan Percic 2021-10-29 01:55:38 +03:00
parent a8f0e558e4
commit 3616d56a2e
48 changed files with 123 additions and 134 deletions

View File

@ -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[];

View File

@ -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',

View File

@ -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',

View File

@ -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'),

View File

@ -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';

View File

@ -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',

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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();

View File

@ -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',

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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<Dossier>
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);
}

View File

@ -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';

View File

@ -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<FileDataModel> {
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(

View File

@ -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';

View File

@ -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 && (<any> this.needsWorkInput).hasAnnotationComments;
return this.needsWorkInput instanceof File && (<any>this.needsWorkInput).hasAnnotationComments;
}
reanalysisRequired() {

View File

@ -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';

View File

@ -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<unknown> {
@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([])),
);
}
}

View File

@ -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'),

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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({

View File

@ -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';

View File

@ -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[]) {

View File

@ -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';

View File

@ -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];
},
};

View File

@ -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';

View File

@ -1,5 +1,5 @@
import { List } from '@iqser/common-ui';
import { DownloadFileType } from '../shared/types';
import { DownloadFileType } from '../shared';
export interface IDossierTemplate {
/**

View File

@ -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;

View File

@ -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 {

View File

@ -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 {

View File

@ -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.

View File

@ -1,4 +1,4 @@
export * from './dossier.interface';
export * from './dossier.request';
export * from './dossier.model';
export * from './types';
export { IDossierRequest } from './dossier.request';

View File

@ -1,3 +1,3 @@
export interface FileAttributes {
attributeIdToValue?: any;
attributeIdToValue?: Record<string, string>;
}

View File

@ -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<FileStatus> = [
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;

View File

@ -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;

View File

@ -0,0 +1,3 @@
export * from './file';
export * from './file.model';
export * from './types';

View File

@ -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;

View File

@ -0,0 +1,2 @@
export * from './sorters/status-sorter';
export * from './types';

View File

@ -0,0 +1,32 @@
import { FileStatus } from '../../files';
type StatusSorterItem = { key: FileStatus } | FileStatus | string;
type Sorter = Record<FileStatus, number> & {
byStatus: <T extends StatusSorterItem>(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];
},
};

View File

@ -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';