Fixed error on import

This commit is contained in:
Lars Leo Grätz 2018-04-05 12:54:43 +02:00 committed by Martin Rojas Miguel Angel
parent fca11cea7f
commit b86392caa7
7 changed files with 28 additions and 13 deletions

View File

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

View File

@ -4,7 +4,7 @@
<button type="button" (click)="addWorkbasket()" data-toggle="tooltip" title="Add" class="btn btn-default">
<span class="glyphicon glyphicon-plus green" aria-hidden="true"></span>
</button>
<taskana-import-export-component [currentSelection]="'workbaskets'"></taskana-import-export-component>
<taskana-import-export-component [currentSelection]="selectionToImport"></taskana-import-export-component>
</div>
<div class="pull-right margin-right">
<taskana-sort (performSorting)="sorting($event)"></taskana-sort>
@ -17,4 +17,4 @@
<div [@toggle]="toolbarState" *ngIf="toolbarState" class="row no-overflow">
<taskana-filter (performFilter)="filtering($event)"></taskana-filter>
</div>
</li>
</li>

View File

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

View File

@ -18,7 +18,6 @@ export class DomainService {
constructor(private httpClient: HttpClient) {
}
// TODO how to enable hateoas support?
// GET
getDomains(): Observable<string[]> {
return this.httpClient.get<string[]>(this.url, this.httpOptions);

View File

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

View File

@ -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();
});
});

View File

@ -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 = <Event>(e) => this.workbasketDefinitionService.importWorkbasketDefinitions(e.target.result);