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);