From 3eb7bee1f9a87fb99db8ec9d11f8c3e7d4ed15b8 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Mon, 25 Oct 2010 17:28:14 -0700 Subject: [PATCH] new UI - Add VLAN - keep dialog box open and show spinning wheel on dialog box after Add button is clicked. Display error message on dialog box if adding fails. Close dialog box if adding succeeds. --- ui/new/jsp/resource.jsp | 12 +++++ ui/new/scripts/cloud.core2.js | 19 +++++++ ui/new/scripts/cloud.core2.resource.js | 68 +++++++++++++------------- 3 files changed, 66 insertions(+), 33 deletions(-) diff --git a/ui/new/jsp/resource.jsp b/ui/new/jsp/resource.jsp index d63dced3971..0107a70e804 100644 --- a/ui/new/jsp/resource.jsp +++ b/ui/new/jsp/resource.jsp @@ -1007,6 +1007,18 @@ + + + + + + diff --git a/ui/new/scripts/cloud.core2.js b/ui/new/scripts/cloud.core2.js index 29b5e848d7e..2248641044f 100644 --- a/ui/new/scripts/cloud.core2.js +++ b/ui/new/scripts/cloud.core2.js @@ -873,6 +873,25 @@ function bindAndListMidMenuItems($leftmenu, commandString, jsonResponse1, jsonRe }); } +function handleErrorInDialog(XMLHttpResponse, $thisDialog) { + var start = XMLHttpResponse.responseText.indexOf("h1") + 3; + var end = XMLHttpResponse.responseText.indexOf(" 0) + $infoContainer.find("#info").text(fromdb(errorMsg)); + else + $infoContainer.find("#info").text("action failed"); + + $thisDialog.find("#spinning_wheel").fadeOut("slow"); + $infoContainer.fadeIn("slow"); +} + + + + + diff --git a/ui/new/scripts/cloud.core2.resource.js b/ui/new/scripts/cloud.core2.resource.js index f59b606368b..f96e23c58e2 100644 --- a/ui/new/scripts/cloud.core2.resource.js +++ b/ui/new/scripts/cloud.core2.resource.js @@ -839,31 +839,33 @@ function initAddVLANButton($addButton) { dialogAddVlanForZone .dialog('option', 'buttons', { "Add": function() { - var thisDialog = $(this); + var $thisDialog = $(this); + $thisDialog.find("#info_container").hide(); + // validate values var isValid = true; var isTagged = false; var isDirect = false; if (getNetworkType() == "vlan") { - isDirect = thisDialog.find("#add_publicip_vlan_type").val() == "false"; - isTagged = thisDialog.find("#add_publicip_vlan_tagged").val() == "tagged"; + isDirect = $thisDialog.find("#add_publicip_vlan_type").val() == "false"; + isTagged = $thisDialog.find("#add_publicip_vlan_tagged").val() == "tagged"; } - isValid &= validateString("Account", thisDialog.find("#add_publicip_vlan_account"), thisDialog.find("#add_publicip_vlan_account_errormsg"), true); //optional + isValid &= validateString("Account", $thisDialog.find("#add_publicip_vlan_account"), $thisDialog.find("#add_publicip_vlan_account_errormsg"), true); //optional if (isTagged) { - isValid &= validateNumber("VLAN", thisDialog.find("#add_publicip_vlan_vlan"), thisDialog.find("#add_publicip_vlan_vlan_errormsg"), 2, 4095); + isValid &= validateNumber("VLAN", $thisDialog.find("#add_publicip_vlan_vlan"), $thisDialog.find("#add_publicip_vlan_vlan_errormsg"), 2, 4095); } - isValid &= validateIp("Gateway", thisDialog.find("#add_publicip_vlan_gateway"), thisDialog.find("#add_publicip_vlan_gateway_errormsg")); - isValid &= validateIp("Netmask", thisDialog.find("#add_publicip_vlan_netmask"), thisDialog.find("#add_publicip_vlan_netmask_errormsg")); - isValid &= validateIp("Start IP Range", thisDialog.find("#add_publicip_vlan_startip"), thisDialog.find("#add_publicip_vlan_startip_errormsg")); //required - isValid &= validateIp("End IP Range", thisDialog.find("#add_publicip_vlan_endip"), thisDialog.find("#add_publicip_vlan_endip_errormsg"), true); //optional + isValid &= validateIp("Gateway", $thisDialog.find("#add_publicip_vlan_gateway"), $thisDialog.find("#add_publicip_vlan_gateway_errormsg")); + isValid &= validateIp("Netmask", $thisDialog.find("#add_publicip_vlan_netmask"), $thisDialog.find("#add_publicip_vlan_netmask_errormsg")); + isValid &= validateIp("Start IP Range", $thisDialog.find("#add_publicip_vlan_startip"), $thisDialog.find("#add_publicip_vlan_startip_errormsg")); //required + isValid &= validateIp("End IP Range", $thisDialog.find("#add_publicip_vlan_endip"), $thisDialog.find("#add_publicip_vlan_endip_errormsg"), true); //optional if (!isValid) return; - thisDialog.dialog("close"); + //$thisDialog.dialog("close"); //only close dialog when this action succeeds - var vlan = trim(thisDialog.find("#add_publicip_vlan_vlan").val()); + var vlan = trim($thisDialog.find("#add_publicip_vlan_vlan").val()); if (isTagged) { vlan = "&vlan="+vlan; } else { @@ -872,37 +874,37 @@ function initAddVLANButton($addButton) { var scopeParams = ""; if(dialogAddVlanForZone.find("#add_publicip_vlan_scope").val()=="account-specific") - scopeParams = "&domainId="+trim(thisDialog.find("#add_publicip_vlan_domain").val())+"&account="+trim(thisDialog.find("#add_publicip_vlan_account").val()); + scopeParams = "&domainId="+trim($thisDialog.find("#add_publicip_vlan_domain").val())+"&account="+trim($thisDialog.find("#add_publicip_vlan_account").val()); var type = "true"; if (getNetworkType() == "vlan") - type = trim(thisDialog.find("#add_publicip_vlan_type").val()); + type = trim($thisDialog.find("#add_publicip_vlan_type").val()); - var gateway = trim(thisDialog.find("#add_publicip_vlan_gateway").val()); - var netmask = trim(thisDialog.find("#add_publicip_vlan_netmask").val()); - var startip = trim(thisDialog.find("#add_publicip_vlan_startip").val()); - var endip = trim(thisDialog.find("#add_publicip_vlan_endip").val()); - - var $template1 = $("#vlan_template").clone(); - if(type == "false") //direct - $template1.find("#vlan_type_icon").removeClass("virtual").addClass("direct"); - else //virtual - $template1.find("#vlan_type_icon").removeClass("direct").addClass("virtual"); - - if($vlanContainer != null) - $vlanContainer.prepend($template1.show()); - + var gateway = trim($thisDialog.find("#add_publicip_vlan_gateway").val()); + var netmask = trim($thisDialog.find("#add_publicip_vlan_netmask").val()); + var startip = trim($thisDialog.find("#add_publicip_vlan_startip").val()); + var endip = trim($thisDialog.find("#add_publicip_vlan_endip").val()); + + $thisDialog.find("#spinning_wheel").fadeIn("slow"); + $.ajax({ data: createURL("command=createVlanIpRange&forVirtualNetwork="+type+"&zoneId="+zoneObj.id+vlan+scopeParams+"&gateway="+encodeURIComponent(gateway)+"&netmask="+encodeURIComponent(netmask)+"&startip="+encodeURIComponent(startip)+"&endip="+encodeURIComponent(endip)), dataType: "json", - success: function(json) { - vlanJsonToTemplate(json.createvlaniprangeresponse, $template1); + success: function(json) { + $thisDialog.dialog("close"); + + var $template1 = $("#vlan_template").clone(); + if(type == "false") //direct + $template1.find("#vlan_type_icon").removeClass("virtual").addClass("direct"); + else //virtual + $template1.find("#vlan_type_icon").removeClass("direct").addClass("virtual"); + + vlanJsonToTemplate(json.createvlaniprangeresponse, $template1); + $vlanContainer.prepend($template1); + $template1.fadeIn("slow"); }, error: function(XMLHttpResponse) { - handleError(XMLHttpResponse); - $template1.slideUp(function(){ - $(this).remove(); - }); + handleErrorInDialog(XMLHttpResponse, $thisDialog); } });