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": {