Fixed error on import
This commit is contained in:
parent
fca11cea7f
commit
b86392caa7
|
|
@ -18,6 +18,7 @@ import { AlertService } from 'app/services/alert/alert.service';
|
||||||
import { ClassificationsService } from 'app/services/classifications/classifications.service';
|
import { ClassificationsService } from 'app/services/classifications/classifications.service';
|
||||||
import { ClassificationDefinitionService } from 'app/services/classification-definition/classification-definition.service';
|
import { ClassificationDefinitionService } from 'app/services/classification-definition/classification-definition.service';
|
||||||
import { DomainService } from 'app/services/domains/domain.service';
|
import { DomainService } from 'app/services/domains/domain.service';
|
||||||
|
import {ErrorModalService} from '../../../../services/errorModal/error-modal.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'taskana-tree',
|
selector: 'taskana-tree',
|
||||||
|
|
@ -55,8 +56,8 @@ describe('ClassificationListComponent', () => {
|
||||||
TaskanaTreeComponent, DummyDetailComponent],
|
TaskanaTreeComponent, DummyDetailComponent],
|
||||||
imports: [HttpClientModule, RouterTestingModule.withRoutes(routes)],
|
imports: [HttpClientModule, RouterTestingModule.withRoutes(routes)],
|
||||||
providers: [
|
providers: [
|
||||||
HttpClient, WorkbasketDefinitionService, AlertService, ClassificationsService, DomainService, ClassificationDefinitionService
|
HttpClient, WorkbasketDefinitionService, AlertService, ClassificationsService, DomainService, ClassificationDefinitionService,
|
||||||
|
ErrorModalService
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
.compileComponents();
|
.compileComponents();
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
<button type="button" (click)="addWorkbasket()" data-toggle="tooltip" title="Add" class="btn btn-default">
|
<button type="button" (click)="addWorkbasket()" data-toggle="tooltip" title="Add" class="btn btn-default">
|
||||||
<span class="glyphicon glyphicon-plus green" aria-hidden="true"></span>
|
<span class="glyphicon glyphicon-plus green" aria-hidden="true"></span>
|
||||||
</button>
|
</button>
|
||||||
<taskana-import-export-component [currentSelection]="'workbaskets'"></taskana-import-export-component>
|
<taskana-import-export-component [currentSelection]="selectionToImport"></taskana-import-export-component>
|
||||||
</div>
|
</div>
|
||||||
<div class="pull-right margin-right">
|
<div class="pull-right margin-right">
|
||||||
<taskana-sort (performSorting)="sorting($event)"></taskana-sort>
|
<taskana-sort (performSorting)="sorting($event)"></taskana-sort>
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ import {ClassificationDefinition} from '../../models/classification-definition';
|
||||||
import {AlertModel, AlertType} from '../../models/alert';
|
import {AlertModel, AlertType} from '../../models/alert';
|
||||||
import {saveAs} from 'file-saver/FileSaver';
|
import {saveAs} from 'file-saver/FileSaver';
|
||||||
import {TaskanaDate} from '../../shared/util/taskana.date';
|
import {TaskanaDate} from '../../shared/util/taskana.date';
|
||||||
|
import {ErrorModel} from '../../models/modal-error';
|
||||||
|
import {ErrorModalService} from '../errorModal/error-modal.service';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ClassificationDefinitionService {
|
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
|
// GET
|
||||||
|
|
@ -38,7 +41,8 @@ export class ClassificationDefinitionService {
|
||||||
this.httpClient.post(this.url + '/import',
|
this.httpClient.post(this.url + '/import',
|
||||||
JSON.parse(classifications), this.httpOptions).subscribe(
|
JSON.parse(classifications), this.httpOptions).subscribe(
|
||||||
classificationsUpdated => this.alertService.triggerAlert(new AlertModel(AlertType.SUCCESS, 'Import was successful')),
|
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))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ export class DomainService {
|
||||||
constructor(private httpClient: HttpClient) {
|
constructor(private httpClient: HttpClient) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO how to enable hateoas support?
|
|
||||||
// GET
|
// GET
|
||||||
getDomains(): Observable<string[]> {
|
getDomains(): Observable<string[]> {
|
||||||
return this.httpClient.get<string[]>(this.url, this.httpOptions);
|
return this.httpClient.get<string[]>(this.url, this.httpOptions);
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ import {AlertService} from '../alert/alert.service';
|
||||||
import {WorkbasketDefinition} from '../../models/workbasket-definition';
|
import {WorkbasketDefinition} from '../../models/workbasket-definition';
|
||||||
import {AlertModel, AlertType} from '../../models/alert';
|
import {AlertModel, AlertType} from '../../models/alert';
|
||||||
import {TaskanaDate} from '../../shared/util/taskana.date';
|
import {TaskanaDate} from '../../shared/util/taskana.date';
|
||||||
|
import {ErrorModel} from '../../models/modal-error';
|
||||||
|
import {ErrorModalService} from '../errorModal/error-modal.service';
|
||||||
|
|
||||||
|
|
||||||
@Injectable()
|
@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
|
// GET
|
||||||
|
|
@ -35,12 +38,12 @@ export class WorkbasketDefinitionService {
|
||||||
}
|
}
|
||||||
|
|
||||||
// POST
|
// POST
|
||||||
// TODO handle error
|
|
||||||
importWorkbasketDefinitions(workbasketDefinitions: any) {
|
importWorkbasketDefinitions(workbasketDefinitions: any) {
|
||||||
this.httpClient.post(environment.taskanaRestUrl + '/v1/workbasketdefinitions/import',
|
this.httpClient.post(environment.taskanaRestUrl + '/v1/workbasketdefinitions/import',
|
||||||
JSON.parse(workbasketDefinitions), this.httpOptions).subscribe(
|
JSON.parse(workbasketDefinitions), this.httpOptions).subscribe(
|
||||||
workbasketsUpdated => this.alertService.triggerAlert(new AlertModel(AlertType.SUCCESS, 'Import was successful')),
|
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))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ import {WorkbasketDefinitionService} from '../../services/workbasket-definition/
|
||||||
import {AlertService} from '../../services/alert/alert.service';
|
import {AlertService} from '../../services/alert/alert.service';
|
||||||
import {HttpClientModule} from '@angular/common/http';
|
import {HttpClientModule} from '@angular/common/http';
|
||||||
import {DomainService} from '../../services/domains/domain.service';
|
import {DomainService} from '../../services/domains/domain.service';
|
||||||
|
import {Observable} from 'rxjs/Observable';
|
||||||
|
import {ErrorModalService} from '../../services/errorModal/error-modal.service';
|
||||||
|
|
||||||
describe('ImportExportComponent', () => {
|
describe('ImportExportComponent', () => {
|
||||||
let component: ImportExportComponent;
|
let component: ImportExportComponent;
|
||||||
|
|
@ -17,7 +19,8 @@ describe('ImportExportComponent', () => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
declarations: [ImportExportComponent],
|
declarations: [ImportExportComponent],
|
||||||
imports: [HttpClientModule],
|
imports: [HttpClientModule],
|
||||||
providers: [WorkbasketService, ClassificationDefinitionService, WorkbasketDefinitionService, AlertService, DomainService]
|
providers: [WorkbasketService, ClassificationDefinitionService, WorkbasketDefinitionService, AlertService, DomainService,
|
||||||
|
ErrorModalService]
|
||||||
})
|
})
|
||||||
.compileComponents();
|
.compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
@ -25,7 +28,6 @@ describe('ImportExportComponent', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
fixture = TestBed.createComponent(ImportExportComponent);
|
fixture = TestBed.createComponent(ImportExportComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
domainService = TestBed.get(DomainService);
|
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -33,4 +35,10 @@ describe('ImportExportComponent', () => {
|
||||||
expect(component).toBeTruthy();
|
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();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ export class ImportExportComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
onSelectFile(event) {
|
onSelectFile(event) {
|
||||||
const file = event.srcElement.files[0];
|
const file = event.target.files[0];
|
||||||
const reader = new FileReader();
|
const reader = new FileReader();
|
||||||
if (this.currentSelection === ImportType.WORKBASKETS) {
|
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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue