-
- 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 => {