From 0ac286d193faadf023363068918264ff8088ac24 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Sun, 26 Sep 2021 11:04:24 +0300 Subject: [PATCH] update file attribute config --- .../app/models/file/file-attribute-config.ts | 30 ++++++++++++++++ ...edit-dossier-attribute-dialog.component.ts | 4 +-- ...dd-edit-file-attribute-dialog.component.ts | 12 +++---- ...-delete-file-attribute-dialog.component.ts | 6 ++-- .../active-fields-listing.component.ts | 14 +++----- ...-attributes-csv-import-dialog.component.ts | 20 ++++++----- ...ile-attributes-listing-screen.component.ts | 27 ++++++++------- .../screens/trash/trash-screen.component.ts | 10 +++--- .../file-attribute-types-translations.ts | 4 +-- .../document-info-dialog.component.ts | 4 +-- .../dossier-overview-screen.component.ts | 3 +- .../page-header/page-header.component.ts | 4 +-- .../api/fileAttributesController.service.ts | 32 ++++++++--------- .../src/lib/model/fileAttributeConfig.ts | 34 +++++++++---------- .../src/lib/model/fileAttributesConfig.ts | 4 +-- 15 files changed, 118 insertions(+), 90 deletions(-) create mode 100644 apps/red-ui/src/app/models/file/file-attribute-config.ts diff --git a/apps/red-ui/src/app/models/file/file-attribute-config.ts b/apps/red-ui/src/app/models/file/file-attribute-config.ts new file mode 100644 index 000000000..1b61ac423 --- /dev/null +++ b/apps/red-ui/src/app/models/file/file-attribute-config.ts @@ -0,0 +1,30 @@ +import { FileAttributeConfigType, IFileAttributeConfig } from '@redaction/red-ui-http'; +import { IListable } from '@iqser/common-ui'; + +export class FileAttributeConfig implements IFileAttributeConfig, IListable { + readonly id: string; + readonly csvColumnHeader?: string; + readonly editable?: boolean; + readonly label?: string; + readonly placeholder?: string; + readonly primaryAttribute?: boolean; + readonly displayedInFileList?: boolean; + readonly filterable?: boolean; + readonly type?: FileAttributeConfigType; + + constructor(fileAttributeConfig: IFileAttributeConfig) { + this.id = fileAttributeConfig.id; + this.csvColumnHeader = fileAttributeConfig.csvColumnHeader; + this.editable = !!fileAttributeConfig.editable; + this.label = fileAttributeConfig.label; + this.placeholder = fileAttributeConfig.placeholder; + this.primaryAttribute = fileAttributeConfig.primaryAttribute; + this.displayedInFileList = fileAttributeConfig.displayedInFileList; + this.filterable = !!fileAttributeConfig.filterable; + this.type = fileAttributeConfig.type; + } + + get searchKey(): string { + return this.label; + } +} 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 c90bf699f..8c4aed934 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,6 +1,6 @@ import { Component, Inject, OnDestroy } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { DossierAttributeConfigTypes, FileAttributeConfig, IDossierAttributeConfig } from '@redaction/red-ui-http'; +import { DossierAttributeConfigTypes, FileAttributeConfigTypes, IDossierAttributeConfig } from '@redaction/red-ui-http'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { AutoUnsubscribe, LoadingService, Toaster } from '@iqser/common-ui'; import { HttpErrorResponse } from '@angular/common/http'; @@ -38,7 +38,7 @@ export class AddEditDossierAttributeDialogComponent extends AutoUnsubscribe impl disabled: true } }), - type: [this.dossierAttribute?.type || FileAttributeConfig.TypeEnum.TEXT, Validators.required] + type: [this.dossierAttribute?.type || FileAttributeConfigTypes.TEXT, Validators.required] }); } diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts index d330096a7..a7abc108c 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts @@ -1,7 +1,7 @@ import { Component, Inject } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { AppStateService } from '@state/app-state.service'; -import { FileAttributeConfig } from '@redaction/red-ui-http'; +import { FileAttributeConfigTypes, IFileAttributeConfig } from '@redaction/red-ui-http'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { fileAttributeTypesTranslations } from '../../translations/file-attribute-types-translations'; @@ -12,9 +12,9 @@ import { fileAttributeTypesTranslations } from '../../translations/file-attribut }) export class AddEditFileAttributeDialogComponent { fileAttributeForm: FormGroup; - fileAttribute: FileAttributeConfig; + fileAttribute: IFileAttributeConfig; dossierTemplateId: string; - readonly typeOptions = [FileAttributeConfig.TypeEnum.TEXT, FileAttributeConfig.TypeEnum.NUMBER, FileAttributeConfig.TypeEnum.DATE]; + readonly typeOptions = Object.keys(FileAttributeConfigTypes); translations = fileAttributeTypesTranslations; constructor( @@ -22,7 +22,7 @@ export class AddEditFileAttributeDialogComponent { private readonly _formBuilder: FormBuilder, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) - public data: { fileAttribute: FileAttributeConfig; dossierTemplateId: string } + public data: { fileAttribute: IFileAttributeConfig; dossierTemplateId: string } ) { this.fileAttribute = data.fileAttribute; this.dossierTemplateId = data.dossierTemplateId; @@ -30,7 +30,7 @@ export class AddEditFileAttributeDialogComponent { this.fileAttributeForm = this._formBuilder.group({ label: [this.fileAttribute?.label, Validators.required], csvColumnHeader: [this.fileAttribute?.csvColumnHeader, Validators.required], - type: [this.fileAttribute?.type || FileAttributeConfig.TypeEnum.TEXT, Validators.required], + type: [this.fileAttribute?.type || FileAttributeConfigTypes.TEXT, Validators.required], readonly: [this.fileAttribute ? !this.fileAttribute.editable : false], primaryAttribute: [this.fileAttribute?.primaryAttribute], filterable: [this.fileAttribute?.filterable], @@ -57,7 +57,7 @@ export class AddEditFileAttributeDialogComponent { } async saveFileAttribute() { - const fileAttribute: FileAttributeConfig = { + const fileAttribute: IFileAttributeConfig = { id: this.fileAttribute?.id, editable: !this.fileAttributeForm.get('readonly').value, ...this.fileAttributeForm.getRawValue() diff --git a/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-file-attribute-dialog/confirm-delete-file-attribute-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-file-attribute-dialog/confirm-delete-file-attribute-dialog.component.ts index bad6ea1d0..d35d500d3 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-file-attribute-dialog/confirm-delete-file-attribute-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-file-attribute-dialog/confirm-delete-file-attribute-dialog.component.ts @@ -1,5 +1,5 @@ import { Component, Inject } from '@angular/core'; -import { FileAttributeConfig } from '@redaction/red-ui-http'; +import { IFileAttributeConfig } from '@redaction/red-ui-http'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @@ -9,7 +9,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; styleUrls: ['./confirm-delete-file-attribute-dialog.component.scss'] }) export class ConfirmDeleteFileAttributeDialogComponent { - fileAttribute: FileAttributeConfig; + fileAttribute: IFileAttributeConfig; checkboxes = [ { value: false, label: _('confirm-delete-file-attribute.impacted-documents') }, { value: false, label: _('confirm-delete-file-attribute.lost-details') } @@ -18,7 +18,7 @@ export class ConfirmDeleteFileAttributeDialogComponent { constructor( public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data: FileAttributeConfig + @Inject(MAT_DIALOG_DATA) public data: IFileAttributeConfig ) { this.fileAttribute = data; } 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 126288f6a..410709c35 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 @@ -12,7 +12,7 @@ import { ViewChild } from '@angular/core'; import { Field } from '../file-attributes-csv-import-dialog.component'; -import { FileAttributeConfig } from '@redaction/red-ui-http'; +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'; @@ -28,19 +28,15 @@ export class ActiveFieldsListingComponent extends ListingComponent implem readonly translations = fileAttributeTypesTranslations; readonly tableHeaderLabel = _('file-attributes-csv-import.table-header.title'); tableColumnConfigs: TableColumnConfig[]; - readonly typeOptions = [ - FileAttributeConfig.TypeEnum.TEXT, - FileAttributeConfig.TypeEnum.NUMBER, - FileAttributeConfig.TypeEnum.DATE - ] as const; + readonly typeOptions = Object.keys(FileAttributeConfigTypes); @ViewChild('labelTemplate', { static: true }) labelTemplate: TemplateRef; @ViewChild('typeTemplate', { static: true }) typeTemplate: TemplateRef; @ViewChild('readonlyTemplate', { static: true }) readonlyTemplate: TemplateRef; @ViewChild('primaryTemplate', { static: true }) primaryTemplate: TemplateRef; @Input() entities: Field[]; - @Output() entitiesChange = new EventEmitter(); - @Output() setHoveredColumn = new EventEmitter(); - @Output() toggleFieldActive = new EventEmitter(); + @Output() readonly entitiesChange = new EventEmitter(); + @Output() readonly setHoveredColumn = new EventEmitter(); + @Output() readonly toggleFieldActive = new EventEmitter(); protected readonly _primaryKey = 'csvColumn'; constructor(protected readonly _injector: Injector) { diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts index 1d026118d..ca74c341d 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts @@ -2,17 +2,23 @@ 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 { FileAttributeConfig, FileAttributesConfig, FileAttributesControllerService } from '@redaction/red-ui-http'; +import { + FileAttributeConfigType, + FileAttributeConfigTypes, + FileAttributesConfig, + FileAttributesControllerService +} 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'; export interface Field extends IListable { id: string; csvColumn: string; name: string; - type: FileAttributeConfig.TypeEnum; + type: FileAttributeConfigType; readonly: boolean; primaryAttribute: boolean; } @@ -165,17 +171,15 @@ export class FileAttributesCsvImportDialogComponent extends ListingComponent attr.primaryAttribute); - + let fileAttributeConfigs = this.data.existingConfiguration.fileAttributeConfigs; if (newPrimary) { - this.data.existingConfiguration.fileAttributeConfigs.forEach(attr => (attr.primaryAttribute = false)); + fileAttributeConfigs = fileAttributeConfigs.map(attr => new FileAttributeConfig({ ...attr, primaryAttribute: false })); } const fileAttributes = { ...this.baseConfigForm.getRawValue(), fileAttributeConfigs: [ - ...this.data.existingConfiguration.fileAttributeConfigs.filter( - a => !this.allEntities.find(entity => entity.csvColumn === a.csvColumnHeader) - ), + ...fileAttributeConfigs.filter(a => !this.allEntities.find(entity => entity.csvColumn === a.csvColumnHeader)), ...this.activeFields.map(field => ({ id: field.id, csvColumnHeader: field.csvColumn, @@ -228,7 +232,7 @@ export class FileAttributesCsvImportDialogComponent extends ListingComponent[]; - @ViewChild('labelTemplate', { static: true }) labelTemplate: TemplateRef; - @ViewChild('typeTemplate', { static: true }) typeTemplate: TemplateRef; - @ViewChild('readonlyTemplate', { static: true }) readonlyTemplate: TemplateRef; - @ViewChild('csvColumnHeaderTemplate', { static: true }) csvColumnHeaderTemplate: TemplateRef; - @ViewChild('filterableTemplate', { static: true }) filterableTemplate: TemplateRef; - @ViewChild('displayedInFileListTemplate', { static: true }) displayedInFileListTemplate: TemplateRef; - @ViewChild('primaryAttributeTemplate', { static: true }) primaryAttributeTemplate: TemplateRef; - protected readonly _primaryKey = 'label'; + @ViewChild('labelTemplate', { static: true }) labelTemplate: TemplateRef; + @ViewChild('typeTemplate', { static: true }) typeTemplate: TemplateRef; + @ViewChild('readonlyTemplate', { static: true }) readonlyTemplate: TemplateRef; + @ViewChild('csvColumnHeaderTemplate', { static: true }) csvColumnHeaderTemplate: TemplateRef; + @ViewChild('filterableTemplate', { static: true }) filterableTemplate: TemplateRef; + @ViewChild('displayedInFileListTemplate', { static: true }) displayedInFileListTemplate: TemplateRef; + @ViewChild('primaryAttributeTemplate', { static: true }) primaryAttributeTemplate: TemplateRef; private _existingConfiguration: FileAttributesConfig; @ViewChild('fileInput') private _fileInput: ElementRef; @@ -70,7 +70,7 @@ export class FileAttributesListingScreenComponent extends ListingComponent { this._loadingService.start(); if (fileAttribute) { @@ -126,7 +126,7 @@ export class FileAttributesListingScreenComponent extends ListingComponent new FileAttributeConfig(item)) || []; + this.entitiesService.setEntities(fileAttributeConfig); } catch (e) {} this._loadingService.stop(); diff --git a/apps/red-ui/src/app/modules/admin/screens/trash/trash-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/trash/trash-screen.component.ts index 667544260..866b9d362 100644 --- a/apps/red-ui/src/app/modules/admin/screens/trash/trash-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/trash/trash-screen.component.ts @@ -44,8 +44,6 @@ export class TrashScreenComponent extends ListingComponent impl @ViewChild('ownerTemplate', { static: true }) ownerTemplate: TemplateRef; @ViewChild('deletedTimeTemplate', { static: true }) deletedTimeTemplate: TemplateRef; @ViewChild('restoreDateTemplate', { static: true }) restoreDateTemplate: TemplateRef; - protected readonly _primaryKey = 'dossierName'; - private readonly _deleteRetentionHours = this._configService.values.DELETE_RETENTION_HOURS; constructor( protected readonly _injector: Injector, @@ -78,7 +76,7 @@ export class TrashScreenComponent extends ListingComponent impl this._loadingService.stop(); } - hardDelete(dossiers = this.entitiesService.selected) { + hardDelete(dossiers = this.entitiesService.selected): void { const data = new ConfirmationDialogInput({ title: _('confirmation-dialog.delete-dossier.title'), titleColor: TitleColors.PRIMARY, @@ -97,7 +95,7 @@ export class TrashScreenComponent extends ListingComponent impl }); } - restore(dossiers = this.entitiesService.selected) { + restore(dossiers = this.entitiesService.selected): void { this._loadingService.loadWhile(this._restore(dossiers)); } @@ -105,7 +103,7 @@ export class TrashScreenComponent extends ListingComponent impl this.tableColumnConfigs = [ { label: _('trash.table-col-names.name'), - sortByKey: 'dossierName', + sortByKey: 'searchKey', template: this.filenameTemplate }, { @@ -127,7 +125,7 @@ export class TrashScreenComponent extends ListingComponent impl } private _getRestoreDate(softDeletedTime: string): string { - return moment(softDeletedTime).add(this._deleteRetentionHours, 'hours').toISOString(); + return moment(softDeletedTime).add(this._configService.values.DELETE_RETENTION_HOURS, 'hours').toISOString(); } private async _loadDossiersData(): Promise { 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 5262ab6c9..84898cdb8 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,7 +1,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { FileAttributeConfig } from '@redaction/red-ui-http'; +import { FileAttributeConfigType } from '@redaction/red-ui-http'; -export const fileAttributeTypesTranslations: { [key in FileAttributeConfig.TypeEnum]: string } = { +export const fileAttributeTypesTranslations: { [key in FileAttributeConfigType]: string } = { TEXT: _('file-attribute-types.text'), NUMBER: _('file-attribute-types.number'), DATE: _('file-attribute-types.date') 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 303d8aec5..3ffd8e5bc 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,6 +1,6 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; -import { FileAttributeConfig, FileAttributesControllerService, FileStatus } from '@redaction/red-ui-http'; +import { FileAttributesControllerService, FileStatus, IFileAttributeConfig } from '@redaction/red-ui-http'; import { AppStateService } from '@state/app-state.service'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Dossier } from '../../../../state/model/dossier'; @@ -12,7 +12,7 @@ import { Dossier } from '../../../../state/model/dossier'; export class DocumentInfoDialogComponent implements OnInit { documentInfoForm: FormGroup; file: FileStatus; - attributes: FileAttributeConfig[]; + attributes: IFileAttributeConfig[]; private _dossier: Dossier; 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 219663381..fb80d35b1 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 @@ -52,6 +52,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { annotationFilterChecker } from '@utils/filter-utils'; import { PermissionsService } from '@services/permissions.service'; import { RouterHistoryService } from '@services/router-history.service'; +import { IFileAttributeConfig } from '@redaction/red-ui-http'; import { Dossier } from '@state/model/dossier'; import { Router } from '@angular/router'; import { FileActionService } from '../../services/file-action.service'; @@ -79,7 +80,7 @@ export class DossierOverviewScreenComponent extends ListingComponent[] = []; collapsedDetails = false; dossierAttributes: DossierAttributeWithValue[] = []; - fileAttributeConfigs: FileAttributeConfig[]; + fileAttributeConfigs: IFileAttributeConfig[]; @ViewChild('filenameTemplate', { static: true }) filenameTemplate: TemplateRef; @ViewChild('addedOnTemplate', { static: true }) addedOnTemplate: TemplateRef; @ViewChild('attributeTemplate', { static: true }) attributeTemplate: TemplateRef; diff --git a/apps/red-ui/src/app/modules/shared/components/page-header/page-header.component.ts b/apps/red-ui/src/app/modules/shared/components/page-header/page-header.component.ts index 2fc02853e..eb5b3d109 100644 --- a/apps/red-ui/src/app/modules/shared/components/page-header/page-header.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/page-header/page-header.component.ts @@ -5,7 +5,7 @@ import { FilterService, IListable, SearchService } from '@iqser/common-ui'; import { distinctUntilChanged, map } from 'rxjs/operators'; import { combineLatest, Observable, of } from 'rxjs'; import { SearchPosition, SearchPositions } from '@shared/components/page-header/models/search-positions.type'; -import { FileAttributeConfig } from '@redaction/red-ui-http'; +import { IFileAttributeConfig } from '@redaction/red-ui-http'; @Component({ selector: 'redaction-page-header', @@ -20,8 +20,8 @@ export class PageHeaderComponent { @Input() showCloseButton: boolean; @Input() actionConfigs: readonly ActionConfig[]; @Input() buttonConfigs: readonly ButtonConfig[]; + @Input() fileAttributeConfigs: readonly IFileAttributeConfig[]; @Input() viewModeSelection: TemplateRef; - @Input() fileAttributeConfigs: readonly FileAttributeConfig[]; @Input() searchPlaceholder: string; @Input() searchWidth: number | 'full'; @Input() searchPosition: SearchPosition = SearchPositions.afterFilters; diff --git a/libs/red-ui-http/src/lib/api/fileAttributesController.service.ts b/libs/red-ui-http/src/lib/api/fileAttributesController.service.ts index 689b985f9..a7b368f18 100644 --- a/libs/red-ui-http/src/lib/api/fileAttributesController.service.ts +++ b/libs/red-ui-http/src/lib/api/fileAttributesController.service.ts @@ -10,17 +10,17 @@ * Do not edit the class manually. */ /* tslint:disable:no-unused-variable member-ordering */ -import { Inject, Injectable, Optional } from '@angular/core'; -import { HttpClient, HttpEvent, HttpHeaders, HttpResponse } from '@angular/common/http'; +import { Inject, Injectable, Optional } from "@angular/core"; +import { HttpClient, HttpEvent, HttpHeaders, HttpResponse } from "@angular/common/http"; -import { Observable } from 'rxjs'; +import { Observable } from "rxjs"; -import { FileAttributeConfig } from '../model/fileAttributeConfig'; -import { FileAttributes } from '../model/fileAttributes'; -import { FileAttributesConfig } from '../model/fileAttributesConfig'; +import { IFileAttributeConfig } from "../model/fileAttributeConfig"; +import { FileAttributes } from "../model/fileAttributes"; +import { FileAttributesConfig } from "../model/fileAttributesConfig"; -import { BASE_PATH } from '../variables'; -import { Configuration } from '../configuration'; +import { BASE_PATH } from "../variables"; +import { Configuration } from "../configuration"; @Injectable() export class FileAttributesControllerService { @@ -432,28 +432,28 @@ export class FileAttributesControllerService { * @param reportProgress flag to report request and response progress. */ public setFileAttributesConfiguration( - body: FileAttributeConfig, + body: IFileAttributeConfig, dossierTemplateId: string, observe?: 'body', reportProgress?: boolean - ): Observable; + ): Observable; public setFileAttributesConfiguration( - body: FileAttributeConfig, + body: IFileAttributeConfig, dossierTemplateId: string, observe?: 'response', reportProgress?: boolean - ): Observable>; + ): Observable>; public setFileAttributesConfiguration( - body: FileAttributeConfig, + body: IFileAttributeConfig, dossierTemplateId: string, observe?: 'events', reportProgress?: boolean - ): Observable>; + ): Observable>; public setFileAttributesConfiguration( - body: FileAttributeConfig, + body: IFileAttributeConfig, dossierTemplateId: string, observe: any = 'body', reportProgress: boolean = false @@ -489,7 +489,7 @@ export class FileAttributesControllerService { headers = headers.set('Content-Type', httpContentTypeSelected); } - return this.httpClient.request( + return this.httpClient.request( 'post', `${this.basePath}/fileAttributes/config/fileAttribute/${encodeURIComponent(String(dossierTemplateId))}`, { diff --git a/libs/red-ui-http/src/lib/model/fileAttributeConfig.ts b/libs/red-ui-http/src/lib/model/fileAttributeConfig.ts index 09e05543a..affcab95a 100644 --- a/libs/red-ui-http/src/lib/model/fileAttributeConfig.ts +++ b/libs/red-ui-http/src/lib/model/fileAttributeConfig.ts @@ -10,23 +10,21 @@ * Do not edit the class manually. */ -export interface FileAttributeConfig { - id: string; - csvColumnHeader?: string; - editable?: boolean; - label?: string; - placeholder?: string; - primaryAttribute?: boolean; - displayedInFileList?: boolean; - filterable?: boolean; - type?: FileAttributeConfig.TypeEnum; +export interface IFileAttributeConfig { + readonly id: string; + readonly csvColumnHeader?: string; + readonly editable?: boolean; + readonly label?: string; + readonly placeholder?: string; + readonly primaryAttribute?: boolean; + readonly displayedInFileList?: boolean; + readonly filterable?: boolean; + readonly type?: FileAttributeConfigType; } -export namespace FileAttributeConfig { - export type TypeEnum = 'DATE' | 'NUMBER' | 'TEXT'; - export const TypeEnum = { - DATE: 'DATE' as TypeEnum, - NUMBER: 'NUMBER' as TypeEnum, - TEXT: 'TEXT' as TypeEnum - }; -} +export const FileAttributeConfigTypes = { + DATE: 'DATE', + NUMBER: 'NUMBER', + TEXT: 'TEXT' +} as const; +export type FileAttributeConfigType = keyof typeof FileAttributeConfigTypes; diff --git a/libs/red-ui-http/src/lib/model/fileAttributesConfig.ts b/libs/red-ui-http/src/lib/model/fileAttributesConfig.ts index 086b504b8..00aefa3c5 100644 --- a/libs/red-ui-http/src/lib/model/fileAttributesConfig.ts +++ b/libs/red-ui-http/src/lib/model/fileAttributesConfig.ts @@ -9,10 +9,10 @@ * https://github.com/swagger-api/swagger-codegen.git * Do not edit the class manually. */ -import { FileAttributeConfig } from './fileAttributeConfig'; +import { IFileAttributeConfig } from './fileAttributeConfig'; export interface FileAttributesConfig { delimiter?: string; - fileAttributeConfigs?: Array; + fileAttributeConfigs?: Array; filenameMappingColumnHeaderName?: string; }