TSK-537 Import only accepting json files

This commit is contained in:
Lars Leo Grätz 2018-06-28 18:16:55 +02:00 committed by Martin Rojas Miguel Angel
parent 15487d2ff6
commit 1c5846252a
2 changed files with 18 additions and 3 deletions

View File

@ -1,4 +1,4 @@
<input #selectedFile type="file" (change)="onSelectFile($event)" class="hide" />
<input #selectedFile type="file" accept=".json" (change)="onSelectFile($event)" class="hide" />
<svg-icon class="btn btn-default green-blue" src="./assets/icons/import.svg" title="Import" (click)="selectedFile.click()"></svg-icon>
<div class="dropdown" style="display: inline">
<svg-icon class="btn btn-default red dropdown-toggle" title="Export" src="./assets/icons/export.svg" data-toggle="dropdown"

View File

@ -3,6 +3,8 @@ import { ClassificationDefinitionService } from 'app/administration/services/cla
import { WorkbasketDefinitionService } from 'app/administration/services/workbasket-definition/workbasket-definition.service';
import { DomainService } from 'app/services/domain/domain.service';
import { ImportType } from 'app/models/import-type';
import { ErrorModel } from 'app/models/modal-error';
import { ErrorModalService } from 'app/services/errorModal/error-modal.service';
@Component({
selector: 'taskana-import-export-component',
@ -15,7 +17,7 @@ export class ImportExportComponent implements OnInit {
domains: string[] = [];
constructor(private domainService: DomainService, private workbasketDefinitionService: WorkbasketDefinitionService,
private classificationDefinitionService: ClassificationDefinitionService) {
private classificationDefinitionService: ClassificationDefinitionService, private errorModalService: ErrorModalService) {
}
ngOnInit() {
@ -29,9 +31,22 @@ export class ImportExportComponent implements OnInit {
onSelectFile(event) {
const file = event.target.files[0];
const ending = file.name.match(/\.([^\.]+)$/)[1];
switch (ending) {
case 'json':
break;
default:
file.value = '';
this.errorModalService.triggerError(new ErrorModel(undefined,
`This file format is not allowed! Please use a .json file.`));
}
const reader = new FileReader();
if (this.currentSelection === ImportType.WORKBASKETS) {
reader.onload = <Event>(e) => this.workbasketDefinitionService.importWorkbasketDefinitions(e.target.result);
reader.onload = <Event>(e) => {
this.workbasketDefinitionService.importWorkbasketDefinitions(e.target.result);
}
} else {
reader.onload = <Event>(e) => this.classificationDefinitionService.importClassifications(e.target.result);
}