diff options
author | Yoav Schneiderman <yoav.schneiderman@intl.att.com> | 2019-12-18 21:04:38 +0200 |
---|---|---|
committer | Yoav Schneiderman <yoav.schneiderman@intl.att.com> | 2019-12-22 14:01:45 +0200 |
commit | 4c87ecaa8cce40f078f8540a15928e7e805e4ef7 (patch) | |
tree | f31c55200451d13f108c8583b8d275ae7a7c8bab /vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator.ts | |
parent | 54af5cdca044c7b486f02f4163d16c39e990f701 (diff) |
Refactor Generic Generators
Issue-ID: VID-731
Signed-off-by: Yoav Schneiderman <yoav.schneiderman@intl.att.com>
Change-Id: Ib851ff4056d64e12eaf415c5d689c832196ec8b0
Signed-off-by: Yoav Schneiderman <yoav.schneiderman@intl.att.com>
Diffstat (limited to 'vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator.ts')
-rw-r--r-- | vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator.ts | 137 |
1 files changed, 14 insertions, 123 deletions
diff --git a/vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator.ts b/vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator.ts index 011f43447..60ffc3e96 100644 --- a/vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator.ts +++ b/vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator.ts @@ -3,10 +3,7 @@ import {GenericFormService} from "../../generic-form.service"; import {AaiService} from "../../../../services/aaiService/aai.service"; import {NgRedux} from "@angular-redux/store"; import {HttpClient} from "@angular/common/http"; -import {BasicControlGenerator} from "../basic.control.generator"; -import * as _ from 'lodash'; -import {Observable, of} from "rxjs"; - +import {ControlGeneratorUtil} from "../control.generator.util.service"; import { CustomValidatorOptions, FormControlModel, @@ -16,19 +13,13 @@ import { import {LogService} from "../../../../utils/log/log.service"; import {AppState} from "../../../../store/reducers"; import {FormGroup} from "@angular/forms"; -import {DropdownFormControl} from "../../../../models/formControlModels/dropdownFormControl.model"; -import {FormControlType} from "../../../../models/formControlModels/formControlTypes.enum"; import {InputFormControl} from "../../../../models/formControlModels/inputFormControl.model"; -import {SelectOption} from "../../../../models/selectOption"; import {VfModuleInstance} from "../../../../models/vfModuleInstance"; import {VfModule} from "../../../../models/vfModule"; import {VNFModel} from "../../../../models/vnfModel"; import {VnfInstance} from "../../../../models/vnfInstance"; -import {FileFormControl} from "../../../../models/formControlModels/fileFormControl.model"; -import {CheckboxFormControl} from "../../../../models/formControlModels/checkboxFormControl.model"; -import {FileUnit} from "../../../formControls/component/file/fileUnit.enum"; -import {Constants} from "../../../../utils/constants"; - +import * as _ from 'lodash'; +import {SharedControllersService} from "../sharedControlles/shared.controllers.service"; export enum FormControlNames { INSTANCE_NAME = 'instanceName', @@ -47,7 +38,8 @@ export class VfModuleControlGenerator { isUpdateMode : boolean; constructor(private genericFormService: GenericFormService, - private _basicControlGenerator: BasicControlGenerator, + private _basicControlGenerator: ControlGeneratorUtil, + private _sharedControllersService: SharedControllersService, private store: NgRedux<AppState>, private http: HttpClient, private _aaiService: AaiService, @@ -55,17 +47,6 @@ export class VfModuleControlGenerator { this.aaiService = _aaiService; } - setVFModuleStoreKey = (serviceId: string, vfModuleUuid: string) => { - const vfModules = this.store.getState().service.serviceHierarchy[serviceId].vfModules; - const vfModulesKeys = Object.keys(vfModules); - for(let key of vfModulesKeys){ - if(vfModules[key].uuid === vfModuleUuid){ - return; - } - } - }; - - getVfModuleInstance = (serviceId: string, vnfStoreKey: string, UUIDData: Object, isUpdateMode: boolean): VfModuleInstance => { let vfModuleInstance: VfModuleInstance = null; if (isUpdateMode && this.store.getState().service.serviceInstance[serviceId] && @@ -133,11 +114,11 @@ export class VfModuleControlGenerator { const vfModuleInstance = this._basicControlGenerator.retrieveInstanceIfUpdateMode(this.store, this.getVfModuleInstance(serviceId, vnfStoreKey, uuidData, isUpdateMode)); let result: FormControlModel[] = []; this.pushInstanceAndVGToForm(result, vfModuleInstance, serviceId, vnfModel, true); - result.push(this.getLcpRegionControl(serviceId, vfModuleInstance, result)); - result.push(this._basicControlGenerator.getLegacyRegion(vfModuleInstance)); - result.push(this.getTenantControl(serviceId, vfModuleInstance, result)); - result.push(this.getRollbackOnFailureControl(vfModuleInstance, result)); - result.push(this._basicControlGenerator.getSDNCControl(vfModuleInstance)); + result.push(this._sharedControllersService.getLcpRegionControl(serviceId, vfModuleInstance, result)); + result.push(this._sharedControllersService.getLegacyRegion(vfModuleInstance)); + result.push(this._sharedControllersService.getTenantControl(serviceId, vfModuleInstance)); + result.push(this._sharedControllersService.getRollbackOnFailureControl(vfModuleInstance)); + result.push(this._sharedControllersService.getSDNCControl(vfModuleInstance)); if(this.store.getState().global.flags['FLAG_SUPPLEMENTARY_FILE']) { result = this._basicControlGenerator.concatSupplementaryFile(result, vfModuleInstance); } @@ -145,7 +126,7 @@ export class VfModuleControlGenerator { } getInstanceName(instance: any, serviceId: string, isEcompGeneratedNaming: boolean): FormControlModel { - let formControlModel:FormControlModel = this._basicControlGenerator.getInstanceNameController(instance, serviceId, isEcompGeneratedNaming, this.vfModuleModel); + let formControlModel:FormControlModel = this._sharedControllersService.getInstanceNameController(instance, serviceId, isEcompGeneratedNaming, this.vfModuleModel); formControlModel.onBlur = (event, form : FormGroup) => { if(!_.isNil(form.controls['volumeGroupName'])&& event.target.value.length > 0){ form.controls['volumeGroupName'].setValue(event.target.value + "_vol"); @@ -167,25 +148,21 @@ export class VfModuleControlGenerator { getVolumeGroupData(instance: any, serviceId: string, isEcompGeneratedNaming: boolean, isALaCarte: boolean): FormControlModel { let validations: ValidatorModel[] = [ - new ValidatorModel(ValidatorOptions.pattern, 'Instance name may include only alphanumeric characters and underscore.', BasicControlGenerator.INSTANCE_NAME_REG_EX), + new ValidatorModel(ValidatorOptions.pattern, 'Instance name may include only alphanumeric characters and underscore.', ControlGeneratorUtil.INSTANCE_NAME_REG_EX), new ValidatorModel(CustomValidatorOptions.uniqueInstanceNameValidator, 'Volume Group instance name is already in use, please pick another name', [this.store, serviceId, instance && instance.volumeGroupName]) ]; - // comment out because if not provided vid won't create VG - // if (!isEcompGeneratedNaming) { - // validations.push(new ValidatorModel(ValidatorOptions.required, 'is required')); - // } + return new InputFormControl({ controlName: 'volumeGroupName', displayName: 'Volume Group Name', dataTestId: 'volumeGroupName', - // placeHolder: (!isEcompGeneratedNaming) ? 'Volume Group Name' : 'Automatically generated when not provided', validations: validations, tooltip : 'When filled, VID will create a Volume Group by this name and associate with this module.\n' + 'When empty, the module is created without a Volume Group.', isVisible: this.shouldVGNameBeVisible(isEcompGeneratedNaming,isALaCarte), value: this.getDefaultVolumeGroupName(instance, isEcompGeneratedNaming), onKeypress: (event) => { - const pattern:RegExp = BasicControlGenerator.INSTANCE_NAME_REG_EX; + const pattern:RegExp = ControlGeneratorUtil.INSTANCE_NAME_REG_EX; if (pattern) { if (!pattern.test(event['key'])) { event.preventDefault(); @@ -203,90 +180,4 @@ export class VfModuleControlGenerator { return false; } - - getTenantControl = (serviceId: string, instance: any, controls: FormControlModel[]): DropdownFormControl => { - const service = this.store.getState().service.serviceInstance[serviceId]; - const globalCustomerId: string = service.globalSubscriberId; - const serviceType: string = service.subscriptionServiceType; - return new DropdownFormControl({ - type: FormControlType.DROPDOWN, - controlName: FormControlNames.TENANT_ID, - displayName: 'Tenant', - dataTestId: 'tenant', - placeHolder: 'Select Tenant', - name: "tenant", - isDisabled: _.isNil(instance) || _.isNil(instance.lcpCloudRegionId), - onInitSelectedField: instance ? ['lcpRegionsTenantsMap', instance.lcpCloudRegionId] : null, - value: instance ? instance.tenantId : null, - validations: [new ValidatorModel(ValidatorOptions.required, 'is required')], - onInit: instance ? this._basicControlGenerator.getSubscribeInitResult.bind( - this._aaiService, - this.aaiService.getLcpRegionsAndTenants.bind(this, globalCustomerId, serviceType)) : () => { - }, - }) - }; - - getLcpRegionControl = (serviceId: string, instance: any, controls: FormControlModel[]): DropdownFormControl => { - const service = this.store.getState().service.serviceInstance[serviceId]; - const globalCustomerId: string = service.globalSubscriberId; - const serviceType: string = service.subscriptionServiceType; - return new DropdownFormControl({ - type: FormControlType.DROPDOWN, - controlName: 'lcpCloudRegionId', - displayName: 'LCP region', - dataTestId: 'lcpRegion', - placeHolder: 'Select LCP Region', - name: "lcpRegion", - isDisabled: false, - value: instance ? instance.lcpCloudRegionId : null, - validations: [new ValidatorModel(ValidatorOptions.required, 'is required')], - onInitSelectedField: ['lcpRegionList'], - onInit: this._basicControlGenerator.getSubscribeInitResult.bind( - this._aaiService, - this._aaiService.getLcpRegionsAndTenants.bind(this, globalCustomerId, serviceType)), - onChange: (param: string, form: FormGroup) => { - form.controls[FormControlNames.TENANT_ID].enable(); - form.controls[FormControlNames.TENANT_ID].reset(); - if (!_.isNil(globalCustomerId) && !_.isNil(serviceType)) { - this._basicControlGenerator.getSubscribeResult.bind(this, this._aaiService.getLcpRegionsAndTenants(globalCustomerId, serviceType).subscribe(res => { - controls.find(item => item.controlName === FormControlNames.TENANT_ID)['options$'] = res.lcpRegionsTenantsMap[param]; - if (res.lcpRegionsTenantsMap[param]) { - controls.find(item => item.controlName === FormControlNames.TENANT_ID)['hasEmptyOptions'] = res.lcpRegionsTenantsMap[param].length === 0; - } - })); - } - - if (Constants.LegacyRegion.MEGA_REGION.indexOf(param) !== -1) { - form.controls['legacyRegion'].enable(); - controls.find(item => item.controlName === 'legacyRegion').isVisible = true; - - } else { - controls.find(item => item.controlName === 'legacyRegion').isVisible = false; - form.controls['legacyRegion'].setValue(null); - form.controls['legacyRegion'].reset(); - form.controls['legacyRegion'].disable(); - } - } - }) - }; - - getRollbackOnFailureControl = (instance: any, controls: FormControlModel[]): DropdownFormControl => { - return new DropdownFormControl({ - type: FormControlType.DROPDOWN, - controlName: FormControlNames.ROLLBACK_ON_FAILURE, - displayName: 'Rollback on failure', - dataTestId: 'rollback', - isDisabled: false, - validations: [new ValidatorModel(ValidatorOptions.required, 'is required')], - value: instance ? instance.rollbackOnFailure : 'true', - onInit: this._basicControlGenerator.getSubscribeInitResult.bind(null, this.getRollBackOnFailureOptions) - }) - }; - - getRollBackOnFailureOptions = (): Observable<SelectOption[]> => { - return of([ - new SelectOption({id: 'true', name: 'Rollback'}), - new SelectOption({id: 'false', name: 'Don\'t Rollback'}) - ]); - }; } |