From ff76b5ed0aa91d5fdf9dc4f95e8b20f91ed9d072 Mon Sep 17 00:00:00 2001 From: "Sonsino, Ofir (os0695)" Date: Tue, 10 Jul 2018 15:57:37 +0300 Subject: New Angular UI from 1806 Change-Id: I39c160db0e0a6ec2e587ccf007ee1b23c6a08666 Issue-ID: VID-208 Signed-off-by: Sonsino, Ofir (os0695) --- .../app/components/vnf-popup/vnf-popup-service.ts | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 vid-webpack-master/src/app/components/vnf-popup/vnf-popup-service.ts (limited to 'vid-webpack-master/src/app/components/vnf-popup/vnf-popup-service.ts') diff --git a/vid-webpack-master/src/app/components/vnf-popup/vnf-popup-service.ts b/vid-webpack-master/src/app/components/vnf-popup/vnf-popup-service.ts new file mode 100644 index 000000000..7dbe9b11b --- /dev/null +++ b/vid-webpack-master/src/app/components/vnf-popup/vnf-popup-service.ts @@ -0,0 +1,55 @@ +import {Injectable} from "@angular/core"; +import {ServiceNodeTypeToModelKeyMapper} from "../../shared/models/serviceNodeTypeToModelKeyMapper"; +import {ServiceNodeTypes} from "../../shared/models/ServiceNodeTypes"; +import {VfModule} from "../../shared/models/vfModule"; +import {ServicePlanningService} from "../../services/service-planning.service"; +import {VNFModel} from "../../shared/models/vnfModel"; +import * as _ from 'lodash'; +import {isNullOrUndefined} from "util"; +import {NumbersLettersUnderscoreValidator} from '../../shared/components/validators/numbersLettersUnderscore/numbersLettersUnderscore.validator'; +import {FormGroup} from '@angular/forms'; +import {VnfInstanceDetailsComponent} from './vnf-instance-details/vnf-instance-details.component'; +import {VnfInstanceDetailsService} from './vnf-instance-details/vnf-instance-details.service'; + +@Injectable() +export class VnfPopupService { + + constructor(private _servicePlanningService : ServicePlanningService, private _vnfInstanceDetailsService : VnfInstanceDetailsService) { + } + + public getModelFromResponse(result : any, modelType : string, modelName:string) { + let model = null; + let rawModel = _.get(result, [ServiceNodeTypeToModelKeyMapper[modelType], modelName]); + if (!rawModel) return; + + if (modelType === ServiceNodeTypes.VFmodule) { + model = new VfModule(rawModel); + } + else { + model = new VNFModel(rawModel); + } + return model; + } + + onControlError(servicePopupDataModel : VnfInstanceDetailsComponent, serviceInstanceDetailsFormGroup : FormGroup, isNotUniqueInstanceName : boolean, isNotUniqueVolumeGroupName : boolean) : boolean{ + if(this._vnfInstanceDetailsService.hasUniqueError(isNotUniqueInstanceName) || isNotUniqueVolumeGroupName){ + return true; + } + if(!isNullOrUndefined(serviceInstanceDetailsFormGroup.controls['instanceName']) && NumbersLettersUnderscoreValidator.valid(serviceInstanceDetailsFormGroup.controls['instanceName'].value) && serviceInstanceDetailsFormGroup.controls['instanceName'].value != null && serviceInstanceDetailsFormGroup.controls['instanceName'].value.length > 0){ + return true; + } + + const controlName : Array = ['lcpCloudRegionId', 'tenantId', 'lineOfBusiness', 'platformName']; + const selectDataName : Array = ['lcpRegions', 'tenants', 'lineOfBusinesses', 'platforms', 'projects']; + + for(let i = 0 ; i < controlName.length ; i++){ + if (!isNullOrUndefined(servicePopupDataModel.vnfPopupDataModel) && !isNullOrUndefined(servicePopupDataModel.vnfPopupDataModel[selectDataName[i]])) { + if (!isNullOrUndefined(serviceInstanceDetailsFormGroup.controls[controlName[i]]) && !serviceInstanceDetailsFormGroup.controls[controlName[i]].disabled && servicePopupDataModel.vnfPopupDataModel[selectDataName[i]].length === 0) { + return true; + } + } + } + return false; + } + +} -- cgit 1.2.3-korg