<button
[attr.data-tests-id]="'startFromScratchButton'"
type="button" class="btn btn-success submit startFromScratchButton"
- (click)="closeModal()"><span>Start from Scratch</span>
+ (click)="closeModalAndOpenNewServiceModal()"><span>Start from Scratch</span>
</button>
</div>
</div>
import {Component, OnDestroy, OnInit} from "@angular/core";
import {DialogComponent, DialogService} from "ng2-bootstrap-modal";
import {IframeService} from "../../../utils/iframe.service";
-import {ActivatedRoute} from "@angular/router";
+import {ActivatedRoute, Router} from "@angular/router";
import {ServiceInfoService} from "../../../server/serviceInfo/serviceInfo.service";
import {InstantiationTemplatesModalService} from "./instantiation.templates.modal.service";
import {InstantiationTemplatesRowModel} from "./instantiation.templates.row.model";
export class InstantiationTemplatesModalComponent extends DialogComponent<string, boolean> implements OnInit, OnDestroy {
+ serviceModelId: string = null;
selectedInstantiation: InstantiationTemplatesRowModel = null;
templateModalComponentService: InstantiationTemplatesModalService;
originalTableData: InstantiationTemplatesRowModel[] = [];
private _instantiationStatusComponentService: InstantiationStatusComponentService,
private _aaiService: AaiService,
private _store : NgRedux<AppState>,
+ private _router : Router,
private _route: ActivatedRoute) {
super(dialogService);
this.templateModalComponentService = _templateModalComponentService;
this._route
.queryParams
.subscribe(params => {
-
- const getServiceJobInfoRoute = this._serviceInfoService.getTemplatesInfo(true, params['serviceModelId']);
+ this.serviceModelId = params['serviceModelId'];
+ const getServiceJobInfoRoute = this._serviceInfoService.getTemplatesInfo(true, this.serviceModelId);
const getUserIdRoute = this._aaiService.getUserId();
forkJoin([getServiceJobInfoRoute, getUserIdRoute]).subscribe(([jobs]) => {
closeModal(): void {
this._iframeService.closeIframe(this.dialogService, this);
}
+
+
+ closeModalAndOpenNewServiceModal(): void {
+ this._templateModalComponentService.navigateToNewServiceModal(this.serviceModelId);
+ }
}
import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
import {InstantiationTemplatesModalService} from "./instantiation.templates.modal.service";
import {AaiService} from "../../../services/aaiService/aai.service";
-import {ActivatedRoute} from "@angular/router";
+import {ActivatedRoute, Router} from "@angular/router";
import {IframeService} from "../../../utils/iframe.service";
import {NgRedux} from "@angular-redux/store";
import {FeatureFlagsService} from "../../../services/featureFlag/feature-flags.service";
}
}
-class MockAppStore {
+//
-}
+
+class MockAppStore {}
describe('instantiation templates modal service', () => {
+ const serviceModelId :string = 'serviceModelId';
let injector;
let service: InstantiationTemplatesModalService;
let httpMock: HttpTestingController;
let _aaiService: AaiService;
let _activatedRoute: ActivatedRoute;
+ let _router : Router;
+
+
+
+ let router = {
+ navigate: jasmine.createSpy('navigate')
+ };
beforeAll(done => (async () => {
TestBed.configureTestingModule({
IframeService,
AaiService,
FeatureFlagsService,
+ { provide: Router, useValue: router },
{provide: ActivatedRoute, useClass: ActivatedRouteMock},
{provide: NgRedux, useClass: MockAppStore}
]
httpMock = injector.get(HttpTestingController);
_aaiService = injector.get(AaiService);
_activatedRoute = injector.get(ActivatedRoute);
+ _router = injector.get(Router);
})().then(done).catch(done.fail));
expect(result).toHaveLength(0);
});
+
+ test('navigateToNewServiceModal should navigate to new service modal', ()=>{
+
+ service.navigateToNewServiceModal(serviceModelId);
+
+ expect(_router.navigate).toBeCalledWith(["/servicePopup"], {"queryParams": {"isCreate": true, "serviceModelId": serviceModelId}, "queryParamsHandling": "merge"});
+ })
+
});
import {Injectable} from "@angular/core";
import {InstantiationTemplatesRowModel} from "./instantiation.templates.row.model";
+import {Router} from "@angular/router";
import * as _ from 'lodash';
@Injectable()
export class InstantiationTemplatesModalService {
+ constructor(private _router : Router){
+ }
convertResponseToUI = (jobsResponse: any[]): InstantiationTemplatesRowModel[] => {
let tableRows: InstantiationTemplatesRowModel[] = [];
return [];
};
+
+ navigateToNewServiceModal(serviceModelId: string) {
+ this._router.navigate(['/servicePopup'], { queryParams: { serviceModelId: serviceModelId, isCreate:true}, queryParamsHandling: 'merge' });
+ }
+
}
addClassOpenModal(elementClassName: string) {
const parentBodyElement = parent.document.getElementsByClassName(elementClassName)[0];
- if (parentBodyElement) {
+ if (parentBodyElement) {
parentBodyElement.classList.add("modal-open");
}
}
removeClassCloseModal(elementClassName: string) {
const parentBodyElement = parent.document.getElementsByClassName(elementClassName)[0];
- if (parentBodyElement) {
+ if (parentBodyElement) {
parentBodyElement.classList.remove("modal-open");
}
}
- closeIframe(dialogService : DialogService, that){
+ closeIframe(dialogService: DialogService, that) {
this.removeClassCloseModal('content');
dialogService.removeDialog(that);
setTimeout(() => {
}
- addFullScreen(){
- let parentBodyElement = parent.document.getElementsByClassName('service-model-content')[0];
- if (parentBodyElement) {
+
+ addFullScreen() {
+ let parentBodyElement = parent.document.getElementsByClassName('service-model-content')[0];
+ if (parentBodyElement) {
parentBodyElement.classList.add("full-screen");
}
}
- removeFullScreen(){
- let parentBodyElement = parent.document.getElementsByClassName('service-model-content')[0];
- if (parentBodyElement) {
+ removeFullScreen() {
+ let parentBodyElement = parent.document.getElementsByClassName('service-model-content')[0];
+ if (parentBodyElement) {
parentBodyElement.classList.remove("full-screen");
}
}