CLOUDSTACK-5048: UI > Create Load Balancing rule > hide Autoscale button if LB provider is not Netscaler since Autoscale is only supported on Netscaler, but not on other provider like VirtualRouter.

This commit is contained in:
Jessica Wang 2013-11-05 15:11:05 -08:00
parent 5721cfdc6b
commit 648f10401f
1 changed files with 35 additions and 5 deletions

View File

@ -3375,11 +3375,41 @@
buttonLabel: 'label.configure',
action: cloudStack.uiCustom.autoscaler(cloudStack.autoscaler)
},
isHidden: function(args) {
// return 2 == hide header and form, as well as returned item column
// return 2;
return false;
isHidden: function(args) {
var lbProviderIsNetscaler = false;
$.ajax({
url: createURL('listNetworkOfferings'),
data: {
id: args.context.networks[0].networkofferingid
},
async: false,
success: function(json) {
var networkOffering = json.listnetworkofferingsresponse.networkoffering[0];
var services = networkOffering.service;
if (services != null) {
for (var i = 0; i < services.length; i++) {
if (services[i].name == 'Lb') {
var providers = services[i].provider;
if (providers != null) {
for (var k = 0; k < providers.length; k++) {
if (providers[k].name == 'Netscaler') {
lbProviderIsNetscaler = true;
break;
}
}
}
break;
}
}
}
}
});
if (lbProviderIsNetscaler == true) { //AutoScale is only supported on Netscaler (but not on any other provider like VirtualRouter)
return false; //show AutoScale button
} else {
return 2; //hide Autoscale button (both header and form)
}
}
},