From d6edced466d09a74b3e22bafe8d3946d2d22e6e0 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Fri, 4 May 2012 15:43:14 -0700 Subject: [PATCH] CS-14116: cloudstack 3.0 UI - add guest network dialog: make vlan/gateway/netmask required when network offering is Isolated with no SourceNat. --- ui/scripts/system.js | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/ui/scripts/system.js b/ui/scripts/system.js index b23233e0a9a..5189bf6b1e4 100644 --- a/ui/scripts/system.js +++ b/ui/scripts/system.js @@ -1258,7 +1258,7 @@ var selectedNetworkOfferingId = $(this).val(); $(networkOfferingObjs).each(function(){ if(this.id == selectedNetworkOfferingId) { - if(this.guestiptype == "Isolated") { + if(this.guestiptype == "Isolated") { //*** Isolated *** if(this.specifyipranges == false) { $form.find('.form-item[rel=guestStartIp]').hide(); $form.find('.form-item[rel=guestEndIp]').hide(); @@ -1266,12 +1266,26 @@ else { $form.find('.form-item[rel=guestStartIp]').css('display', 'inline-block'); $form.find('.form-item[rel=guestEndIp]').css('display', 'inline-block'); + } + + var includingSourceNat = false; + var serviceObjArray = this.service; + for(var k = 0; k < serviceObjArray.length; k++) { + if(serviceObjArray[k].name == "SourceNat") { + includingSourceNat = true; + break; + } + } + if(includingSourceNat == true) { //Isolated with SourceNat + cloudStack.dialog.createFormField.validation.required.remove($form.find('.form-item[rel=guestGateway]')); //make guestGateway optional + cloudStack.dialog.createFormField.validation.required.remove($form.find('.form-item[rel=guestNetmask]')); //make guestNetmask optional } - - cloudStack.dialog.createFormField.validation.required.remove($form.find('.form-item[rel=guestGateway]')); //make guestGateway optional - cloudStack.dialog.createFormField.validation.required.remove($form.find('.form-item[rel=guestNetmask]')); //make guestNetmask optional + else { //Isolated with no SourceNat + cloudStack.dialog.createFormField.validation.required.add($form.find('.form-item[rel=guestGateway]')); //make guestGateway required + cloudStack.dialog.createFormField.validation.required.add($form.find('.form-item[rel=guestNetmask]')); //make guestNetmask required + } } - else { //this.guestiptype == "Shared" + else { //*** Shared *** $form.find('.form-item[rel=guestStartIp]').css('display', 'inline-block'); $form.find('.form-item[rel=guestEndIp]').css('display', 'inline-block');