1 import {Injectable} from "@angular/core";
2 import {ITreeNode} from "angular-tree-component/dist/defs/api";
3 import {FormGroup} from "@angular/forms";
4 import {VfModulePopupServiceBase} from "../vfModule/vfModule.popuop.service";
5 import {upgradeVFModule} from "../../../../storeUtil/utils/vfModule/vfModule.actions";
6 import {SharedTreeService} from "../../../../../drawingBoard/service-planning/objectsToTree/shared.tree.service";
7 import {NgRedux} from "@angular-redux/store";
8 import {AppState} from "../../../../store/reducers";
9 import {BasicControlGenerator} from "../../../genericForm/formControlsServices/basic.control.generator";
10 import {VfModuleControlGenerator} from "../../../genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator";
11 import {IframeService} from "../../../../utils/iframe.service";
12 import {DefaultDataGeneratorService} from "../../../../services/defaultDataServiceGenerator/default.data.generator.service";
13 import {AaiService} from "../../../../services/aaiService/aai.service";
14 import {BasicPopupService} from "../basic.popup.service";
15 import {FormControlModel} from "../../../../models/formControlModels/formControl.model";
16 import {CheckboxFormControl} from "../../../../models/formControlModels/checkboxFormControl.model";
17 import {FormControlType} from "../../../../models/formControlModels/formControlTypes.enum";
18 import {mergeObjectByPathAction} from "../../../../storeUtil/utils/general/general.actions";
20 export enum UpgradeFormControlNames {
21 RETAIN_VOLUME_GROUPS = 'retainVolumeGroups',
22 RETAIN_ASSIGNMENTS = 'retainAssignments',
26 export class VfModuleUpgradePopupService extends VfModulePopupServiceBase {
27 constructor(protected _basicControlGenerator: BasicControlGenerator,
28 protected _vfModuleControlGenerator: VfModuleControlGenerator,
29 protected _iframeService: IframeService,
30 protected _defaultDataGeneratorService: DefaultDataGeneratorService,
31 protected _aaiService: AaiService,
32 protected _basicPopupService : BasicPopupService,
33 protected _store: NgRedux<AppState>,
34 private _sharedTreeService : SharedTreeService){
35 super(_basicControlGenerator, _vfModuleControlGenerator, _iframeService, _defaultDataGeneratorService, _aaiService, _basicPopupService,_store);
39 getDynamicInputs = () => null;
41 getControls(serviceId: string, vnfStoreKey: string, vfModuleStoreKey: string, isUpdateMode: boolean) {
42 let result: FormControlModel[] = [];
43 result.push(this.getRetainVolumeGroupsControl());
44 result.push(this.getRetainAssignmentsControl());
48 getTitle = (): string => 'Upgrade Module';
50 onSubmit(that, form: FormGroup) {
51 const node = that.uuidData.vfModule;
52 const serviceInstanceId: string = that.uuidData.serviceId;
53 const vnfStoreKey = node.parent.data.vnfStoreKey;
54 const modelName = node.data.modelName;
55 const dynamicModelName = node.data.dynamicModelName;
57 this._store.dispatch(upgradeVFModule(modelName, vnfStoreKey, serviceInstanceId ,dynamicModelName));
58 this._store.dispatch(mergeObjectByPathAction(['serviceInstance',serviceInstanceId, 'vnfs', vnfStoreKey, 'vfModules', modelName, dynamicModelName], form.value));
59 this._sharedTreeService.upgradeBottomUp(node, serviceInstanceId);
61 this.postSubmitIframeMessage(that);
62 this.onCancel(that, form);
65 getRetainVolumeGroupsControl = (): CheckboxFormControl => {
66 return new CheckboxFormControl({
67 type: FormControlType.CHECKBOX,
68 controlName: UpgradeFormControlNames.RETAIN_VOLUME_GROUPS,
69 displayName: 'Retain Volume Groups',
70 dataTestId: UpgradeFormControlNames.RETAIN_VOLUME_GROUPS,
76 getRetainAssignmentsControl = (): CheckboxFormControl => {
77 return new CheckboxFormControl({
78 type: FormControlType.CHECKBOX,
79 controlName: UpgradeFormControlNames.RETAIN_ASSIGNMENTS,
80 displayName: 'Retain Assignments',
81 dataTestId: UpgradeFormControlNames.RETAIN_ASSIGNMENTS,