cloudstack 3.0 UI - VPC - add network offering dialog - when service(s) has VPC Virtual Router as provider: (1) conserve mode is set to unchecked and grayed out. (2) redundant router capability checkbox is set to unchecked and grayed out. (3) remove Firewall service, SecurityGroup service.

This commit is contained in:
Jessica Wang 2012-07-20 14:28:20 -07:00
parent ee9074a175
commit 20db2e515b
1 changed files with 72 additions and 14 deletions

View File

@ -14,6 +14,7 @@
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
(function(cloudStack, $) {
var requiredNetworkOfferingExists = false;
@ -1032,7 +1033,9 @@
title: 'label.add.network.offering',
preFilter: function(args) {
var $availability = args.$form.find('.form-item[rel=availability]');
var $serviceOfferingId = args.$form.find('.form-item[rel=serviceOfferingId]');
var $serviceOfferingId = args.$form.find('.form-item[rel=serviceOfferingId]');
var $conservemode = args.$form.find('.form-item[rel=conservemode]');
var $serviceSourceNatRedundantRouterCapabilityCheckbox = args.$form.find('.form-item[rel="service.SourceNat.redundantRouterCapabilityCheckbox"]');
var hasAdvancedZones = false;
// Check whether there are any advanced zones
@ -1064,7 +1067,8 @@
$availability.hide();
}
//check whether to show or hide serviceOfferingId field
//when service(s) has Virtual Router as provider.....
var havingVirtualRouterForAtLeastOneService = false;
$(serviceCheckboxNames).each(function(){
var checkboxName = this;
@ -1076,17 +1080,48 @@
return false; //break each loop
}
}
});
if(havingVirtualRouterForAtLeastOneService == true)
});
if(havingVirtualRouterForAtLeastOneService == true) {
$serviceOfferingId.css('display', 'inline-block');
else
}
else {
$serviceOfferingId.hide();
$(':ui-dialog').dialog('option', 'position', 'center');
}
//hide/show service fields upon guestIpType(Shared/Isolated) and zoneType(Advanced/Basic) ***** (begin) *****
/*
when service(s) has VPC Virtual Router as provider:
(1) conserve mode is set to unchecked and grayed out.
(2) redundant router capability checkbox is set to unchecked and grayed out.
(3) remove Firewall service, SecurityGroup service.
*/
var havingVpcVirtualRouterForAtLeastOneService = false;
$(serviceCheckboxNames).each(function(){
var checkboxName = this;
if($("input[name='" + checkboxName + "']").is(":checked") == true) {
var providerFieldName = checkboxName.replace(".isEnabled", ".provider"); //either dropdown or input hidden field
var providerName = $("[name='" + providerFieldName + "']").val();
if(providerName == "VpcVirtualRouter") {
havingVpcVirtualRouterForAtLeastOneService = true;
return false; //break each loop
}
}
});
if(havingVpcVirtualRouterForAtLeastOneService == true) {
$conservemode.find("input[type=checkbox]").attr("disabled", "disabled");
$conservemode.find("input[type=checkbox]").attr('checked', false);
$serviceSourceNatRedundantRouterCapabilityCheckbox.find("input[type=checkbox]").attr("disabled", "disabled");
$serviceSourceNatRedundantRouterCapabilityCheckbox.find("input[type=checkbox]").attr('checked', false);
}
else {
$conservemode.find("input[type=checkbox]").removeAttr("disabled");
$serviceSourceNatRedundantRouterCapabilityCheckbox.find("input[type=checkbox]").removeAttr("disabled");
}
$(':ui-dialog').dialog('option', 'position', 'center');
//hide/show service fields upon guestIpType(Shared/Isolated), zoneType(Advanced/Basic), having VpcVirtualRouter or not ***** (begin) *****
var serviceFieldsToHide = [];
if($guestTypeField.val() == 'Shared') { //Shared network offering
serviceFieldsToHide = [
@ -1094,12 +1129,34 @@
'service.PortForwarding.isEnabled',
'service.Firewall.isEnabled',
'service.Vpn.isEnabled'
];
];
if(havingVpcVirtualRouterForAtLeastOneService == true) { //add SecurityGroup to to-hide-list
serviceFieldsToHide.push('service.SecurityGroup.isEnabled');
}
else { //remove SecurityGroup from to-hide-list
var temp = $.map(serviceFieldsToHide, function(item) {
if (item != 'service.SecurityGroup.isEnabled') {
return item;
}
});
serviceFieldsToHide = temp;
}
}
else { //Isolated network offering
serviceFieldsToHide = [
'service.SecurityGroup.isEnabled'
];
];
if(havingVpcVirtualRouterForAtLeastOneService == true) { //add firewall to to-hide-list
serviceFieldsToHide.push('service.Firewall.isEnabled');
}
else { //remove firewall from to-hide-list
var temp = $.map(serviceFieldsToHide, function(item) {
if (item != 'service.Firewall.isEnabled') {
return item;
}
});
serviceFieldsToHide = temp;
}
}
//hide service fields that are included in serviceFieldsToHide
@ -1129,14 +1186,14 @@
}
}
}
//hide/show service fields upon guestIpType(Shared/Isolated) and zoneType(Advanced/Basic) ***** (end) *****
//hide/show service fields upon guestIpType(Shared/Isolated), zoneType(Advanced/Basic), having VpcVirtualRouter or not ***** (end) *****
//show LB Isolation dropdown only when (1)LB Service is checked (2)Service Provider is Netscaler OR F5 (3)Guest IP Type is Isolated
if((args.$form.find('.form-item[rel=\"service.Lb.isEnabled\"]').find('input[type=checkbox]').is(':checked') == true)
&&(args.$form.find('.form-item[rel=\"service.Lb.provider\"]').find('select').val() == 'Netscaler'
|| args.$form.find('.form-item[rel=\"service.Lb.provider\"]').find('select').val() == 'F5BigIp')
) {
&&(args.$form.find('.form-item[rel=\"guestIpType\"]').find('select').val() == 'Isolated')) {
args.$form.find('.form-item[rel=\"service.Lb.lbIsolationDropdown\"]').css('display', 'inline-block');
}
else {
@ -1174,7 +1231,7 @@
displayText: { label: 'label.description', validation: { required: true } },
networkRate: { label: 'label.network.rate' },
networkRate: { label: 'label.network.rate.megabytes' },
/*
trafficType: {
@ -1852,3 +1909,4 @@
};
})(cloudStack, jQuery);