Show Templates popup when deploying from "SDC Catalog"
[vid.git] / vid-webpack-master / src / app / shared / components / genericFormPopup / instantiationTemplatesModal / instantiation.templates.modal.component.ts
1 import {Component, OnDestroy, OnInit} from "@angular/core";
2 import {DialogComponent, DialogService} from "ng2-bootstrap-modal";
3 import {IframeService} from "../../../utils/iframe.service";
4 import {ActivatedRoute} from "@angular/router";
5 import {ServiceInfoService} from "../../../server/serviceInfo/serviceInfo.service";
6 import {InstantiationTemplatesModalService} from "./instantiation.templates.modal.service";
7 import {InstantiationTemplatesRowModel} from "./instantiation.templates.row.model";
8 import {DrawingBoardModes} from "../../../../drawingBoard/service-planning/drawing-board.modes";
9 import {InstantiationStatusComponentService} from "../../../../instantiationStatus/instantiationStatus.component.service";
10 import {AaiService} from "../../../services/aaiService/aai.service";
11 import {NgRedux} from "@angular-redux/store";
12 import {AppState} from "../../../store/reducers";
13 import * as _ from 'lodash';
14 import {forkJoin} from "rxjs";
15 @Component({
16   selector: 'template-modal',
17   templateUrl: 'instantiation.templates.modal.component.html',
18   styleUrls: ['instantiation.templates.modal.component.scss']
19 })
20
21 export class InstantiationTemplatesModalComponent extends DialogComponent<string, boolean> implements OnInit, OnDestroy {
22
23   selectedInstantiation: InstantiationTemplatesRowModel = null;
24   templateModalComponentService: InstantiationTemplatesModalService;
25   originalTableData: InstantiationTemplatesRowModel[] = [];
26   filterTableData : InstantiationTemplatesRowModel[] = [];
27   filterText: string;
28   filterByUserId: boolean = false;
29
30   constructor(dialogService: DialogService,
31               private _iframeService: IframeService,
32               private _serviceInfoService: ServiceInfoService,
33               private _templateModalComponentService: InstantiationTemplatesModalService,
34               private _instantiationStatusComponentService: InstantiationStatusComponentService,
35               private _aaiService: AaiService,
36               private _store : NgRedux<AppState>,
37               private _route: ActivatedRoute) {
38     super(dialogService);
39     this.templateModalComponentService = _templateModalComponentService;
40   }
41
42   ngOnInit(): void {
43     this.filterText = '';
44     this._route
45       .queryParams
46       .subscribe(params => {
47
48         const getServiceJobInfoRoute = this._serviceInfoService.getTemplatesInfo(true, params['serviceModelId']);
49         const getUserIdRoute = this._aaiService.getUserId();
50
51         forkJoin([getServiceJobInfoRoute, getUserIdRoute]).subscribe(([jobs]) => {
52           this.originalTableData = this._templateModalComponentService.convertResponseToUI(jobs);
53           this.filterTableData = this.originalTableData;
54         });
55       });
56   }
57
58   loadTemplate = () => {
59     this._instantiationStatusComponentService.navigateToNewViewEdit(this.selectedInstantiation, DrawingBoardModes.RECREATE)
60   };
61
62   filterByUserIdChanged = (value : boolean) : void => {
63     this.filterByUserId = value;
64     const userId: string = this._store.getState().service['userId'];
65     if(!_.isNil(userId)){
66       this.filterTableData = this.filterByUserId ? this._templateModalComponentService.filterByUserId(userId, this.originalTableData) : this.originalTableData;
67     }
68   };
69
70   closeModal(): void {
71     this._iframeService.closeIframe(this.dialogService, this);
72   }
73 }