cloudstack 3.0 new UI - Add Network Offering - fix a bug that array index in serviceCapabilityList[] was wrongly passed to API.

This commit is contained in:
Jessica Wang 2012-01-21 11:31:02 -08:00
parent 25d11cba05
commit 7edf9269c1

View File

@ -1030,8 +1030,8 @@
var formData = args.data;
var inputData = {};
var serviceProviderMap = {};
var serviceCapabilityMap = {};
var serviceCapabilityIndex = 0;
$.each(formData, function(key, value) {
var serviceData = key.split('.');
@ -1043,21 +1043,24 @@
serviceProviderMap[serviceData[1]] = formData[
'service.' + serviceData[1] + '.provider'
];
}
else if (serviceData[0] == 'service' &&
serviceData[2].indexOf('Capability') != -1 &&
value == 'on') { // Services field
serviceCapabilityMap[serviceData[1]] = serviceData[2];
}
}
else if ((key == 'service.Lb.lbIsolationDropdown') && ("Lb" in serviceProviderMap)) {
inputData['servicecapabilitylist[0].service'] = 'lb';
inputData['servicecapabilitylist[0].capabilitytype'] = 'SupportedLbIsolation';
inputData['servicecapabilitylist[0].capabilityvalue'] = value;
inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].service'] = 'lb';
inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilitytype'] = 'SupportedLbIsolation';
inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilityvalue'] = value;
serviceCapabilityIndex++;
}
else if((key == 'service.SourceNat.redundantRouterCapabilityCheckbox') && ("SourceNat" in serviceProviderMap)) { //if checkbox is unchecked, it won't be included in formData in the first place. i.e. it won't fall into this section
inputData['serviceCapabilityList[' + serviceCapabilityIndex + '].service'] = 'SourceNat';
inputData['serviceCapabilityList[' + serviceCapabilityIndex + '].capabilitytype'] = "RedundantRouter";
inputData['serviceCapabilityList[' + serviceCapabilityIndex + '].capabilityvalue'] = true; //because this checkbox's value == "on"
serviceCapabilityIndex++;
}
else if ((key == 'service.SourceNat.sourceNatTypeDropdown') && ("SourceNat" in serviceProviderMap)) {
inputData['servicecapabilitylist[0].service'] = 'sourcenat';
inputData['servicecapabilitylist[0].capabilitytype'] = 'SupportedSourceNatTypes';
inputData['servicecapabilitylist[0].capabilityvalue'] = value;
inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].service'] = 'SourceNat';
inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilitytype'] = 'SupportedSourceNatTypes';
inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilityvalue'] = value;
serviceCapabilityIndex++;
}
}
else if (value != '') { // Normal data
@ -1088,20 +1091,7 @@
inputData['serviceProviderList[' + serviceProviderIndex + '].service'] = key;
inputData['serviceProviderList[' + serviceProviderIndex + '].provider'] = value;
serviceProviderIndex++;
});
var serviceCapabilityIndex = 0;
$.each(serviceCapabilityMap, function(key, value) {
var capabilityType = null;
if(value == "redundantRouterCapabilityCheckbox")
capabilityType = "RedundantRouter";
if(capabilityType != null) {
inputData['serviceCapabilityList[' + serviceCapabilityIndex + '].service'] = key;
inputData['serviceCapabilityList[' + serviceCapabilityIndex + '].capabilitytype'] = capabilityType;
inputData['serviceCapabilityList[' + serviceCapabilityIndex + '].capabilityvalue'] = true;
serviceCapabilityIndex++;
}
});
});
$.ajax({
url: createURL('createNetworkOffering'),