Show Templates popup when deploying from "SDC Catalog"
[vid.git] / vid-webpack-master / src / app / shared / components / genericFormPopup / generic-form-popup.service.ts
1 import {Injectable} from "@angular/core";
2 import {IframeService} from "../../utils/iframe.service";
3 import {NgRedux} from "@angular-redux/store";
4 import {AppState} from "../../store/reducers";
5 import {ServicePopupService} from "./genericFormServices/service/service.popup.service";
6 import {ActivatedRoute} from "@angular/router";
7 import {AaiService} from "../../services/aaiService/aai.service";
8 import {ITreeNode} from "angular-tree-component/dist/defs/api";
9 import {UUIDData} from "./generic-form-popup.component";
10 import {FormPopupDetails} from "../../models/formControlModels/formPopupDetails.model";
11 import {Subject} from "rxjs";
12 import {deleteAllServiceInstances} from "../../storeUtil/utils/service/service.actions";
13
14 @Injectable()
15 export class GenericFormPopupService {
16   constructor(private _iframeService : IframeService,
17               private _store: NgRedux<AppState>,
18               private _servicePopupService : ServicePopupService,
19               public _activatedRoute : ActivatedRoute,
20               private _aaiService : AaiService){
21
22   }
23   getGenericFormDetails(uuidData : UUIDData, node : ITreeNode, isUpdateMode : boolean) : FormPopupDetails {
24     switch (uuidData.type){
25       case 'VL' : {
26         return uuidData.popupService.getGenericFormPopupDetails(
27           uuidData['serviceId'],
28           uuidData['networkId'],
29           uuidData['networkStoreKey'],
30           node,
31           uuidData,
32           isUpdateMode
33         );
34       }
35       case 'VFmodule' : {
36         return uuidData.popupService.getGenericFormPopupDetails(
37           uuidData['serviceId'],
38           uuidData['vnfStoreKey'],
39           uuidData['vFModuleStoreKey'],
40           node,
41           uuidData,
42           isUpdateMode
43         );
44       }
45       case 'VF' : {
46         return uuidData.popupService.getGenericFormPopupDetails(
47           uuidData['serviceId'],
48           uuidData['modelName'],
49           uuidData['vnfStoreKey'],
50           node,
51           uuidData,
52           isUpdateMode
53         );
54       }
55       case 'VnfGroup' : {
56         return uuidData.popupService.getGenericFormPopupDetails(
57           uuidData['serviceId'],
58           uuidData['modelName'],
59           uuidData['vnfGroupStoreKey'],
60           node,
61           uuidData,
62           isUpdateMode
63         );
64       }
65       case 'service' : {
66         uuidData['bulkSize'] = this._store.getState().service.serviceInstance[uuidData['serviceId']].bulkSize || 1;
67         return uuidData.popupService.getGenericFormPopupDetails(
68           uuidData['serviceId'],
69           null,
70           null,
71           node,
72           uuidData,
73           isUpdateMode
74         );
75       }
76     }
77   }
78
79   initReduxOnCreateNewService() : Promise<string> {
80     return new Promise((resolve, reject) => {
81       this._activatedRoute
82         .queryParams
83         .subscribe(params => {
84           this._store.dispatch(deleteAllServiceInstances());
85           this._aaiService.getServiceModelById(params.serviceModelId).subscribe(()=>{
86             resolve(params.serviceModelId);
87           });
88       });
89     });
90   }
91
92   refreshModalCheckForGeneralErrorTrigger : Subject<boolean> = new Subject<boolean>();
93 }