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',
 
  23   SDN_C_PRE_LOAD = 'sdncPreLoad',
 
  27 export class VfModuleUpgradePopupService extends VfModulePopupServiceBase {
 
  28   constructor(protected _basicControlGenerator: BasicControlGenerator,
 
  29               protected _vfModuleControlGenerator: VfModuleControlGenerator,
 
  30               protected _iframeService: IframeService,
 
  31               protected _defaultDataGeneratorService: DefaultDataGeneratorService,
 
  32               protected _aaiService: AaiService,
 
  33               protected _basicPopupService: BasicPopupService,
 
  34               protected _store: NgRedux<AppState>,
 
  35               private _sharedTreeService: SharedTreeService) {
 
  36     super(_basicControlGenerator, _vfModuleControlGenerator, _iframeService, _defaultDataGeneratorService, _aaiService, _basicPopupService, _store);
 
  41   getDynamicInputs = () => null;
 
  43   getControls(serviceId: string, vnfStoreKey: string, vfModuleStoreKey: string, isUpdateMode: boolean)  {
 
  44     let result: FormControlModel[] =[
 
  45       this.getRetainAssignmentsControl(),
 
  46       this.getRetainVolumeGroupsControl(),
 
  47       this._basicControlGenerator.getSDNCControl(null)
 
  50     const vfModuleInstance = this._vfModuleControlGenerator.getVfModuleInstance(serviceId, vnfStoreKey, this.uuidData, isUpdateMode);
 
  51     result = this._basicControlGenerator.concatSupplementaryFile(result, vfModuleInstance);
 
  55   getTitle = (): string => 'Upgrade Module';
 
  57   onSubmit(that, form: FormGroup) {
 
  58     const node = that.uuidData.vfModule;
 
  59     const serviceInstanceId: string = that.uuidData.serviceId;
 
  60     const vnfStoreKey = node.parent.data.vnfStoreKey;
 
  61     const modelName = node.data.modelName;
 
  62     const dynamicModelName = node.data.dynamicModelName;
 
  64     this.updateFormValueWithSupplementaryFile(form, that);
 
  66     this._store.dispatch(upgradeVFModule(modelName, vnfStoreKey, serviceInstanceId, dynamicModelName));
 
  67     this._store.dispatch(mergeObjectByPathAction(['serviceInstance', serviceInstanceId, 'vnfs', vnfStoreKey, 'vfModules', modelName, dynamicModelName], form.value));
 
  68     this._sharedTreeService.upgradeBottomUp(node, serviceInstanceId);
 
  70     this.postSubmitIframeMessage(that);
 
  71     this.onCancel(that, form);
 
  74   getRetainVolumeGroupsControl = (): CheckboxFormControl => {
 
  75     return new CheckboxFormControl({
 
  76       type: FormControlType.CHECKBOX,
 
  77       controlName: UpgradeFormControlNames.RETAIN_VOLUME_GROUPS,
 
  78       displayName: 'Retain Volume Groups',
 
  79       dataTestId: UpgradeFormControlNames.RETAIN_VOLUME_GROUPS,
 
  85   getRetainAssignmentsControl = (): CheckboxFormControl => {
 
  86     return new CheckboxFormControl({
 
  87       type: FormControlType.CHECKBOX,
 
  88       controlName: UpgradeFormControlNames.RETAIN_ASSIGNMENTS,
 
  89       displayName: 'Retain Assignments',
 
  90       dataTestId: UpgradeFormControlNames.RETAIN_ASSIGNMENTS,