move file attributes to red-domain
This commit is contained in:
parent
e73d437c2f
commit
ccbaa8abad
@ -1,5 +1,6 @@
|
||||
import { IListable, List } from '@iqser/common-ui';
|
||||
import { FileAttributes, FileAttributesConfig, FileStatus, FileStatuses, IFile } from '@redaction/red-ui-http';
|
||||
import { FileStatus, FileStatuses, IFile } from '@redaction/red-ui-http';
|
||||
import { FileAttributes, IFileAttributesConfig } from '@red/domain';
|
||||
import { StatusSorter } from '@utils/sorters/status-sorter';
|
||||
|
||||
const processingStatuses: List<FileStatus> = [
|
||||
@ -61,7 +62,7 @@ export class File implements IFile, IListable {
|
||||
readonly isWorkable: boolean;
|
||||
readonly canBeOCRed: boolean;
|
||||
|
||||
constructor(file: IFile, readonly reviewerName: string, fileAttributesConfig?: FileAttributesConfig) {
|
||||
constructor(file: IFile, readonly reviewerName: string, fileAttributesConfig?: IFileAttributesConfig) {
|
||||
this.added = file.added;
|
||||
this.allManualRedactionsApplied = !!file.allManualRedactionsApplied;
|
||||
this.analysisDuration = file.analysisDuration;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { Component, Inject } from '@angular/core';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { FileAttributeConfigTypes, IFileAttributeConfig } from '@redaction/red-ui-http';
|
||||
import { FileAttributeConfigTypes, IFileAttributeConfig } from '@red/domain';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { fileAttributeTypesTranslations } from '../../translations/file-attribute-types-translations';
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { Component, Inject } from '@angular/core';
|
||||
import { IFileAttributeConfig } from '@redaction/red-ui-http';
|
||||
import { IFileAttributeConfig } from '@red/domain';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
|
||||
|
||||
@ -2,12 +2,11 @@ import { Component, Inject, Injector } from '@angular/core';
|
||||
import { AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import * as Papa from 'papaparse';
|
||||
import { FileAttributeConfigType, FileAttributeConfigTypes, FileAttributesConfig } from '@redaction/red-ui-http';
|
||||
import { Observable } from 'rxjs';
|
||||
import { map, startWith } from 'rxjs/operators';
|
||||
import { DefaultListingServices, IListable, ListingComponent, TableColumnConfig, Toaster } from '@iqser/common-ui';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { FileAttributeConfig } from '@models/file/file-attribute-config';
|
||||
import { FileAttributeConfig, FileAttributeConfigType, FileAttributeConfigTypes, IFileAttributesConfig } from '@red/domain';
|
||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||
|
||||
export interface Field extends IListable {
|
||||
@ -48,7 +47,7 @@ export class FileAttributesCsvImportDialogComponent extends ListingComponent<Fie
|
||||
readonly data: {
|
||||
readonly csv: File;
|
||||
readonly dossierTemplateId: string;
|
||||
readonly existingConfiguration: FileAttributesConfig;
|
||||
readonly existingConfiguration: IFileAttributesConfig;
|
||||
},
|
||||
) {
|
||||
super(_injector);
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, Injector, OnDestroy, OnInit, ViewChild } from '@angular/core';
|
||||
import { FileAttributesConfig, IFileAttributeConfig } from '@redaction/red-ui-http';
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
@ -14,7 +13,7 @@ import {
|
||||
import { fileAttributeTypesTranslations } from '../../translations/file-attribute-types-translations';
|
||||
import { UserService } from '@services/user.service';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { FileAttributeConfig } from '@models/file/file-attribute-config';
|
||||
import { FileAttributeConfig, IFileAttributeConfig, IFileAttributesConfig } from '@red/domain';
|
||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
|
||||
|
||||
@ -47,7 +46,7 @@ export class FileAttributesListingScreenComponent extends ListingComponent<FileA
|
||||
rightIconTooltip: _('file-attributes-listing.table-col-names.primary-info-tooltip'),
|
||||
},
|
||||
];
|
||||
private _existingConfiguration: FileAttributesConfig;
|
||||
private _existingConfiguration: IFileAttributesConfig;
|
||||
@ViewChild('fileInput') private _fileInput: ElementRef;
|
||||
|
||||
constructor(
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
||||
import { FileAttributesConfig } from '@redaction/red-ui-http';
|
||||
import { IFileAttributesConfig } from '@red/domain';
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { DossiersDialogService } from '../../services/dossiers-dialog.service';
|
||||
import { AutoUnsubscribe } from '@iqser/common-ui';
|
||||
@ -17,7 +17,7 @@ export class DocumentInfoComponent extends AutoUnsubscribe implements OnInit {
|
||||
@Input() file: File;
|
||||
@Output() readonly closeDocumentInfoView = new EventEmitter();
|
||||
|
||||
fileAttributesConfig: FileAttributesConfig;
|
||||
fileAttributesConfig: IFileAttributesConfig;
|
||||
|
||||
constructor(
|
||||
private readonly _appStateService: AppStateService,
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { Component, Inject, OnInit } from '@angular/core';
|
||||
import { FormBuilder, FormGroup } from '@angular/forms';
|
||||
import { IFile, IFileAttributeConfig } from '@redaction/red-ui-http';
|
||||
import { IFile } from '@redaction/red-ui-http';
|
||||
import { Dossier, IFileAttributeConfig } from '@red/domain';
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { Dossier } from '@red/domain';
|
||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||
import { DossiersService } from '@services/entity-services/dossiers.service';
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
|
||||
import { File } from '@models/file/file';
|
||||
import { Required } from '@iqser/common-ui';
|
||||
import { IFileAttributeConfig } from '@redaction/red-ui-http';
|
||||
import { IFileAttributeConfig } from '@red/domain';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-table-item',
|
||||
|
||||
@ -12,7 +12,8 @@ import {
|
||||
} from '@iqser/common-ui';
|
||||
import { File } from '@models/file/file';
|
||||
import { fileStatusTranslations } from '../../translations/file-status-translations';
|
||||
import { FileStatus, FileStatuses, IFileAttributeConfig } from '@redaction/red-ui-http';
|
||||
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';
|
||||
|
||||
@ -11,7 +11,8 @@ import {
|
||||
TemplateRef,
|
||||
ViewChild,
|
||||
} from '@angular/core';
|
||||
import { FileStatus, IFileAttributeConfig } from '@redaction/red-ui-http';
|
||||
import { FileStatus } from '@redaction/red-ui-http';
|
||||
import { Dossier, DossierAttributeWithValue, 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';
|
||||
@ -45,7 +46,6 @@ import { DossierAttributesService } from '@shared/services/controller-wrappers/d
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { RouterHistoryService } from '@services/router-history.service';
|
||||
import { Dossier, DossierAttributeWithValue } from '@red/domain';
|
||||
import { Router } from '@angular/router';
|
||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||
import { ConfigService as AppConfigService } from '@services/config.service';
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
import { EntitiesService, List, RequiredParam, Validate } from '@iqser/common-ui';
|
||||
import { FileAttributes, FileAttributesConfig, IFileAttributeConfig } from '@redaction/red-ui-http';
|
||||
import { Injectable, Injector } from '@angular/core';
|
||||
import { BehaviorSubject, Observable, of } from 'rxjs';
|
||||
import { catchError, map, tap } from 'rxjs/operators';
|
||||
import { FileAttributeConfig } from '@models/file/file-attribute-config';
|
||||
import { FileAttributeConfig, FileAttributes, IFileAttributeConfig, IFileAttributesConfig } from '@red/domain';
|
||||
|
||||
type FileAttributesConfigMap = Readonly<Record<string, FileAttributesConfig>>;
|
||||
type FileAttributesConfigMap = Readonly<Record<string, IFileAttributesConfig>>;
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
@ -25,12 +24,12 @@ export class FileAttributesService extends EntitiesService<FileAttributeConfig,
|
||||
* Get the file attributes that can be used at importing csv.
|
||||
*/
|
||||
@Validate()
|
||||
getFileAttributesConfig(@RequiredParam() dossierTemplateId: string, fetch = true): Observable<FileAttributesConfig> {
|
||||
getFileAttributesConfig(@RequiredParam() dossierTemplateId: string, fetch = true): Observable<IFileAttributesConfig> {
|
||||
if (!fetch) {
|
||||
return this._fileAttributesConfig$.pipe(map(entities => entities[dossierTemplateId]));
|
||||
}
|
||||
|
||||
const request$ = this._getOne<FileAttributesConfig>(['config', dossierTemplateId]);
|
||||
const request$ = this._getOne<IFileAttributesConfig>(['config', dossierTemplateId]);
|
||||
return request$.pipe(
|
||||
tap(entities =>
|
||||
this._fileAttributesConfig$.next({
|
||||
@ -42,7 +41,7 @@ export class FileAttributesService extends EntitiesService<FileAttributeConfig,
|
||||
);
|
||||
}
|
||||
|
||||
getFileAttributeConfig(dossierTemplateId: string): FileAttributesConfig | undefined {
|
||||
getFileAttributeConfig(dossierTemplateId: string): IFileAttributesConfig | undefined {
|
||||
return this._fileAttributesConfig$.value[dossierTemplateId];
|
||||
}
|
||||
|
||||
@ -59,7 +58,7 @@ export class FileAttributesService extends EntitiesService<FileAttributeConfig,
|
||||
* Set file attributes base configuration and a list of file attributes,
|
||||
*/
|
||||
@Validate()
|
||||
setFileAttributeConfig(@RequiredParam() body: FileAttributesConfig, @RequiredParam() dossierTemplateId: string) {
|
||||
setFileAttributeConfig(@RequiredParam() body: IFileAttributesConfig, @RequiredParam() dossierTemplateId: string) {
|
||||
const url = `${this._defaultModelPath}/config/baseConfig/${dossierTemplateId}`;
|
||||
return this._put<unknown>(body, url);
|
||||
}
|
||||
|
||||
@ -10,3 +10,4 @@ export * from './lib/dossier-templates';
|
||||
export * from './lib/dictionaries';
|
||||
export * from './lib/redaction-log';
|
||||
export * from './lib/geometry';
|
||||
export * from './lib/file-attributes';
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
import { FileAttributeConfigType, IFileAttributeConfig } from '@redaction/red-ui-http';
|
||||
import { IListable } from '@iqser/common-ui';
|
||||
import { FileAttributeConfigType, IFileAttributeConfig } from './file-attribute-config';
|
||||
|
||||
export class FileAttributeConfig implements IFileAttributeConfig, IListable {
|
||||
readonly id: string;
|
||||
readonly csvColumnHeader?: string;
|
||||
readonly editable?: boolean;
|
||||
readonly label?: string;
|
||||
readonly label: string;
|
||||
readonly placeholder?: string;
|
||||
readonly primaryAttribute?: boolean;
|
||||
readonly displayedInFileList?: boolean;
|
||||
@ -0,0 +1,19 @@
|
||||
export interface IFileAttributeConfig {
|
||||
readonly id: string;
|
||||
readonly label: string;
|
||||
readonly csvColumnHeader?: string;
|
||||
readonly displayedInFileList?: boolean;
|
||||
readonly dossierTemplateId?: string;
|
||||
readonly editable?: boolean;
|
||||
readonly filterable?: boolean;
|
||||
readonly placeholder?: string;
|
||||
readonly primaryAttribute?: boolean;
|
||||
readonly type?: FileAttributeConfigType;
|
||||
}
|
||||
|
||||
export const FileAttributeConfigTypes = {
|
||||
DATE: 'DATE',
|
||||
NUMBER: 'NUMBER',
|
||||
TEXT: 'TEXT',
|
||||
} as const;
|
||||
export type FileAttributeConfigType = keyof typeof FileAttributeConfigTypes;
|
||||
@ -0,0 +1,7 @@
|
||||
import { IFileAttributeConfig } from './file-attribute-config';
|
||||
|
||||
export interface IFileAttributesConfig {
|
||||
delimiter?: string;
|
||||
fileAttributeConfigs?: IFileAttributeConfig[];
|
||||
filenameMappingColumnHeaderName?: string;
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
export interface FileAttributes {
|
||||
attributeIdToValue?: any;
|
||||
}
|
||||
4
libs/red-domain/src/lib/file-attributes/index.ts
Normal file
4
libs/red-domain/src/lib/file-attributes/index.ts
Normal file
@ -0,0 +1,4 @@
|
||||
export * from './file-attribute-config';
|
||||
export * from './file-attribute-config.model';
|
||||
export * from './file-attributes';
|
||||
export * from './file-attributes-config';
|
||||
@ -1,15 +1,4 @@
|
||||
/**
|
||||
* API Documentation for Redaction Gateway
|
||||
* Description for redaction
|
||||
*
|
||||
* OpenAPI spec version: 1.0
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen.git
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
import { FileAttributes } from './fileAttributes';
|
||||
import { FileAttributes } from '@red/domain';
|
||||
|
||||
/**
|
||||
* Object containing information on a specific file.
|
||||
|
||||
@ -1,32 +0,0 @@
|
||||
/**
|
||||
* API Documentation for Redaction Gateway
|
||||
* Description for redaction
|
||||
*
|
||||
* OpenAPI spec version: 1.0
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen.git
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
export interface IFileAttributeConfig {
|
||||
readonly csvColumnHeader?: string;
|
||||
readonly displayedInFileList?: boolean;
|
||||
readonly dossierTemplateId?: string;
|
||||
readonly editable?: boolean;
|
||||
readonly filterable?: boolean;
|
||||
readonly id: string;
|
||||
readonly label?: string;
|
||||
readonly placeholder?: string;
|
||||
readonly primaryAttribute?: boolean;
|
||||
readonly type?: FileAttributeConfigType;
|
||||
|
||||
}
|
||||
|
||||
export const FileAttributeConfigTypes = {
|
||||
DATE: 'DATE',
|
||||
NUMBER: 'NUMBER',
|
||||
TEXT: 'TEXT',
|
||||
} as const;
|
||||
export type FileAttributeConfigType = keyof typeof FileAttributeConfigTypes;
|
||||
@ -1,15 +0,0 @@
|
||||
/**
|
||||
* API Documentation for Redaction Gateway
|
||||
* Description for redaction
|
||||
*
|
||||
* OpenAPI spec version: 1.0
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen.git
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
export interface FileAttributes {
|
||||
attributeIdToValue?: any;
|
||||
}
|
||||
@ -1,18 +0,0 @@
|
||||
/**
|
||||
* API Documentation for Redaction Gateway
|
||||
* Description for redaction
|
||||
*
|
||||
* OpenAPI spec version: 1.0
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen.git
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
import { IFileAttributeConfig } from './fileAttributeConfig';
|
||||
|
||||
export interface FileAttributesConfig {
|
||||
delimiter?: string;
|
||||
fileAttributeConfigs?: Array<IFileAttributeConfig>;
|
||||
filenameMappingColumnHeaderName?: string;
|
||||
}
|
||||
@ -7,9 +7,9 @@ export * from './digitalSignatureViewModel';
|
||||
export * from './downloadResponse';
|
||||
export * from './downloadStatus';
|
||||
export * from './downloadStatusResponse';
|
||||
export * from './fileAttributeConfig';
|
||||
export * from './fileAttributes';
|
||||
export * from './fileAttributesConfig';
|
||||
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';
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user