import {CheckboxFormControl} from "../../../../models/formControlModels/checkboxFormControl.model";
import {InputFormControl} from "../../../../models/formControlModels/inputFormControl.model";
import {NodeModel} from "../../../../models/nodeModel";
-import {LcpRegion} from "../../../../models/lcpRegion";
-import {Tenant} from "../../../../models/tenant";
import {MultiselectFormControl} from "../../../../models/formControlModels/multiselectFormControl.model";
import {MultiSelectItem} from "../../../formControls/component/multiselect/multiselect.model";
getLineOfBusinessControl = (instance?: any): DropdownFormControl => {
- return this.getLineOfBusinessControlInternal(undefined, instance);
- };
-
- getMultiSelectLineOfBusinessControl = (instance: any, isMultiSelected: boolean): MultiselectFormControl => {
- return this.getLobMultiselectControl(instance, isMultiSelected);
- };
-
- getLineOfBusinessByOwningEntityControl = (instance?: any, serviceId?: string, controls?: FormControlModel[]): DropdownFormControl => {
- const service = this._store.getState().service.serviceInstance[serviceId];
- const owningEntityName: string = service.owningEntityName;
-
- const changeLcpRegionOptionsOnChange = (lineOfBusinessNameParam: string, form: FormGroup) => {
- form.controls['lcpCloudRegionId'].enable();
- form.controls['lcpCloudRegionId'].reset();
- this._basicControlGenerator.getSubscribeInitResult(
- this._aaiService.getLcpRegionsByOwningEntityAndLineOfBusiness.bind(this, owningEntityName, lineOfBusinessNameParam),
- controls.find(item => item.controlName === 'lcpCloudRegionId') as DropdownFormControl, form
- ).subscribe()
- };
-
- return this.getLineOfBusinessControlInternal(changeLcpRegionOptionsOnChange, instance);
- };
-
- private getLineOfBusinessControlInternal = (onChange: Function, instance?: any): DropdownFormControl => {
return new DropdownFormControl({
type: FormControlType.DROPDOWN,
controlName: 'lineOfBusiness',
value: instance ? instance.lineOfBusiness : null,
validations: [new ValidatorModel(ValidatorOptions.required, 'is required')],
onInitSelectedField: ['lineOfBusinessList'],
- onChange,
onInit: this._basicControlGenerator.getSubscribeInitResult.bind(null, this._aaiService.getCategoryParameters)
})
};
+ getMultiSelectLineOfBusinessControl = (instance: any, isMultiSelected: boolean): MultiselectFormControl => {
+ return this.getLobMultiselectControl(instance, isMultiSelected);
+ };
+
getTenantControl = (serviceId: string, instance?: any): DropdownFormControl => {
const service = this._store.getState().service.serviceInstance[serviceId];
const globalCustomerId: string = service.globalSubscriberId;
const serviceType: string = service.subscriptionServiceType;
-
- const onInit = instance
- ? this._basicControlGenerator.getSubscribeInitResult.bind(
- this._aaiService,
- this._aaiService.getLcpRegionsAndTenants.bind(this, globalCustomerId, serviceType))
- : () => {};
- return this.getTenantControlInternal(onInit, instance);
- };
-
- getTenantByLcpRegionControl = (serviceId: string, instance?: any): DropdownFormControl => {
- return this.getTenantControlInternal(() => {}, instance);
- };
-
- private getTenantControlInternal = (onInit: Function, instance?: any): DropdownFormControl => {
return new DropdownFormControl({
type: FormControlType.DROPDOWN,
controlName: 'tenantId',
onInitSelectedField: instance ? ['lcpRegionsTenantsMap', instance.lcpCloudRegionId] : null,
value: instance ? instance.tenantId : null,
validations: [new ValidatorModel(ValidatorOptions.required, 'is required')],
- onInit,
+ onInit: instance ? this._basicControlGenerator.getSubscribeInitResult.bind(
+ this._aaiService,
+ this._aaiService.getLcpRegionsAndTenants.bind(this, globalCustomerId, serviceType)) : () => {
+ }
})
};
const service = this._store.getState().service.serviceInstance[serviceId];
const globalCustomerId: string = service.globalSubscriberId;
const serviceType: string = service.subscriptionServiceType;
-
- const onInit = this._basicControlGenerator.getSubscribeInitResult.bind(
- this._aaiService,
- this._aaiService.getLcpRegionsAndTenants.bind(this, globalCustomerId, serviceType)
- );
-
- const changeTenantsOptionsByServiceTypeOnChange = (
- (globalCustomerId, serviceType, lcpCloudRegionIdParam) => {
- if (!_.isNil(globalCustomerId) && !_.isNil(serviceType)) {
- this._basicControlGenerator.getSubscribeResult.bind(this,
- this._aaiService.getLcpRegionsAndTenants(globalCustomerId, serviceType)
- .subscribe(res => this.setTenantsOptions(controls, res.lcpRegionsTenantsMap[lcpCloudRegionIdParam])));
- }
-
- }
- ).bind(this, globalCustomerId, serviceType);
-
- return this.getLcpRegionControlInternal(instance, controls,
- false, onInit, ['lcpRegionList'], changeTenantsOptionsByServiceTypeOnChange)
- };
-
- getLcpRegionByLineOfBusinessControl = (serviceId: string, instance: any, controls: FormControlModel[]): DropdownFormControl => {
- const service = this._store.getState().service.serviceInstance[serviceId];
- const owningEntityName: string = service.owningEntityName;
-
- const changeTenantsOptions = (controls: FormControlModel[], cloudRegionId, lcpRegionList: LcpRegion[]) => {
- const lcpRegionOption = (_.isNil(lcpRegionList) || _.isNil(cloudRegionId))
- ? null : lcpRegionList.find(({id}) => id === cloudRegionId);
-
- if (!_.isNil(lcpRegionOption)) {
- this._aaiService.getTenantsByCloudOwnerAndCloudRegionId(lcpRegionOption.cloudOwner, lcpRegionOption.id)
- .subscribe(res => this.setTenantsOptions(controls, res));
- }
- };
-
- const lcpRegionOptionsList = (controls: FormControlModel[]): LcpRegion[] => {
- const lcpCloudRegionIdControl = _.isNil(controls)
- ? null : controls.find(({controlName}) => controlName === 'lcpCloudRegionId');
-
- return _.isNil(lcpCloudRegionIdControl) ? null : lcpCloudRegionIdControl['options$'];
- };
-
- const loadLcpRegionOptionsOnInit = (_.isNil(instance) || _.isNil(instance.lineOfBusiness))
- ? () => {}
- : this._basicControlGenerator.getSubscribeInitResult.bind(
- this, () => {
- return this._aaiService.getLcpRegionsByOwningEntityAndLineOfBusiness(owningEntityName, instance.lineOfBusiness)
- .do(res => changeTenantsOptions(controls, instance.lcpCloudRegionId, res));
- }
- );
-
- const changeTenantsOptionsByCloudRegionIdOnChange = (
- (controls, lcpCloudRegionIdParam) => changeTenantsOptions(controls, lcpCloudRegionIdParam, lcpRegionOptionsList(controls))
- ).bind(this, controls);
-
- return this.getLcpRegionControlInternal(instance, controls,
- _.isNil(instance) || _.isNil(instance.lineOfBusiness),
- loadLcpRegionOptionsOnInit, null, changeTenantsOptionsByCloudRegionIdOnChange
- )
- };
-
- private getLcpRegionControlInternal = (instance: any, controls: FormControlModel[], isDisabled: boolean,
- onInit: Function, onInitSelectedField: string[], changeTenantsOptionsOnChange: Function
- ): DropdownFormControl => {
return new DropdownFormControl({
type: FormControlType.DROPDOWN,
controlName: 'lcpCloudRegionId',
dataTestId: 'lcpRegion',
placeHolder: 'Select LCP Region',
name: "lcpRegion",
- isDisabled,
+ isDisabled: false,
value: instance ? instance.lcpCloudRegionId : null,
validations: [new ValidatorModel(ValidatorOptions.required, 'is required')],
- onInitSelectedField,
- onInit,
-
- onChange: (lcpCloudRegionIdParam: string, form: FormGroup) => {
+ onInitSelectedField: ['lcpRegionList'],
+ onInit: this._basicControlGenerator.getSubscribeInitResult.bind(
+ this._aaiService,
+ this._aaiService.getLcpRegionsAndTenants.bind(this, globalCustomerId, serviceType)),
+ onChange: (param: string, form: FormGroup) => {
form.controls['tenantId'].enable();
form.controls['tenantId'].reset();
+ if (!_.isNil(globalCustomerId) && !_.isNil(serviceType)) {
+ this._basicControlGenerator.getSubscribeResult.bind(this, this._aaiService.getLcpRegionsAndTenants(globalCustomerId, serviceType).subscribe(res => {
+ controls.find(item => item.controlName === 'tenantId')['options$'] = res.lcpRegionsTenantsMap[param];
+ if (res.lcpRegionsTenantsMap[param]) {
+ controls.find(item => item.controlName === 'tenantId')['hasEmptyOptions'] = res.lcpRegionsTenantsMap[param].length === 0;
+ }
+ }));
+ }
- changeTenantsOptionsOnChange(lcpCloudRegionIdParam);
-
- if (Constants.LegacyRegion.MEGA_REGION.indexOf(lcpCloudRegionIdParam) !== -1) {
+ if (Constants.LegacyRegion.MEGA_REGION.indexOf(param) !== -1) {
form.controls['legacyRegion'].enable();
controls.find(item => item.controlName === 'legacyRegion').isVisible = true;
})
};
- private setTenantsOptions = (controls: FormControlModel[], tenants: Tenant[]) => {
- const tenantsControl = controls.find(item => item.controlName === 'tenantId');
- tenantsControl['options$'] = tenants;
- tenantsControl['hasEmptyOptions'] = tenants && tenants.length === 0;
- };
+
getSDNCControl = (instance: any, checkedByDefault: boolean, extraContents? : object[]): FormControlModel => {
import {AppState} from "../../../../store/reducers";
import * as _ from 'lodash';
import {SharedControllersService} from "../sharedControlles/shared.controllers.service";
-import {FeatureFlagsService, Features} from "../../../../services/featureFlag/feature-flags.service";
@Injectable()
export class VnfControlGenerator {
constructor(private genericFormService: GenericFormService,
private _basicControlGenerator: ControlGeneratorUtil,
private _sharedControllersService : SharedControllersService,
- private _featureFlagsService: FeatureFlagsService,
private store: NgRedux<AppState>,
private http: HttpClient,
private _aaiService: AaiService,
const vnfModel = new VNFModel(this.store.getState().service.serviceHierarchy[serviceId].vnfs[vnfName]);
if (!_.isNil(vnfModel)) {
- const isMultiSelected =
- this._featureFlagsService.getFlagState(Features.FLAG_2002_VNF_PLATFORM_MULTI_SELECT);
- const lcpRegionsByLineOFBusiness =
- this._featureFlagsService.getFlagState(Features.FLAG_2006_LCP_REGIONS_BY_LINE_OF_BUSINESS);
-
+ const flags = this.store.getState().global.flags;
result.push(this.getInstanceName(vnfInstance, serviceId, vnfName, vnfModel.isEcompGeneratedNaming));
result.push(this._sharedControllersService.getProductFamilyControl(vnfInstance, result, true));
-
- if (lcpRegionsByLineOFBusiness) {
- result.push(this._sharedControllersService.getLineOfBusinessByOwningEntityControl(vnfInstance, serviceId, result));
- result.push(this._sharedControllersService.getLcpRegionByLineOfBusinessControl(serviceId, vnfInstance, result));
- result.push(this._sharedControllersService.getLegacyRegion(vnfInstance));
- result.push(this._sharedControllersService.getTenantByLcpRegionControl(serviceId, vnfInstance));
- result.push(this._sharedControllersService.getPlatformMultiselectControl(vnfInstance, result, isMultiSelected));
- } else {
- result.push(this._sharedControllersService.getLcpRegionControl(serviceId, vnfInstance, result));
- result.push(this._sharedControllersService.getLegacyRegion(vnfInstance));
- result.push(this._sharedControllersService.getTenantControl(serviceId, vnfInstance));
- result.push(this._sharedControllersService.getPlatformMultiselectControl(vnfInstance, result, isMultiSelected));
- result.push(this._sharedControllersService.getLineOfBusinessControl(vnfInstance));
- }
-
+ result.push(this._sharedControllersService.getLcpRegionControl(serviceId, vnfInstance, result));
+ result.push(this._sharedControllersService.getLegacyRegion(vnfInstance));
+ result.push(this._sharedControllersService.getTenantControl(serviceId, vnfInstance));
+ result.push(this._sharedControllersService.getPlatformMultiselectControl(vnfInstance, result, flags['FLAG_2002_VNF_PLATFORM_MULTI_SELECT']));
+ result.push(this._sharedControllersService.getLineOfBusinessControl(vnfInstance));
result.push(this._sharedControllersService.getRollbackOnFailureControl(vnfInstance));
}
return result;