Display existing attributes at csv import
This commit is contained in:
parent
b83e41da77
commit
18ed62c1c9
@ -3,7 +3,7 @@ import { AbstractControl, FormGroup, ValidatorFn, Validators } from '@angular/fo
|
||||
import { AppStateService } from '../../../../state/app-state.service';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import * as Papa from 'papaparse';
|
||||
import { FileAttributesControllerService } from '@redaction/red-ui-http';
|
||||
import { FileAttributeConfig, FileAttributesControllerService } from '@redaction/red-ui-http';
|
||||
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
||||
import { Observable } from 'rxjs';
|
||||
import { map, startWith } from 'rxjs/operators';
|
||||
@ -52,7 +52,7 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent
|
||||
private readonly _fileAttributesControllerService: FileAttributesControllerService,
|
||||
public dialogRef: MatDialogRef<FileAttributesCsvImportDialogComponent>,
|
||||
protected readonly _injector: Injector,
|
||||
@Inject(MAT_DIALOG_DATA) public data: { csv: File; ruleSetId: string }
|
||||
@Inject(MAT_DIALOG_DATA) public data: { csv: File; ruleSetId: string; existingAttributes: FileAttributeConfig[] }
|
||||
) {
|
||||
super(_injector);
|
||||
this.csvFile = data.csv;
|
||||
@ -64,7 +64,7 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent
|
||||
encoding: ['UTF-8', Validators.required]
|
||||
});
|
||||
|
||||
this._readFile();
|
||||
this._readFile(data.existingAttributes);
|
||||
}
|
||||
|
||||
private _autocompleteStringValidator(): ValidatorFn {
|
||||
@ -76,7 +76,7 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent
|
||||
};
|
||||
}
|
||||
|
||||
private _readFile() {
|
||||
private _readFile(existingAttributes: FileAttributeConfig[]) {
|
||||
const reader = new FileReader();
|
||||
reader.addEventListener('load', async (event) => {
|
||||
const parsedCsv = <any>event.target.result;
|
||||
@ -144,6 +144,17 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent
|
||||
};
|
||||
}
|
||||
|
||||
private _buildExistingAttribute(attribute: FileAttributeConfig) {
|
||||
return {
|
||||
csvColumn: attribute.csvColumnHeader,
|
||||
name: attribute.label,
|
||||
temporaryName: attribute.label,
|
||||
type: FieldType.Text, // TODO
|
||||
readonly: !attribute.editable,
|
||||
display: attribute.visible
|
||||
};
|
||||
}
|
||||
|
||||
public activateAll() {
|
||||
this.activeFields = [...this.allEntities];
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ export class FileAttributesListingScreenComponent extends BaseListingComponent<F
|
||||
const csvFile = files[0];
|
||||
this._fileInput.nativeElement.value = null;
|
||||
|
||||
this._dialogService.openImportFileAttributeCSVDialog(csvFile, this._appStateService.activeRuleSetId, async () => {
|
||||
this._dialogService.openImportFileAttributeCSVDialog(csvFile, this._appStateService.activeRuleSetId, this.attributes, async () => {
|
||||
await this._loadData();
|
||||
});
|
||||
}
|
||||
|
||||
@ -124,10 +124,15 @@ export class AdminDialogService {
|
||||
return ref;
|
||||
}
|
||||
|
||||
public openImportFileAttributeCSVDialog(csv: File, ruleSetId: string, cb?: Function): MatDialogRef<FileAttributesCsvImportDialogComponent> {
|
||||
public openImportFileAttributeCSVDialog(
|
||||
csv: File,
|
||||
ruleSetId: string,
|
||||
existingAttributes: FileAttributeConfig[],
|
||||
cb?: Function
|
||||
): MatDialogRef<FileAttributesCsvImportDialogComponent> {
|
||||
const ref = this._dialog.open(FileAttributesCsvImportDialogComponent, {
|
||||
...largeDialogConfig,
|
||||
data: { csv, ruleSetId }
|
||||
data: { csv, ruleSetId, existingAttributes }
|
||||
});
|
||||
|
||||
ref.afterClosed().subscribe((result) => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user