move file to red-domain
This commit is contained in:
parent
a8f0e558e4
commit
3616d56a2e
@ -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[];
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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'),
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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() {
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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([])),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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'),
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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({
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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[]) {
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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];
|
||||
},
|
||||
};
|
||||
@ -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';
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { List } from '@iqser/common-ui';
|
||||
import { DownloadFileType } from '../shared/types';
|
||||
import { DownloadFileType } from '../shared';
|
||||
|
||||
export interface IDossierTemplate {
|
||||
/**
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
export * from './dossier.interface';
|
||||
export * from './dossier.request';
|
||||
export * from './dossier.model';
|
||||
export * from './types';
|
||||
export { IDossierRequest } from './dossier.request';
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
export interface FileAttributes {
|
||||
attributeIdToValue?: any;
|
||||
attributeIdToValue?: Record<string, string>;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
@ -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;
|
||||
3
libs/red-domain/src/lib/files/index.ts
Normal file
3
libs/red-domain/src/lib/files/index.ts
Normal file
@ -0,0 +1,3 @@
|
||||
export * from './file';
|
||||
export * from './file.model';
|
||||
export * from './types';
|
||||
17
libs/red-domain/src/lib/files/types.ts
Normal file
17
libs/red-domain/src/lib/files/types.ts
Normal 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;
|
||||
2
libs/red-domain/src/lib/shared/index.ts
Normal file
2
libs/red-domain/src/lib/shared/index.ts
Normal file
@ -0,0 +1,2 @@
|
||||
export * from './sorters/status-sorter';
|
||||
export * from './types';
|
||||
32
libs/red-domain/src/lib/shared/sorters/status-sorter.ts
Normal file
32
libs/red-domain/src/lib/shared/sorters/status-sorter.ts
Normal 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];
|
||||
},
|
||||
};
|
||||
@ -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';
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user