1 import {Injectable} from "@angular/core";
2 import {ITreeNode} from "angular-tree-component/dist/defs/api";
3 import {FormGroup} from "@angular/forms";
4 import {VfModulePopuopService} from "../vfModule/vfModule.popuop.service";
5 import {FormPopupDetails} from "../../../../models/formControlModels/formPopupDetails.model";
6 import {updateVFModuleField, upgradeVFModule} from "../../../../storeUtil/utils/vfModule/vfModule.actions";
7 import {SharedTreeService} from "../../../../../drawingBoard/service-planning/objectsToTree/shared.tree.service";
8 import {NgRedux} from "@angular-redux/store";
9 import {AppState} from "../../../../store/reducers";
10 import {BasicControlGenerator} from "../../../genericForm/formControlsServices/basic.control.generator";
11 import {VfModuleControlGenerator} from "../../../genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator";
12 import {IframeService} from "../../../../utils/iframe.service";
13 import {DefaultDataGeneratorService} from "../../../../services/defaultDataServiceGenerator/default.data.generator.service";
14 import {AaiService} from "../../../../services/aaiService/aai.service";
15 import {BasicPopupService} from "../basic.popup.service";
18 } from "../../../../models/formControlModels/formControl.model";
19 import {CheckboxFormControl} from "../../../../models/formControlModels/checkboxFormControl.model";
20 import {FormControlType} from "../../../../models/formControlModels/formControlTypes.enum";
23 export class VfModuleUpgradePopupService extends VfModulePopuopService {
24 constructor(protected _basicControlGenerator: BasicControlGenerator,
25 protected _vfModuleControlGenerator: VfModuleControlGenerator,
26 protected _iframeService: IframeService,
27 protected _defaultDataGeneratorService: DefaultDataGeneratorService,
28 protected _aaiService: AaiService,
29 protected _basicPopupService : BasicPopupService,
30 protected _store: NgRedux<AppState>,
31 private _sharedTreeService : SharedTreeService){
32 super(_basicControlGenerator, _vfModuleControlGenerator, _iframeService, _defaultDataGeneratorService, _aaiService, _basicPopupService,_store);
36 getGenericFormPopupDetails(serviceId: string, vnfStoreKey: string, vfModuleStoreKey: string, node: ITreeNode, uuidData: Object, isUpdateMode: boolean): FormPopupDetails {
37 return super.getGenericFormPopupDetails(serviceId, vnfStoreKey, vfModuleStoreKey, node, uuidData, isUpdateMode);
40 getDynamicInputs = () => [];
42 getControls = () : FormControlModel[] => {
44 new CheckboxFormControl({
45 type: FormControlType.CHECKBOX,
46 controlName: 'retainAssignments',
47 displayName: 'Retain Assignments',
48 dataTestId: 'retainAssignments',
56 getTitle = (): string => 'Upgrade Module';
58 onSubmit(that, form: FormGroup) {
59 const node = that.uuidData.vfModule;
60 const serviceInstanceId: string = that.uuidData.serviceId;
62 this._store.dispatch(upgradeVFModule(node.data.modelName, node.parent.data.vnfStoreKey, serviceInstanceId ,node.data.dynamicModelName));
63 this._sharedTreeService.upgradeBottomUp(node, serviceInstanceId);
64 this._store.dispatch(updateVFModuleField(node.data.modelName, node.parent.data.vnfStoreKey, serviceInstanceId ,node.data.dynamicModelName, 'retainAssignments', form.controls['retainAssignments'].value));
66 this.postSubmitIframeMessage(that);
67 this.onCancel(that, form);