mirror of https://github.com/apache/cloudstack.git
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:
parent
4ff6fdf05f
commit
fb141dd5ef
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Reference in New Issue