From b86392caa735b45da585a6a14a3e068a730110aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20Leo=20Gr=C3=A4tz?= <23726273+LarsLeo@users.noreply.github.com> Date: Thu, 5 Apr 2018 12:54:43 +0200 Subject: [PATCH] Fixed error on import --- .../list/classification-list.component.spec.ts | 5 +++-- .../workbasket-list-toolbar.component.html | 4 ++-- .../classification-definition.service.ts | 8 ++++++-- web/src/app/services/domains/domain.service.ts | 1 - .../workbasket-definition.service.ts | 9 ++++++--- .../import-export/import-export.component.spec.ts | 12 ++++++++++-- .../shared/import-export/import-export.component.ts | 2 +- 7 files changed, 28 insertions(+), 13 deletions(-) diff --git a/web/src/app/administration/classification/master/list/classification-list.component.spec.ts b/web/src/app/administration/classification/master/list/classification-list.component.spec.ts index b4dbd0ffa..0a037c384 100644 --- a/web/src/app/administration/classification/master/list/classification-list.component.spec.ts +++ b/web/src/app/administration/classification/master/list/classification-list.component.spec.ts @@ -18,6 +18,7 @@ import { AlertService } from 'app/services/alert/alert.service'; import { ClassificationsService } from 'app/services/classifications/classifications.service'; import { ClassificationDefinitionService } from 'app/services/classification-definition/classification-definition.service'; import { DomainService } from 'app/services/domains/domain.service'; +import {ErrorModalService} from '../../../../services/errorModal/error-modal.service'; @Component({ selector: 'taskana-tree', @@ -55,8 +56,8 @@ describe('ClassificationListComponent', () => { TaskanaTreeComponent, DummyDetailComponent], imports: [HttpClientModule, RouterTestingModule.withRoutes(routes)], providers: [ - HttpClient, WorkbasketDefinitionService, AlertService, ClassificationsService, DomainService, ClassificationDefinitionService - + HttpClient, WorkbasketDefinitionService, AlertService, ClassificationsService, DomainService, ClassificationDefinitionService, + ErrorModalService ] }) .compileComponents(); diff --git a/web/src/app/administration/workbasket/master/list/workbasket-list-toolbar/workbasket-list-toolbar.component.html b/web/src/app/administration/workbasket/master/list/workbasket-list-toolbar/workbasket-list-toolbar.component.html index dbafb6f4f..385f26235 100644 --- a/web/src/app/administration/workbasket/master/list/workbasket-list-toolbar/workbasket-list-toolbar.component.html +++ b/web/src/app/administration/workbasket/master/list/workbasket-list-toolbar/workbasket-list-toolbar.component.html @@ -4,7 +4,7 @@ - +
@@ -17,4 +17,4 @@
- \ No newline at end of file + diff --git a/web/src/app/services/classification-definition/classification-definition.service.ts b/web/src/app/services/classification-definition/classification-definition.service.ts index 38b458d71..fa727973b 100644 --- a/web/src/app/services/classification-definition/classification-definition.service.ts +++ b/web/src/app/services/classification-definition/classification-definition.service.ts @@ -6,6 +6,8 @@ import {ClassificationDefinition} from '../../models/classification-definition'; import {AlertModel, AlertType} from '../../models/alert'; import {saveAs} from 'file-saver/FileSaver'; import {TaskanaDate} from '../../shared/util/taskana.date'; +import {ErrorModel} from '../../models/modal-error'; +import {ErrorModalService} from '../errorModal/error-modal.service'; @Injectable() export class ClassificationDefinitionService { @@ -19,7 +21,8 @@ export class ClassificationDefinitionService { }) }; - constructor(private httpClient: HttpClient, private alertService: AlertService) { + constructor(private httpClient: HttpClient, private alertService: AlertService, + private errorModalService: ErrorModalService) { } // GET @@ -38,7 +41,8 @@ export class ClassificationDefinitionService { this.httpClient.post(this.url + '/import', JSON.parse(classifications), this.httpOptions).subscribe( classificationsUpdated => this.alertService.triggerAlert(new AlertModel(AlertType.SUCCESS, 'Import was successful')), - error => this.alertService.triggerAlert(new AlertModel(AlertType.DANGER, 'Import was not successful')) + error => this.errorModalService.triggerError(new ErrorModel( + `There was an error importing classifications`, error.message)) ); } } diff --git a/web/src/app/services/domains/domain.service.ts b/web/src/app/services/domains/domain.service.ts index 4f570779d..d20b4f306 100644 --- a/web/src/app/services/domains/domain.service.ts +++ b/web/src/app/services/domains/domain.service.ts @@ -18,7 +18,6 @@ export class DomainService { constructor(private httpClient: HttpClient) { } - // TODO how to enable hateoas support? // GET getDomains(): Observable { return this.httpClient.get(this.url, this.httpOptions); diff --git a/web/src/app/services/workbasket-definition/workbasket-definition.service.ts b/web/src/app/services/workbasket-definition/workbasket-definition.service.ts index 16a7070cd..21202a171 100644 --- a/web/src/app/services/workbasket-definition/workbasket-definition.service.ts +++ b/web/src/app/services/workbasket-definition/workbasket-definition.service.ts @@ -6,6 +6,8 @@ import {AlertService} from '../alert/alert.service'; import {WorkbasketDefinition} from '../../models/workbasket-definition'; import {AlertModel, AlertType} from '../../models/alert'; import {TaskanaDate} from '../../shared/util/taskana.date'; +import {ErrorModel} from '../../models/modal-error'; +import {ErrorModalService} from '../errorModal/error-modal.service'; @Injectable() @@ -20,7 +22,8 @@ export class WorkbasketDefinitionService { }; - constructor(private httpClient: HttpClient, private alertService: AlertService) { + constructor(private httpClient: HttpClient, private alertService: AlertService, + private errorModalService: ErrorModalService) { } // GET @@ -35,12 +38,12 @@ export class WorkbasketDefinitionService { } // POST - // TODO handle error importWorkbasketDefinitions(workbasketDefinitions: any) { this.httpClient.post(environment.taskanaRestUrl + '/v1/workbasketdefinitions/import', JSON.parse(workbasketDefinitions), this.httpOptions).subscribe( workbasketsUpdated => this.alertService.triggerAlert(new AlertModel(AlertType.SUCCESS, 'Import was successful')), - error => this.alertService.triggerAlert(new AlertModel(AlertType.DANGER, 'Import was not successful')) + error => this.errorModalService.triggerError(new ErrorModel( + `There was an error importing workbaskets`, error.message)) ); } } diff --git a/web/src/app/shared/import-export/import-export.component.spec.ts b/web/src/app/shared/import-export/import-export.component.spec.ts index 9e1c1ec9d..37275e4a4 100644 --- a/web/src/app/shared/import-export/import-export.component.spec.ts +++ b/web/src/app/shared/import-export/import-export.component.spec.ts @@ -7,6 +7,8 @@ import {WorkbasketDefinitionService} from '../../services/workbasket-definition/ import {AlertService} from '../../services/alert/alert.service'; import {HttpClientModule} from '@angular/common/http'; import {DomainService} from '../../services/domains/domain.service'; +import {Observable} from 'rxjs/Observable'; +import {ErrorModalService} from '../../services/errorModal/error-modal.service'; describe('ImportExportComponent', () => { let component: ImportExportComponent; @@ -17,7 +19,8 @@ describe('ImportExportComponent', () => { TestBed.configureTestingModule({ declarations: [ImportExportComponent], imports: [HttpClientModule], - providers: [WorkbasketService, ClassificationDefinitionService, WorkbasketDefinitionService, AlertService, DomainService] + providers: [WorkbasketService, ClassificationDefinitionService, WorkbasketDefinitionService, AlertService, DomainService, + ErrorModalService] }) .compileComponents(); })); @@ -25,7 +28,6 @@ describe('ImportExportComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(ImportExportComponent); component = fixture.componentInstance; - domainService = TestBed.get(DomainService); fixture.detectChanges(); }); @@ -33,4 +35,10 @@ describe('ImportExportComponent', () => { expect(component).toBeTruthy(); }); + it('should update domains', () => { + domainService = TestBed.get(DomainService); + spyOn(domainService, 'getDomains').and.returnValue(Observable.of(['A', 'B'])); + component.updateDomains(); + expect(domainService.getDomains).toHaveBeenCalled(); + }); }); diff --git a/web/src/app/shared/import-export/import-export.component.ts b/web/src/app/shared/import-export/import-export.component.ts index 033e5514e..136d772bd 100644 --- a/web/src/app/shared/import-export/import-export.component.ts +++ b/web/src/app/shared/import-export/import-export.component.ts @@ -28,7 +28,7 @@ export class ImportExportComponent implements OnInit { } onSelectFile(event) { - const file = event.srcElement.files[0]; + const file = event.target.files[0]; const reader = new FileReader(); if (this.currentSelection === ImportType.WORKBASKETS) { reader.onload = (e) => this.workbasketDefinitionService.importWorkbasketDefinitions(e.target.result);