WIP on 'Configuration of CSV settings for file attributes'
This commit is contained in:
parent
8c1efd629f
commit
8cb9e71204
@ -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,
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
<section class="dialog">
|
||||
<div class="dialog-header heading-l" translate="file-attributes-configurations.title"></div>
|
||||
|
||||
<form [formGroup]="form">
|
||||
<div class="dialog-content">
|
||||
<div class="iqser-input-group w-300">
|
||||
<mat-slide-toggle color="primary" formControlName="supportCsvMapping">{{
|
||||
'file-attributes-configurations.form.support-csv-mapping' | translate
|
||||
}}</mat-slide-toggle>
|
||||
</div>
|
||||
<ng-container *ngIf="form.value.supportCsvMapping">
|
||||
<div class="iqser-input-group required w-250">
|
||||
<label translate="file-attributes-configurations.form.key-column"></label>
|
||||
<input
|
||||
[placeholder]="'file-attributes-configurations.form.key-column' | translate"
|
||||
formControlName="keyColumn"
|
||||
name="keyColumn"
|
||||
type="text"
|
||||
/>
|
||||
</div>
|
||||
<div class="iqser-input-group required w-110">
|
||||
<label translate="file-attributes-configurations.form.delimitator"></label>
|
||||
<input
|
||||
[placeholder]="'file-attributes-configurations.form.delimitator' | translate"
|
||||
formControlName="delimitator"
|
||||
name="delimitator"
|
||||
type="text"
|
||||
/>
|
||||
</div>
|
||||
<div class="iqser-input-group w-150 required">
|
||||
<label translate="file-attributes-configurations.form.encoding-type"></label>
|
||||
<mat-select formControlName="encodingType">
|
||||
<mat-option *ngFor="let type of encodingTypeOptions" [value]="type">
|
||||
{{ translations[type] | translate }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</div>
|
||||
</ng-container>
|
||||
</div>
|
||||
<div class="dialog-actions">
|
||||
<button (click)="save()" color="primary" mat-flat-button>
|
||||
{{ 'file-attributes-configurations.save' | translate }}
|
||||
</button>
|
||||
|
||||
<div class="all-caps-label cancel" translate="file-attributes-configurations.cancel"></div>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
@ -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<FileAttributesConfigurationsDialogComponent>) {
|
||||
this.form = this._getForm();
|
||||
}
|
||||
|
||||
save() {}
|
||||
|
||||
private _getForm(): FormGroup {
|
||||
return this._formBuilder.group({
|
||||
supportCsvMapping: [false],
|
||||
keyColumn: [''],
|
||||
delimitator: [''],
|
||||
encodingType: [FileAttributeEncodingTypes.UTF8],
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -65,6 +65,15 @@
|
||||
tooltipPosition="above"
|
||||
></iqser-circle-button>
|
||||
|
||||
<iqser-circle-button
|
||||
(action)="openConfigurationsDialog($event)"
|
||||
*ngIf="currentUser.isAdmin"
|
||||
[tooltip]="'file-attributes-listing.configurations' | translate"
|
||||
[type]="circleButtonTypes.dark"
|
||||
icon="iqser:settings"
|
||||
tooltipPosition="above"
|
||||
></iqser-circle-button>
|
||||
|
||||
<iqser-icon-button
|
||||
(action)="openAddEditAttributeDialog($event)"
|
||||
*ngIf="currentUser.isAdmin"
|
||||
|
||||
@ -87,6 +87,10 @@ export class FileAttributesListingScreenComponent extends ListingComponent<FileA
|
||||
});
|
||||
}
|
||||
|
||||
openConfigurationsDialog($event: MouseEvent) {
|
||||
this._dialogService.openDialog('fileAttributesConfigurations', $event, null);
|
||||
}
|
||||
|
||||
openConfirmDeleteAttributeDialog($event: MouseEvent, fileAttribute?: IFileAttributeConfig) {
|
||||
this._dialogService.openDialog('deleteFileAttribute', $event, fileAttribute, async () => {
|
||||
this._loadingService.start();
|
||||
|
||||
@ -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<DialogType> {
|
||||
deleteFileAttribute: {
|
||||
component: ConfirmDeleteFileAttributeDialogComponent,
|
||||
},
|
||||
fileAttributesConfigurations: {
|
||||
component: FileAttributesConfigurationsDialogComponent,
|
||||
},
|
||||
importFileAttributes: {
|
||||
component: FileAttributesCsvImportDialogComponent,
|
||||
dialogConfig: largeDialogConfig,
|
||||
|
||||
@ -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'),
|
||||
};
|
||||
@ -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"
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 0610684e8fb963fab1f7dd51fd850a7b47287fca
|
||||
Subproject commit 45a12070bfe5c9aa36f24c4e08da157796e881ab
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user