mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 20:02:29 +01:00
CS-14186: cloudstack 3.0 UI - create network offering - when GuestIpType is Shared, hide SourceNat/StaticNat/PortForwarding/LoadBalancer/Firewall/VPN if zoneType is Advanced, hide SourceNat/PortForwarding/Firewall/VPN if zoneType is BAsic.
This commit is contained in:
parent
6fd42b831d
commit
f6c6518ada
@ -9,11 +9,12 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
// Automatically generated by addcopyright.py at 04/03/2012
|
||||
// Automatically generated by addcopyright.py at 04/02/2012
|
||||
(function(cloudStack, $) {
|
||||
|
||||
var requiredNetworkOfferingExists = false;
|
||||
var networkServiceObjs = [], serviceCheckboxNames = [];
|
||||
var serviceFields = [];
|
||||
|
||||
cloudStack.sections.configuration = {
|
||||
title: 'label.menu.service.offerings',
|
||||
@ -1018,7 +1019,7 @@
|
||||
|
||||
createForm: {
|
||||
title: 'label.add.network.offering',
|
||||
preFilter: function(args) {
|
||||
preFilter: function(args) {
|
||||
var $availability = args.$form.find('.form-item[rel=availability]');
|
||||
var $serviceOfferingId = args.$form.find('.form-item[rel=serviceOfferingId]');
|
||||
var hasAdvancedZones = false;
|
||||
@ -1034,30 +1035,12 @@
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
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') {
|
||||
@ -1087,22 +1070,62 @@
|
||||
|
||||
$(':ui-dialog').dialog('option', 'position', 'center');
|
||||
|
||||
if (hasAdvancedZones && $guestTypeField.val() == 'Shared') {
|
||||
$basicSharedFields.hide();
|
||||
$basicSharedFields.find('input[type=checkbox]').attr('checked', false);
|
||||
} else {
|
||||
$basicSharedFields.each(function() {
|
||||
var $field = $(this);
|
||||
var $dependsOn = args.$form.find('.form-item').filter(function() {
|
||||
return $(this).attr('rel') == $field.attr('depends-on');
|
||||
});
|
||||
|
||||
//hide/show service fields upon guestIpType(Shared/Isolated) and zoneType(Advanced/Basic) ***** (begin) *****
|
||||
var serviceFieldsToHide = [];
|
||||
if($guestTypeField.val() == 'Shared') { //Shared network offering
|
||||
if (hasAdvancedZones) { //advanced zone
|
||||
serviceFieldsToHide = [
|
||||
'service.SourceNat.isEnabled',
|
||||
'service.StaticNat.isEnabled',
|
||||
'service.PortForwarding.isEnabled',
|
||||
'service.Lb.isEnabled',
|
||||
'service.Firewall.isEnabled',
|
||||
'service.Vpn.isEnabled'
|
||||
];
|
||||
}
|
||||
else { //basic zone
|
||||
serviceFieldsToHide = [
|
||||
'service.SourceNat.isEnabled',
|
||||
'service.PortForwarding.isEnabled',
|
||||
'service.Firewall.isEnabled',
|
||||
'service.Vpn.isEnabled'
|
||||
];
|
||||
}
|
||||
}
|
||||
else { //Isolated network offering (which supports all services)
|
||||
serviceFieldsToHide = [];
|
||||
}
|
||||
|
||||
//hide service fields that are included in serviceFieldsToHide
|
||||
var $serviceCheckboxesToHide = args.$form.find('.form-item').filter(function() {
|
||||
if ($.inArray($(this).attr('rel'), serviceFieldsToHide) > -1) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
$serviceCheckboxesToHide.hide();
|
||||
$serviceCheckboxesToHide.find('input[type=checkbox]').attr('checked', false);
|
||||
|
||||
if (!$field.attr('depends-on') ||
|
||||
$dependsOn.find('input[type=checkbox]').is(':checked')) {
|
||||
$field.css('display', 'inline-block');
|
||||
}
|
||||
});
|
||||
}
|
||||
var $serviceProviderDropdownsToHide = args.$form.find('.form-item').filter(function() {
|
||||
if ($.inArray($(this).attr('depends-on'), serviceFieldsToHide) > -1) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
$serviceProviderDropdownsToHide.hide();
|
||||
|
||||
//show service fields that are not included in serviceFieldsToHide
|
||||
for(var i=0; i < serviceFields.length; i++) {
|
||||
var serviceField = serviceFields[i];
|
||||
if($.inArray(serviceField, serviceFieldsToHide) == -1) {
|
||||
if(args.$form.find('.form-item[rel=\"' + serviceField + '\"]').css('display') == 'none' ) {
|
||||
args.$form.find('.form-item[rel=\"' + serviceField + '\"]').css('display', 'inline-block');
|
||||
}
|
||||
}
|
||||
}
|
||||
//hide/show service fields upon guestIpType(Shared/Isolated) and zoneType(Advanced/Basic) ***** (end) *****
|
||||
|
||||
});
|
||||
|
||||
args.$form.change();
|
||||
@ -1161,9 +1184,10 @@
|
||||
async: true,
|
||||
success: function(data) {
|
||||
networkServiceObjs = data.listsupportednetworkservicesresponse.networkservice;
|
||||
serviceFields = [];
|
||||
var fields = {}, providerCanenableindividualserviceMap = {}, providerServicesMap = {}, providerDropdownsForciblyChangedTogether = {};
|
||||
$(networkServiceObjs).each(function() {
|
||||
var serviceName = this.name;
|
||||
var serviceName = this.name;
|
||||
var providerObjs = this.provider;
|
||||
var serviceDisplayName;
|
||||
|
||||
@ -1190,6 +1214,7 @@
|
||||
serviceCheckboxNames.push(id.isEnabled);
|
||||
|
||||
fields[id.isEnabled] = { label: serviceDisplayName, isBoolean: true };
|
||||
serviceFields.push(id.isEnabled);
|
||||
|
||||
if(providerObjs != null && providerObjs.length > 1) { //present provider dropdown when there are multiple providers for a service
|
||||
fields[id.provider] = {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user