From 8cb9e71204d39a5585dcad3c7a49a7d9d7008c60 Mon Sep 17 00:00:00 2001 From: Valentin Date: Wed, 5 Jan 2022 16:05:35 +0200 Subject: [PATCH 1/4] WIP on 'Configuration of CSV settings for file attributes' --- .../src/app/modules/admin/admin.module.ts | 2 + ...butes-configurations-dialog.component.html | 48 +++++++++++++++++++ ...butes-configurations-dialog.component.scss | 0 ...ributes-configurations-dialog.component.ts | 31 ++++++++++++ ...e-attributes-listing-screen.component.html | 9 ++++ ...ile-attributes-listing-screen.component.ts | 4 ++ .../admin/services/admin-dialog.service.ts | 5 ++ ...e-attribute-encoding-types-translations.ts | 8 ++++ apps/red-ui/src/assets/i18n/en.json | 17 +++++++ libs/common-ui | 2 +- .../file-attributes/file-attribute-config.ts | 7 +++ 11 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.html create mode 100644 apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.scss create mode 100644 apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts create mode 100644 apps/red-ui/src/app/modules/admin/translations/file-attribute-encoding-types-translations.ts diff --git a/apps/red-ui/src/app/modules/admin/admin.module.ts b/apps/red-ui/src/app/modules/admin/admin.module.ts index 7fcf4642b..6ed502c5b 100644 --- a/apps/red-ui/src/app/modules/admin/admin.module.ts +++ b/apps/red-ui/src/app/modules/admin/admin.module.ts @@ -48,6 +48,7 @@ import { SmtpConfigService } from './services/smtp-config.service'; import { UploadDictionaryDialogComponent } from './dialogs/upload-dictionary-dialog/upload-dictionary-dialog.component'; import { GeneralConfigFormComponent } from './screens/general-config/general-config-form/general-config-form.component'; import { SmtpFormComponent } from './screens/general-config/smtp-form/smtp-form.component'; +import { FileAttributesConfigurationsDialogComponent } from './dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component'; const dialogs = [ AddEditDossierTemplateDialogComponent, @@ -58,6 +59,7 @@ const dialogs = [ SmtpAuthDialogComponent, AddEditUserDialogComponent, ConfirmDeleteUsersDialogComponent, + FileAttributesConfigurationsDialogComponent, FileAttributesCsvImportDialogComponent, AddEditDossierAttributeDialogComponent, UploadDictionaryDialogComponent, diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.html new file mode 100644 index 000000000..baea014f3 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.html @@ -0,0 +1,48 @@ +
+
+ +
+
+
+ {{ + 'file-attributes-configurations.form.support-csv-mapping' | translate + }} +
+ +
+ + +
+
+ + +
+
+ + + + {{ translations[type] | translate }} + + +
+
+
+
+ + +
+
+
+
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.scss b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts new file mode 100644 index 000000000..e570e5a7e --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts @@ -0,0 +1,31 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { MatDialogRef } from '@angular/material/dialog'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { FileAttributeEncodingTypes } from '../../../../../../../../libs/red-domain/src'; +import { fileAttributeEncodingTypesTranslations } from '../../translations/file-attribute-encoding-types-translations'; + +@Component({ + templateUrl: './file-attributes-configurations-dialog.component.html', + styleUrls: ['./file-attributes-configurations-dialog.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class FileAttributesConfigurationsDialogComponent { + readonly form: FormGroup; + readonly encodingTypeOptions = Object.keys(FileAttributeEncodingTypes); + readonly translations = fileAttributeEncodingTypesTranslations; + + constructor(private readonly _formBuilder: FormBuilder, readonly dialogRef: MatDialogRef) { + this.form = this._getForm(); + } + + save() {} + + private _getForm(): FormGroup { + return this._formBuilder.group({ + supportCsvMapping: [false], + keyColumn: [''], + delimitator: [''], + encodingType: [FileAttributeEncodingTypes.UTF8], + }); + } +} diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.html index f820ff322..3cb293336 100644 --- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.html @@ -65,6 +65,15 @@ tooltipPosition="above" > + + { this._loadingService.start(); diff --git a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts index 8eaf8a2b5..8b5ac7db1 100644 --- a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts @@ -13,6 +13,7 @@ import { AddEditDossierAttributeDialogComponent } from '../dialogs/add-edit-doss import { ConfirmationDialogComponent, DialogConfig, DialogService, largeDialogConfig } from '@iqser/common-ui'; import { AddEditJustificationDialogComponent } from '../screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component'; import { UploadDictionaryDialogComponent } from '../dialogs/upload-dictionary-dialog/upload-dictionary-dialog.component'; +import { FileAttributesConfigurationsDialogComponent } from '../dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component'; type DialogType = | 'confirm' @@ -21,6 +22,7 @@ type DialogType = | 'addEditFileAttribute' | 'deleteFileAttribute' | 'importFileAttributes' + | 'fileAttributesConfigurations' | 'addEditUser' | 'deleteUsers' | 'smtpAuthConfig' @@ -50,6 +52,9 @@ export class AdminDialogService extends DialogService { deleteFileAttribute: { component: ConfirmDeleteFileAttributeDialogComponent, }, + fileAttributesConfigurations: { + component: FileAttributesConfigurationsDialogComponent, + }, importFileAttributes: { component: FileAttributesCsvImportDialogComponent, dialogConfig: largeDialogConfig, diff --git a/apps/red-ui/src/app/modules/admin/translations/file-attribute-encoding-types-translations.ts b/apps/red-ui/src/app/modules/admin/translations/file-attribute-encoding-types-translations.ts new file mode 100644 index 000000000..91a99e3cb --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/translations/file-attribute-encoding-types-translations.ts @@ -0,0 +1,8 @@ +import { FileAttributeEncodingType } from '@red/domain'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; + +export const fileAttributeEncodingTypesTranslations: { [key in FileAttributeEncodingType]: string } = { + UTF8: _('file-attribute-encoding-types.utf8'), + ASCII: _('file-attribute-encoding-types.ascii'), + ISO: _('file-attribute-encoding-types.iso'), +}; diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index 1f3977ece..c9928ae4f 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -938,12 +938,28 @@ }, "exact-date": "{day} {month} {year} at {hour}:{minute}", "file": "File", + "file-attribute-encoding-types": { + "ascii": "ASCII", + "iso": "ISO", + "utf8": "UTF-8" + }, "file-attribute-types": { "date": "Date", "number": "Number", "text": "Free Text" }, "file-attributes": "File Attributes", + "file-attributes-configurations": { + "cancel": "Cancel", + "form": { + "delimitator": "Delimitator", + "encoding-type": "Encoding Type", + "key-column": "Key Column", + "support-csv-mapping": "Support CSV Mapping" + }, + "save": "Save Configurations", + "title": "Configurations" + }, "file-attributes-csv-import": { "action": { "cancel-edit-name": "Cancel", @@ -1009,6 +1025,7 @@ "bulk-actions": { "delete": "Delete Selected Attributes" }, + "configurations": "Configurations", "error": { "conflict": "File-Attribute with this name already exists!", "generic": "Failed to add File-Attribute" diff --git a/libs/common-ui b/libs/common-ui index 0610684e8..45a12070b 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 0610684e8fb963fab1f7dd51fd850a7b47287fca +Subproject commit 45a12070bfe5c9aa36f24c4e08da157796e881ab diff --git a/libs/red-domain/src/lib/file-attributes/file-attribute-config.ts b/libs/red-domain/src/lib/file-attributes/file-attribute-config.ts index 2219fc90b..d667eb8f1 100644 --- a/libs/red-domain/src/lib/file-attributes/file-attribute-config.ts +++ b/libs/red-domain/src/lib/file-attributes/file-attribute-config.ts @@ -17,3 +17,10 @@ export const FileAttributeConfigTypes = { TEXT: 'TEXT', } as const; export type FileAttributeConfigType = keyof typeof FileAttributeConfigTypes; + +export const FileAttributeEncodingTypes = { + UTF8: 'UTF8', + ASCII: 'ASCII', + ISO: 'ISO', +} as const; +export type FileAttributeEncodingType = keyof typeof FileAttributeEncodingTypes; From d8fc3fcb2c08c21a2c2043dac2a3529209c69f00 Mon Sep 17 00:00:00 2001 From: Valentin Date: Fri, 7 Jan 2022 11:49:08 +0200 Subject: [PATCH 2/4] added existing configuration to the form --- ...ibutes-configurations-dialog.component.html | 10 ++++++---- ...tributes-configurations-dialog.component.ts | 18 ++++++++++++------ ...file-attributes-listing-screen.component.ts | 2 +- apps/red-ui/src/assets/i18n/en.json | 2 +- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.html index baea014f3..649fc9030 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.html @@ -19,11 +19,11 @@ />
- +
@@ -45,4 +45,6 @@
+ + diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts index e570e5a7e..6ab62a162 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts @@ -1,7 +1,7 @@ -import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { MatDialogRef } from '@angular/material/dialog'; +import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { FormBuilder, FormGroup } from '@angular/forms'; -import { FileAttributeEncodingTypes } from '../../../../../../../../libs/red-domain/src'; +import { FileAttributeEncodingTypes, IFileAttributesConfig } from '../../../../../../../../libs/red-domain/src'; import { fileAttributeEncodingTypesTranslations } from '../../translations/file-attribute-encoding-types-translations'; @Component({ @@ -10,11 +10,17 @@ import { fileAttributeEncodingTypesTranslations } from '../../translations/file- changeDetection: ChangeDetectionStrategy.OnPush, }) export class FileAttributesConfigurationsDialogComponent { + private readonly _configuration: IFileAttributesConfig = this._data; + readonly form: FormGroup; readonly encodingTypeOptions = Object.keys(FileAttributeEncodingTypes); readonly translations = fileAttributeEncodingTypesTranslations; - constructor(private readonly _formBuilder: FormBuilder, readonly dialogRef: MatDialogRef) { + constructor( + private readonly _formBuilder: FormBuilder, + readonly dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) private _data: IFileAttributesConfig, + ) { this.form = this._getForm(); } @@ -22,9 +28,9 @@ export class FileAttributesConfigurationsDialogComponent { private _getForm(): FormGroup { return this._formBuilder.group({ - supportCsvMapping: [false], + supportCsvMapping: [!!this._configuration.filenameMappingColumnHeaderName], keyColumn: [''], - delimitator: [''], + delimiter: [this._configuration.delimiter], encodingType: [FileAttributeEncodingTypes.UTF8], }); } diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts index 897f9095a..3d8d08064 100644 --- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts @@ -88,7 +88,7 @@ export class FileAttributesListingScreenComponent extends ListingComponent Date: Fri, 28 Jan 2022 22:08:17 +0200 Subject: [PATCH 3/4] extended base dialog for file attributes configurations dialog and updated form --- ...butes-configurations-dialog.component.html | 4 +- ...ributes-configurations-dialog.component.ts | 38 ++++++++++++++----- ...e-attribute-encoding-types-translations.ts | 2 +- .../file-attributes/file-attribute-config.ts | 2 +- .../file-attributes/file-attributes-config.ts | 2 +- 5 files changed, 34 insertions(+), 14 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.html index 649fc9030..8bdf5db9b 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.html @@ -38,7 +38,7 @@
- @@ -46,5 +46,5 @@
- + diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts index 6ab62a162..bca5ac377 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts @@ -1,37 +1,57 @@ -import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Inject, Injector } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { FileAttributeEncodingTypes, IFileAttributesConfig } from '../../../../../../../../libs/red-domain/src'; import { fileAttributeEncodingTypesTranslations } from '../../translations/file-attribute-encoding-types-translations'; +import { BaseDialogComponent } from '../../../../../../../../libs/common-ui/src'; @Component({ templateUrl: './file-attributes-configurations-dialog.component.html', styleUrls: ['./file-attributes-configurations-dialog.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class FileAttributesConfigurationsDialogComponent { +export class FileAttributesConfigurationsDialogComponent extends BaseDialogComponent { private readonly _configuration: IFileAttributesConfig = this._data; - readonly form: FormGroup; readonly encodingTypeOptions = Object.keys(FileAttributeEncodingTypes); readonly translations = fileAttributeEncodingTypesTranslations; constructor( private readonly _formBuilder: FormBuilder, - readonly dialogRef: MatDialogRef, + protected readonly _injector: Injector, + protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) private _data: IFileAttributesConfig, ) { + super(_injector, _dialogRef); this.form = this._getForm(); + this.initialFormValue = this.form.getRawValue(); } - save() {} + get disabled() { + if (!this.changed) { + return true; + } + if (!this.form.get('supportCsvMapping').value) { + return false; + } + return !this.valid; + } + + save() { + this._configuration.filenameMappingColumnHeaderName = this.form.get('supportCsvMapping').value ? 'Path' : ''; + this._configuration.keyColumn = this.form.get('keyColumn').value; + this._configuration.delimiter = this.form.get('delimiter').value; + this._configuration.encoding = this.form.get('encodingType').value; + + this._dialogRef.close(); + } private _getForm(): FormGroup { return this._formBuilder.group({ supportCsvMapping: [!!this._configuration.filenameMappingColumnHeaderName], - keyColumn: [''], - delimiter: [this._configuration.delimiter], - encodingType: [FileAttributeEncodingTypes.UTF8], + keyColumn: [this._configuration.keyColumn || '', [Validators.required]], + delimiter: [this._configuration.delimiter || '', [Validators.required]], + encodingType: [this._configuration.encoding || FileAttributeEncodingTypes['UTF-8'], [Validators.required]], }); } } diff --git a/apps/red-ui/src/app/modules/admin/translations/file-attribute-encoding-types-translations.ts b/apps/red-ui/src/app/modules/admin/translations/file-attribute-encoding-types-translations.ts index 91a99e3cb..d3f53ecd6 100644 --- a/apps/red-ui/src/app/modules/admin/translations/file-attribute-encoding-types-translations.ts +++ b/apps/red-ui/src/app/modules/admin/translations/file-attribute-encoding-types-translations.ts @@ -2,7 +2,7 @@ import { FileAttributeEncodingType } from '@red/domain'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; export const fileAttributeEncodingTypesTranslations: { [key in FileAttributeEncodingType]: string } = { - UTF8: _('file-attribute-encoding-types.utf8'), + 'UTF-8': _('file-attribute-encoding-types.utf8'), ASCII: _('file-attribute-encoding-types.ascii'), ISO: _('file-attribute-encoding-types.iso'), }; diff --git a/libs/red-domain/src/lib/file-attributes/file-attribute-config.ts b/libs/red-domain/src/lib/file-attributes/file-attribute-config.ts index d667eb8f1..c6c824f8e 100644 --- a/libs/red-domain/src/lib/file-attributes/file-attribute-config.ts +++ b/libs/red-domain/src/lib/file-attributes/file-attribute-config.ts @@ -19,7 +19,7 @@ export const FileAttributeConfigTypes = { export type FileAttributeConfigType = keyof typeof FileAttributeConfigTypes; export const FileAttributeEncodingTypes = { - UTF8: 'UTF8', + 'UTF-8': 'UTF-8', ASCII: 'ASCII', ISO: 'ISO', } as const; diff --git a/libs/red-domain/src/lib/file-attributes/file-attributes-config.ts b/libs/red-domain/src/lib/file-attributes/file-attributes-config.ts index 7aa96c500..bac991593 100644 --- a/libs/red-domain/src/lib/file-attributes/file-attributes-config.ts +++ b/libs/red-domain/src/lib/file-attributes/file-attributes-config.ts @@ -3,7 +3,7 @@ import { IFileAttributeConfig } from './file-attribute-config'; export interface IFileAttributesConfig { delimiter?: string; encoding?: string; + keyColumn?: string filenameMappingColumnHeaderName?: string; - fileAttributeConfigs?: IFileAttributeConfig[]; } From f5771d135cb8ae4f3687ac0f03ee3b2274715bc4 Mon Sep 17 00:00:00 2001 From: Valentin Date: Mon, 31 Jan 2022 11:25:29 +0200 Subject: [PATCH 4/4] added save logic --- ...ributes-configurations-dialog.component.ts | 24 ++++++++++++++++--- apps/red-ui/src/assets/i18n/en.json | 6 ++++- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts index bca5ac377..c54b54bf6 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-configurations-dialog/file-attributes-configurations-dialog.component.ts @@ -3,7 +3,11 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { FileAttributeEncodingTypes, IFileAttributesConfig } from '../../../../../../../../libs/red-domain/src'; import { fileAttributeEncodingTypesTranslations } from '../../translations/file-attribute-encoding-types-translations'; -import { BaseDialogComponent } from '../../../../../../../../libs/common-ui/src'; +import { BaseDialogComponent, Toaster } from '../../../../../../../../libs/common-ui/src'; +import { DossierTemplatesService } from '../../../../services/entity-services/dossier-templates.service'; +import { firstValueFrom } from 'rxjs'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { FileAttributesService } from '../../../../services/entity-services/file-attributes.service'; @Component({ templateUrl: './file-attributes-configurations-dialog.component.html', @@ -18,6 +22,9 @@ export class FileAttributesConfigurationsDialogComponent extends BaseDialogCompo constructor( private readonly _formBuilder: FormBuilder, + private readonly _dossierTemplatesService: DossierTemplatesService, + private readonly _fileAttributesService: FileAttributesService, + private readonly _toaster: Toaster, protected readonly _injector: Injector, protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) private _data: IFileAttributesConfig, @@ -37,12 +44,23 @@ export class FileAttributesConfigurationsDialogComponent extends BaseDialogCompo return !this.valid; } - save() { - this._configuration.filenameMappingColumnHeaderName = this.form.get('supportCsvMapping').value ? 'Path' : ''; + async save() { this._configuration.keyColumn = this.form.get('keyColumn').value; this._configuration.delimiter = this.form.get('delimiter').value; this._configuration.encoding = this.form.get('encodingType').value; + try { + await firstValueFrom( + this._fileAttributesService.setFileAttributeConfig( + this._configuration, + this._dossierTemplatesService.activeDossierTemplateId, + ), + ); + this._toaster.success(_('file-attributes-configurations.update.success')); + } catch (e) { + this._toaster.error(_('file-attributes-configurations.update.error')); + } + this._dialogRef.close(); } diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index e9dca6274..9be0b20b2 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -1025,7 +1025,11 @@ "support-csv-mapping": "Support CSV Mapping" }, "save": "Save Configurations", - "title": "Configurations" + "title": "Configurations", + "update": { + "error": "Failed to update the configuration!", + "success": "Configuration has been updated successfully!" + } }, "file-attributes-csv-import": { "action": {