bug 14093

Don't show specific provider fields on add network offering if in
Advanced/Shared configuration:

-Source NAT
-Static NAT
-PF
-LB
This commit is contained in:
Brian Federle 2012-03-06 13:22:22 -08:00
parent 4ff6fdf05f
commit fb141dd5ef
1 changed files with 51 additions and 2 deletions

View File

@ -962,11 +962,43 @@
preFilter: function(args) {
var $availability = args.$form.find('.form-item[rel=availability]');
var $serviceOfferingId = args.$form.find('.form-item[rel=serviceOfferingId]');
var hasAdvancedZones = false;
// Check whether there are any advanced zones
$.ajax({
url: createURL('listZones'),
data: { listAll: true, networktype: 'advanced' },
async: false,
success: function(json) {
if (json.listzonesresponse.zone && json.listzonesresponse.zone.length) {
hasAdvancedZones = true;
}
}
});
args.$form.bind('change', function() { //when any field in the dialog is changed
//check whether to show or hide availability field
var $sourceNATField = args.$form.find('input[name=\"service.SourceNat.isEnabled\"]');
var $guestTypeField = args.$form.find('select[name=guestIpType]');
var $basicSharedFields = args.$form.find('.form-item').filter(function() {
var basicSharedFields = [
'service.SourceNat.isEnabled',
'service.StaticNat.isEnabled',
'service.PortForwarding.isEnabled',
'service.Lb.isEnabled'
];
if ($.inArray($(this).attr('rel'), basicSharedFields) > -1) {
return true;
}
if ($.inArray($(this).attr('depends-on'), basicSharedFields) > -1) {
return true;
}
return false;
});
if (!requiredNetworkOfferingExists &&
$sourceNATField.is(':checked') &&
$guestTypeField.val() == 'Isolated') {
@ -974,7 +1006,7 @@
} else {
$availability.hide();
}
//check whether to show or hide serviceOfferingId field
var havingVirtualRouterForAtLeastOneService = false;
$(serviceCheckboxNames).each(function(){
@ -987,13 +1019,30 @@
return false; //break each loop
}
}
});
});
if(havingVirtualRouterForAtLeastOneService == true)
$serviceOfferingId.css('display', 'inline-block');
else
$serviceOfferingId.hide();
$(':ui-dialog').dialog('option', 'position', 'center');
if (hasAdvancedZones && $guestTypeField.val() == 'Shared') {
$basicSharedFields.hide();
} else {
$basicSharedFields.each(function() {
var $field = $(this);
var $dependsOn = args.$form.find('.form-item').filter(function() {
return $(this).attr('rel') == $field.attr('depends-on');
});
if (!$field.attr('depends-on') ||
$dependsOn.find('input[type=checkbox]').is(':checked')) {
$field.css('display', 'inline-block');
}
});
}
});
args.$form.change();