From ed36020ebacae9f2c86fd9948408f0ddebc1017e Mon Sep 17 00:00:00 2001 From: Chiradeep Vittal Date: Mon, 8 Aug 2011 17:35:58 -0700 Subject: [PATCH] fix for bad merge --- ui/scripts/cloud.core.ipaddress.js.orig | 2293 ----------------------- 1 file changed, 2293 deletions(-) delete mode 100644 ui/scripts/cloud.core.ipaddress.js.orig diff --git a/ui/scripts/cloud.core.ipaddress.js.orig b/ui/scripts/cloud.core.ipaddress.js.orig deleted file mode 100644 index 7af3dabcf89..00000000000 --- a/ui/scripts/cloud.core.ipaddress.js.orig +++ /dev/null @@ -1,2293 +0,0 @@ - /** - * Copyright (C) 2010 Cloud.com, Inc. All rights reserved. - * - * This software is licensed under the GNU General Public License v3 or later. - * - * It is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or any later version. - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -function ipGetSearchParams() { - var moreCriteria = []; - - var searchInput = $("#basic_search").find("#search_input").val(); - if (searchInput != null && searchInput.length > 0) { - moreCriteria.push("&keyword="+todb(searchInput)); - } - - var $advancedSearchPopup = getAdvancedSearchPopupInSearchContainer(); - if ($advancedSearchPopup.length > 0 && $advancedSearchPopup.css("display") != "none" ) { - - var zone = $advancedSearchPopup.find("#adv_search_zone").val(); - if (zone!=null && zone.length > 0) - moreCriteria.push("&zoneId="+zone); - - if ($advancedSearchPopup.find("#adv_search_domain_li").css("display") != "none" - && $advancedSearchPopup.find("#domain").hasClass("textwatermark") == false) { - var domainName = $advancedSearchPopup.find("#domain").val(); - if (domainName != null && domainName.length > 0) { - var domainId; - if(autoCompleteDomains != null && autoCompleteDomains.length > 0) { - for(var i=0; i < autoCompleteDomains.length; i++) { - if(fromdb(autoCompleteDomains[i].name).toLowerCase() == domainName.toLowerCase()) { - domainId = autoCompleteDomains[i].id; - break; - } - } - } - if(domainId == null) { - showError(false, $advancedSearchPopup.find("#domain"), $advancedSearchPopup.find("#domain_errormsg"), g_dictionary["label.not.found"]); - } - else { //e.g. domainId == 5 (number) - showError(true, $advancedSearchPopup.find("#domain"), $advancedSearchPopup.find("#domain_errormsg"), null) - moreCriteria.push("&domainid="+todb(domainId)); - } - } - } - - if ($advancedSearchPopup.find("#adv_search_account_li").css("display") != "none" - && $advancedSearchPopup.find("#adv_search_account").hasClass("textwatermark") == false) { - var account = $advancedSearchPopup.find("#adv_search_account").val(); - if (account!=null && account.length > 0) - moreCriteria.push("&account="+account); - } - } - - return moreCriteria.join(""); -} - -function afterLoadIpJSP() { - //***** switch between different tabs (begin) ******************************************************************** - var tabArray = [$("#tab_details"), $("#tab_port_range"), $("#tab_port_forwarding"), $("#tab_load_balancer"), $("#tab_vpn")]; - var tabContentArray = [$("#tab_content_details"), $("#tab_content_port_range"), $("#tab_content_port_forwarding"), $("#tab_content_load_balancer"), $("#tab_content_vpn")]; - var afterSwitchFnArray = [ipJsonToDetailsTab, ipJsonToPortRangeTab, ipJsonToPortForwardingTab, ipJsonToLoadBalancerTab, ipJsonToVPNTab]; - switchBetweenDifferentTabs(tabArray, tabContentArray, afterSwitchFnArray); - //***** switch between different tabs (end) ********************************************************************** - - if(g_supportELB == "guest" || g_supportELB == "public") { - $("#tab_details,#tab_port_range,#tab_port_forwarding,#tab_load_balancer,#tab_vpn").hide(); - - $("#tab_content_details").hide(); - - $("#acquire_new_ip_button").hide(); - $("#add_load_balancer_and_ip_button").show(); - - initDialog("dialog_add_load_balancer_and_ip"); - - $.ajax({ - data: createURL("command=listZones&available=true"), - dataType: "json", - success: function(json) { - var zones = json.listzonesresponse.zone; - var zoneSelect = $("#dialog_add_load_balancer_and_ip #acquire_zone").empty(); - if (zones != null && zones.length > 0) { - for (var i = 0; i < zones.length; i++) { - if(zones[i].networktype == "Basic") - zoneSelect.append(""); - } - } - } - }); - - $("#add_load_balancer_and_ip_button").unbind("click").bind("click", function(event) { - $("#dialog_add_load_balancer_and_ip").dialog('option', 'buttons', { - "Acquire": function() { - var $thisDialog = $(this); - - var isValid = true; - isValid &= validateString("Name", $thisDialog.find("#name"), $thisDialog.find("#name_errormsg")); - isValid &= validateInteger("Public Port", $thisDialog.find("#public_port"), $thisDialog.find("#public_port_errormsg"), 1, 65535); - isValid &= validateInteger("Private Port", $thisDialog.find("#private_port"), $thisDialog.find("#private_port_errormsg"), 1, 65535); - if (!isValid) - return; - - $thisDialog.dialog("close"); - - var array1 = []; - - var zoneId = $thisDialog.find("#acquire_zone").val(); - array1.push("&zoneid="+zoneId); - - var name = $thisDialog.find("#name").val(); - array1.push("&name="+todb(name)); - - var publicPort = $thisDialog.find("#public_port").val(); - array1.push("&publicport="+publicPort); - - var privatePort = $thisDialog.find("#private_port").val(); - array1.push("&privateport="+privatePort); - - var algorithm = $thisDialog.find("#algorithm_select").val(); - array1.push("&algorithm="+algorithm); - - var $midmenuItem1 = beforeAddingMidMenuItem() ; - $.ajax({ - data: createURL("command=createLoadBalancerRule"+array1.join("")), - dataType: "json", - success: function(json) { - var jobId = json.createloadbalancerruleresponse.jobid; - var timerKey = "addLbAndIpJob_"+jobId; - - $("body").everyTime(2000, timerKey, function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - if (result.jobstatus == 1) { - // Succeeded - var publicipid = result.jobresult.loadbalancer.publicipid; - - var cmd; - if(g_supportELB == "guest") { - cmd = "command=listPublicIpAddresses&forvirtualnetwork=false&id="+publicipid; - } - else if(g_supportELB == "public") { - cmd = "command=listPublicIpAddresses&forvirtualnetwork=true&id="+publicipid; - } - else { - if(g_supportELB == null) - alert("supportELB should be either guest or public. It should not be null."); - else - alert("supportELB should be either guest or public. It should not be " + g_supportELB); - return; - } - - $.ajax({ - data: createURL(cmd), - dataType: "json", - async: false, - success: function(json) { - var items = json.listpublicipaddressesresponse.publicipaddress; - if(items != null && items.length > 0) { - ipToMidmenu(items[0], $midmenuItem1); - bindClickToMidMenu($midmenuItem1, ipToRightPanel, ipGetMidmenuId); - afterAddingMidMenuItem($midmenuItem1, true); - } - } - }); - } else if (result.jobstatus == 2) { - afterAddingMidMenuItem($midmenuItem1, false, fromdb(result.jobresult.errortext)); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - handleError(XMLHttpResponse, function() { - afterAddingMidMenuItem($midmenuItem1, false, parseXMLHttpResponse(XMLHttpResponse)); - }); - } - }); - }, 0); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse, function() { - afterAddingMidMenuItem($midmenuItem1, false, parseXMLHttpResponse(XMLHttpResponse)); - }); - } - }); - }, - "Cancel": function() { - $(this).dialog("close"); - } - }).dialog("open"); - return false; - }); - } - else { - $("#tab_details,#tab_content_details").show(); - - //dialogs - initDialog("dialog_acquire_public_ip", 325); - initDialog("dialog_enable_vpn"); - initDialog("dialog_disable_vpn"); - initDialog("dialog_add_vpnuser"); - initDialog("dialog_confirmation_remove_vpnuser"); - initDialog("dialog_enable_static_NAT"); - - //*** Acquire New IP (begin) *** - $.ajax({ - data: createURL("command=listZones&available=true"), - dataType: "json", - success: function(json) { - var zones = json.listzonesresponse.zone; - var zoneSelect = $("#dialog_acquire_public_ip #acquire_zone").empty(); - if (zones != null && zones.length > 0) { - for (var i = 0; i < zones.length; i++) { - zoneSelect.append(""); - } - } - } - }); - - $("#acquire_new_ip_button").unbind("click").bind("click", function(event) { - $("#dialog_acquire_public_ip").dialog('option', 'buttons', { - "Acquire": function() { - var thisDialog = $(this); - thisDialog.dialog("close"); - - var zoneid = thisDialog.find("#acquire_zone").val(); - - var $midmenuItem1 = beforeAddingMidMenuItem() ; - - $.ajax({ - data: createURL("command=associateIpAddress&zoneid="+zoneid), - dataType: "json", - success: function(json) { - var jobId = json.associateipaddressresponse.jobid; - var timerKey = "associateIpJob_"+jobId; - - $("body").everyTime(2000, timerKey, function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - if (result.jobstatus == 1) { - // Succeeded - ipToMidmenu(result.jobresult.ipaddress, $midmenuItem1); - bindClickToMidMenu($midmenuItem1, ipToRightPanel, ipGetMidmenuId); - afterAddingMidMenuItem($midmenuItem1, true); - } else if (result.jobstatus == 2) { - afterAddingMidMenuItem($midmenuItem1, false, fromdb(result.jobresult.errortext)); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - handleError(XMLHttpResponse, function() { - afterAddingMidMenuItem($midmenuItem1, false, parseXMLHttpResponse(XMLHttpResponse)); - }); - } - }); - }, 0); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse, function() { - afterAddingMidMenuItem($midmenuItem1, false, parseXMLHttpResponse(XMLHttpResponse)); - }); - } - }); - }, - "Cancel": function() { - $(this).dialog("close"); - } - }).dialog("open"); - return false; - }); - //*** Acquire New IP (end) *** - - //*** Port Range tab (begin) *** - var $createPortRangeRow = $("#tab_content_port_range").find("#create_port_range_row"); - - $createPortRangeRow.find("#add_link").bind("click", function(event){ - var isValid = true; - isValid &= validateInteger("Start Port", $createPortRangeRow.find("#start_port"), $createPortRangeRow.find("#start_port_errormsg"), 1, 65535); - isValid &= validateInteger("End Port", $createPortRangeRow.find("#end_port"), $createPortRangeRow.find("#end_port_errormsg"), 1, 65535); - if (!isValid) - return; - - var $template = $("#port_range_template").clone(); - $("#tab_content_port_range #grid_content").append($template.show()); - - var $spinningWheel = $template.find("#row_container").find("#spinning_wheel"); - $spinningWheel.find("#description").text(g_dictionary["label.adding.processing"]); - $spinningWheel.show(); - - var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); - var ipObj = $midmenuItem1.data("jsonObj"); - - var startPort = $createPortRangeRow.find("#start_port").val(); - var endPort = $createPortRangeRow.find("#end_port").val(); - var protocol = $createPortRangeRow.find("#protocol").val(); - - var array1 = []; - array1.push("&ipaddressid="+ipObj.id); - array1.push("&startPort="+startPort); - array1.push("&endPort="+endPort); - array1.push("&protocol="+protocol); - - $.ajax({ - data: createURL("command=createIpForwardingRule"+array1.join("")), - dataType: "json", - success: function(json) { - var jobId = json.createipforwardingruleresponse.jobid; - var timerKey = "asyncJob_" + jobId; - $("body").everyTime( - 10000, - timerKey, - function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - if (result.jobstatus == 1) { // Succeeded - var item = json.queryasyncjobresultresponse.jobresult.ipforwardingrule; - portRangeJsonToTemplate(item, $template); - $spinningWheel.hide(); - refreshCreatePortRangeRow(); - } else if (result.jobstatus == 2) { // Failed - $template.slideUp("slow", function() { - $(this).remove(); - }); - //var errorMsg = g_dictionary["label.failed"] + " - " + g_dictionary["label.error.code"] + " " + fromdb(result.jobresult.errorcode); - var errorMsg = g_dictionary["label.failed"] + " - " + fromdb(result.jobresult.errortext); - $("#dialog_error").text(errorMsg).dialog("open"); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - handleError(XMLHttpResponse, function() { - $template.slideUp("slow", function() { - $(this).remove(); - }); - var errorMsg = parseXMLHttpResponse(XMLHttpResponse); - $("#dialog_error").text(fromdb(errorMsg)).dialog("open"); - }); - } -<<<<<<< HEAD - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - handleError(XMLHttpResponse, function() { - $template.slideUp("slow", function() { - $(this).remove(); - }); - var errorMsg = parseXMLHttpResponse(XMLHttpResponse); - $("#dialog_error").text(fromdb(errorMsg)).dialog("open"); - }); - } - }); - }, - 0 - ); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse, function() { - $template.slideUp("slow", function() { - $(this).remove(); - }); - var errorMsg = parseXMLHttpResponse(XMLHttpResponse); - $("#dialog_error").text(fromdb(errorMsg)).dialog("open"); - }); - } - }); - - return false; - }); - //*** Port Range tab (end) *** - - //*** Port Forwarding tab (begin) *** - var $createPortForwardingRow = $("#tab_content_port_forwarding").find("#create_port_forwarding_row"); - - // If public end port gets filled, disable private ports and copy public ports over to private ports - /* - $createPortForwardingRow.find("#public_end_port").bind("keyup", function(event) { - if($(this).val() != null && $(this).val().length > 0) { - $createPortForwardingRow.find("#private_port").attr("readonly", true); - $createPortForwardingRow.find("#private_end_port").attr("readonly", true); - - $createPortForwardingRow.find("#private_port").val($createPortForwardingRow.find("#public_port").val()); - $createPortForwardingRow.find("#private_end_port").val($(this).val()); - } - else { - $createPortForwardingRow.find("#private_port").removeAttr("readonly"); - $createPortForwardingRow.find("#private_end_port").removeAttr("readonly"); - } - return true; - }); - $createPortForwardingRow.find("#public_port").bind("keyup", function(event) { - if($createPortForwardingRow.find("#private_port").attr("readonly") == true) - $createPortForwardingRow.find("#private_port").val($(this).val()); - return true; - }); - */ - - $createPortForwardingRow.find("#add_link").bind("click", function(event){ - var isValid = true; - - isValid &= validateCIDRList("CIDR", $createPortForwardingRow.find("#cidr"), $createPortForwardingRow.find("#cidr_errormsg"), true); //optional - - isValid &= validateInteger("Public Port", $createPortForwardingRow.find("#public_port"), $createPortForwardingRow.find("#public_port_errormsg"), 1, 65535, false); //required - isValid &= validateInteger("Public End Port", $createPortForwardingRow.find("#public_end_port"), $createPortForwardingRow.find("#public_end_port_errormsg"), 1, 65535, true); //optional - - isValid &= validateInteger("Private Port", $createPortForwardingRow.find("#private_port"), $createPortForwardingRow.find("#private_port_errormsg"), 1, 65535, false); //required - isValid &= validateInteger("Private End Port", $createPortForwardingRow.find("#private_end_port"), $createPortForwardingRow.find("#private_end_port_errormsg"), 1, 65535, true); //optional -======= - }); - }, - 0 - ); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse, function() { - $template.slideUp("slow", function() { - $(this).remove(); - }); - var errorMsg = parseXMLHttpResponse(XMLHttpResponse); - $("#dialog_error").text(fromdb(errorMsg)).dialog("open"); - }); - } - }); - - return false; - }); - //*** Port Range tab (end) *** - - //*** Port Forwarding tab (begin) *** - var $createPortForwardingRow = $("#tab_content_port_forwarding").find("#create_port_forwarding_row"); - - // If public end port gets filled, disable private ports and copy public ports over to private ports - /* - $createPortForwardingRow.find("#public_end_port").bind("keyup", function(event) { - if($(this).val() != null && $(this).val().length > 0) { - $createPortForwardingRow.find("#private_port").attr("readonly", true); - $createPortForwardingRow.find("#private_end_port").attr("readonly", true); - - $createPortForwardingRow.find("#private_port").val($createPortForwardingRow.find("#public_port").val()); - $createPortForwardingRow.find("#private_end_port").val($(this).val()); - } - else { - $createPortForwardingRow.find("#private_port").removeAttr("readonly"); - $createPortForwardingRow.find("#private_end_port").removeAttr("readonly"); - } - return true; - }); - $createPortForwardingRow.find("#public_port").bind("keyup", function(event) { - if($createPortForwardingRow.find("#private_port").attr("readonly") == true) - $createPortForwardingRow.find("#private_port").val($(this).val()); - return true; - }); - */ - - $createPortForwardingRow.find("#add_link").bind("click", function(event){ - var isValid = true; ->>>>>>> 2.2.8.nectarine - - isValid &= validateCIDRList("CIDR", $createPortForwardingRow.find("#cidr"), $createPortForwardingRow.find("#cidr_errormsg"), true); //optional - - isValid &= validateInteger("Public Port", $createPortForwardingRow.find("#public_port"), $createPortForwardingRow.find("#public_port_errormsg"), 1, 65535, false); //required - //isValid &= validateInteger("Public End Port", $createPortForwardingRow.find("#public_end_port"), $createPortForwardingRow.find("#public_end_port_errormsg"), 1, 65535, true); //optional - - isValid &= validateInteger("Private Port", $createPortForwardingRow.find("#private_port"), $createPortForwardingRow.find("#private_port_errormsg"), 1, 65535, false); //required - //isValid &= validateInteger("Private End Port", $createPortForwardingRow.find("#private_end_port"), $createPortForwardingRow.find("#private_end_port_errormsg"), 1, 65535, true); //optional - - isValid &= validateDropDownBox("Instance", $createPortForwardingRow.find("#vm"), $createPortForwardingRow.find("#vm_errormsg")); - if (!isValid) - return; - - var $template = $("#port_forwarding_template").clone(); - $("#tab_content_port_forwarding #grid_content").append($template.show()); - - var $spinningWheel = $template.find("#row_container").find("#spinning_wheel"); - $spinningWheel.find("#description").text(g_dictionary["label.adding.processing"]); - $spinningWheel.show(); - - var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); - var ipObj = $midmenuItem1.data("jsonObj"); - - var array1 = []; - array1.push("&ipaddressid="+ipObj.id); - - var cidr = $createPortForwardingRow.find("#cidr").val(); - if(cidr != null && cidr.length > 0) - array1.push("&cidrlist="+cidr); - - var publicPort = $createPortForwardingRow.find("#public_port").val(); - array1.push("&publicport="+publicPort); - var publicEndPort = $createPortForwardingRow.find("#public_end_port").val(); - if(publicEndPort != null && publicEndPort.length > 0) - array1.push("&publicendport="+publicEndPort); - - var privatePort = $createPortForwardingRow.find("#private_port").val(); - array1.push("&privateport="+privatePort); - var privateEndPort = $createPortForwardingRow.find("#private_end_port").val(); - if(privateEndPort != null && privateEndPort.length > 0) - array1.push("&privateendport="+privateEndPort); - - var protocol = $createPortForwardingRow.find("#protocol").val(); - array1.push("&protocol="+protocol); - - var virtualMachineId = $createPortForwardingRow.find("#vm").val(); - array1.push("&virtualmachineid=" + virtualMachineId); - - $.ajax({ - data: createURL("command=createPortForwardingRule"+array1.join("")), - dataType: "json", - success: function(json) { - var jobId = json.createportforwardingruleresponse.jobid; - var timerKey = "asyncJob_" + jobId; - $("body").everyTime( - 10000, - timerKey, - function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - if (result.jobstatus == 1) { // Succeeded - var item = json.queryasyncjobresultresponse.jobresult.portforwardingrule; - portForwardingJsonToTemplate(item,$template); - $spinningWheel.hide(); - refreshCreatePortForwardingRow(); - } else if (result.jobstatus == 2) { // Failed - $template.slideUp("slow", function() { - $(this).remove(); - }); - //var errorMsg = g_dictionary["label.failed"] + " - " + g_dictionary["label.error.code"] + " " + fromdb(result.jobresult.errorcode); - var errorMsg = g_dictionary["label.failed"] + " - " + fromdb(result.jobresult.errortext); - $("#dialog_error").text(errorMsg).dialog("open"); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - handleError(XMLHttpResponse, function() { - $template.slideUp("slow", function() { - $(this).remove(); - }); - var errorMsg = parseXMLHttpResponse(XMLHttpResponse); - $("#dialog_error").text(fromdb(errorMsg)).dialog("open"); - }); - } - }); - }, - 0 - ); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse, function() { - $template.slideUp("slow", function() { - $(this).remove(); - }); - var errorMsg = parseXMLHttpResponse(XMLHttpResponse); - $("#dialog_error").text(fromdb(errorMsg)).dialog("open"); - }); - } - }); - - return false; - }); - //*** Port Forwarding tab (end) *** - } - - //*** Load Balancer tab (begin) *** - var createLoadBalancerRow = $("#tab_content_load_balancer #create_load_balancer_row"); - - createLoadBalancerRow.find("#add_link").bind("click", function(event){ - // validate values - var isValid = true; - isValid &= validateCIDRList("CIDR", createLoadBalancerRow.find("#cidr"), createLoadBalancerRow.find("#cidr_errormsg"), true); //optional - isValid &= validateString("Name", createLoadBalancerRow.find("#name"), createLoadBalancerRow.find("#name_errormsg")); - isValid &= validateInteger("Public Port", createLoadBalancerRow.find("#public_port"), createLoadBalancerRow.find("#public_port_errormsg"), 1, 65535); - isValid &= validateInteger("Private Port", createLoadBalancerRow.find("#private_port"), createLoadBalancerRow.find("#private_port_errormsg"), 1, 65535); - if (!isValid) return; - - var $template = $("#load_balancer_template").clone(); - $("#tab_content_load_balancer #grid_content").append($template.show()); - - var $spinningWheel = $template.find("#row_container").find("#spinning_wheel"); - $spinningWheel.find("#description").text(g_dictionary["label.adding.processing"]); - $spinningWheel.show(); - - var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); - var ipObj = $midmenuItem1.data("jsonObj"); - - var array1 = []; - array1.push("&publicipid="+ipObj.id); - - var cidr = createLoadBalancerRow.find("#cidr").val(); - if(cidr != null && cidr.length > 0) - array1.push("&cidrlist="+cidr); - - var name = createLoadBalancerRow.find("#name").val(); - array1.push("&name="+todb(name)); - - var publicPort = createLoadBalancerRow.find("#public_port").val(); - array1.push("&publicport="+publicPort); - - var privatePort = createLoadBalancerRow.find("#private_port").val(); - array1.push("&privateport="+privatePort); - - var algorithm = createLoadBalancerRow.find("#algorithm_select").val(); - array1.push("&algorithm="+algorithm); - - $.ajax({ - data: createURL("command=createLoadBalancerRule"+array1.join("")), - dataType: "json", - success: function(json) { - var jobId = json.createloadbalancerruleresponse.jobid; - var timerKey = "addLbJob_"+jobId; - - $("body").everyTime(2000, timerKey, function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - if (result.jobstatus == 1) { - // Succeeded - var item = result.jobresult.loadbalancer; - loadBalancerJsonToTemplate(item, $template); - $spinningWheel.hide(); - refreshCreateLoadBalancerRow(); - } else if (result.jobstatus == 2) { - $template.slideUp("slow", function() { - $(this).remove(); - }); - var errorMsg = fromdb(result.jobresult.errortext); - $("#dialog_error").text(fromdb(errorMsg)).dialog("open"); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - handleError(XMLHttpResponse, function() { - $template.slideUp("slow", function() { - $(this).remove(); - }); - var errorMsg = parseXMLHttpResponse(XMLHttpResponse); - $("#dialog_error").text(fromdb(errorMsg)).dialog("open"); - }); - } - }); - }, 0); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse, function() { - $template.slideUp("slow", function() { - $(this).remove(); - }); - var errorMsg = parseXMLHttpResponse(XMLHttpResponse); - $("#dialog_error").text(fromdb(errorMsg)).dialog("open"); - }); - } - }); - - return false; - }); - //*** Load Balancer tab (end) *** -} - -function ipGetMidmenuId(jsonObj) { - return ipGetMidmenuId2(jsonObj.ipaddress); -} - -function ipGetMidmenuId2(ipaddress) { - return "midmenuItem_" + ipaddress.replace(/\./g, "_"); //e.g. "192.168.33.108" => "192_168_33_108" -} - -function ipToMidmenu(jsonObj, $midmenuItem1) { - var id = ipGetMidmenuId(jsonObj); - $midmenuItem1.attr("id", id); - $midmenuItem1.data("jsonObj", jsonObj); - - var $iconContainer = $midmenuItem1.find("#icon_container").show(); - $iconContainer.find("#icon").attr("src", "images/midmenuicon_network_networkgroup.png"); - - var firstRowText = fromdb(jsonObj.ipaddress); - if (jsonObj.issourcenat == true) - firstRowText += "[source nat]"; - $midmenuItem1.find("#first_row").text(firstRowText.substring(0,midMenuFirstRowLength)); - $midmenuItem1.find("#first_row_container").attr("title", firstRowText); - - var secondRowText = "owned by: "+fromdb(jsonObj.account); - $midmenuItem1.find("#second_row").text(secondRowText.substring(0,midMenuSecondRowLength)); - $midmenuItem1.find("#second_row_container").attr("title", secondRowText); -} - -function isIpManageable(domainid, account) { - if(((g_domainid == domainid && g_account == account) || (isDomainAdmin()) || (isAdmin())) - && account!="system") - return true; - else - return false; -} - -function ipToRightPanel($midmenuItem1) { - var ipObj = $midmenuItem1.data("jsonObj"); - - var networkObj; - if(ipObj.networkid != null) { - $.ajax({ - data: createURL("command=listNetworks&id="+ipObj.associatednetworkid), - dataType: "json", - async: false, - success: function(json) { - var items = json.listnetworksresponse.network; - if(items != null && items.length > 0) { - networkObj = items[0]; - $midmenuItem1.data("networkObj", networkObj); - } - } - }); - } - - copyActionInfoFromMidMenuToRightPanel($midmenuItem1); - - $("#right_panel_content").data("$midmenuItem1", $midmenuItem1); - - if(g_supportELB == "guest" || g_supportELB == "public") - $("#tab_load_balancer").click(); - else - $("#tab_details").click(); - - if(ipObj.isstaticnat == true) { - $("#tab_port_range").show(); - $("#tab_port_forwarding, #tab_load_balancer, #tab_vpn").hide(); - } - else { //ipObj.isstaticnat == false - $("#tab_port_range").hide(); - if(ipObj.forvirtualnetwork == true) { //(public network) - if(isIpManageable(ipObj.domainid, ipObj.account) == true) { - //Port Forwarding tab - if(networkObj != null) { - var firewallServiceObj = ipFindNetworkServiceByName("Firewall", networkObj); - if(firewallServiceObj != null) { - var portForwardingCapabilityObj = ipFindCapabilityByName("PortForwarding", firewallServiceObj); - if(portForwardingCapabilityObj != null) { - if(portForwardingCapabilityObj.value == "true") - $("#tab_port_forwarding").show(); - else - $("#tab_port_forwarding").hide(); - } - else { - $("#tab_port_forwarding").hide(); - } - } - else { - $("#tab_port_forwarding").hide(); - } - } - else { - $("#tab_port_forwarding").hide(); - } - - //Load Balancer tab - if (ipObj.issourcenat == true) { - var lbServiceObj = ipFindNetworkServiceByName("Lb", networkObj); - if(lbServiceObj != null) { - var LoadBalancingSupportedIpsCapabilityObj = ipFindCapabilityByName("LoadBalancingSupportedIps", lbServiceObj); - if(LoadBalancingSupportedIpsCapabilityObj != null) - $("#tab_load_balancer").hide(); - else - $("#tab_load_balancer").show(); - } - else { - $("#tab_load_balancer").hide(); - } - } - else { - if(networkObj != null) { - var lbServiceObj = ipFindNetworkServiceByName("Lb", networkObj); - if(lbServiceObj != null) - $("#tab_load_balancer").show(); - else - $("#tab_load_balancer").hide(); - } - else { - $("#tab_load_balancer").hide(); - } - } - - //VPN tab - if (ipObj.issourcenat == true) { - var vpnServiceObj = ipFindNetworkServiceByName("Vpn", networkObj); - if(vpnServiceObj != null) - $("#tab_vpn").show(); - else - $("#tab_vpn").hide(); - } - else { - $("#tab_vpn").hide(); - } - } - else { - $("#tab_port_forwarding, #tab_load_balancer, #tab_vpn").hide(); - } - } - else { //ipObj.forvirtualnetwork == false (direct network) - $("#tab_port_forwarding, #tab_load_balancer, #tab_vpn").hide(); - } - } -} - -function ipJsonToPortRangeTab() { - var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); - - if($midmenuItem1 == null) { - ipClearPortRangeTab(); - return; - } - - var ipObj = $midmenuItem1.data("jsonObj"); - if(ipObj == null) { - ipClearPortRangeTab(); - return; - } - - var $thisTab = $("#right_panel_content #tab_content_port_range"); - $thisTab.find("#tab_container").hide(); - $thisTab.find("#tab_spinning_wheel").show(); - - var networkObj = $midmenuItem1.data("networkObj"); - if(networkObj != null) { - var firewallServiceObj = ipFindNetworkServiceByName("Firewall", networkObj); - if(firewallServiceObj != null) { - var supportedProtocolsCapabilityObj = ipFindCapabilityByName("SupportedProtocols", firewallServiceObj); - if(supportedProtocolsCapabilityObj != null) { - var protocols = supportedProtocolsCapabilityObj.value.toUpperCase(); //e.g. "tcp,udp" => "TCP,UDP" - var array1 = protocols.split(","); - var $protocolField = $("#create_port_range_row").find("#protocol").empty(); - for(var i=0; i"+array1[i]+"") - } - } - } - - refreshCreatePortRangeRow(); - - $.ajax({ - data: createURL("command=listIpForwardingRules&ipaddressid=" + ipObj.id), - dataType: "json", - success: function(json) { - var items = json.listipforwardingrulesresponse.ipforwardingrule; - var $PortRangeGrid = $thisTab.find("#grid_content"); - $PortRangeGrid.empty(); - if (items != null && items.length > 0) { - for (var i = 0; i < items.length; i++) { - var $template = $("#port_range_template").clone(true); - portRangeJsonToTemplate(items[i], $template); - $PortRangeGrid.append($template.show()); - } - } - $thisTab.find("#tab_spinning_wheel").hide(); - $thisTab.find("#tab_container").show(); - } - }); -} - -function ipJsonToPortForwardingTab() { - var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); - if($midmenuItem1 == null) { - ipClearPortForwardingTab(); - return; - } - - var ipObj = $midmenuItem1.data("jsonObj"); - if(ipObj == null) { - ipClearPortForwardingTab(); - return; - } - - var $thisTab = $("#right_panel_content #tab_content_port_forwarding"); - $thisTab.find("#tab_container").hide(); - $thisTab.find("#tab_spinning_wheel").show(); - - var networkObj = $midmenuItem1.data("networkObj"); - if(networkObj != null) { - var firewallServiceObj = ipFindNetworkServiceByName("Firewall", networkObj); - if(firewallServiceObj != null) { - var supportedProtocolsCapabilityObj = ipFindCapabilityByName("SupportedProtocols", firewallServiceObj); - if(supportedProtocolsCapabilityObj != null) { - var protocols = supportedProtocolsCapabilityObj.value.toUpperCase(); //e.g. "tcp,udp" => "TCP,UDP" - var array1 = protocols.split(","); - var $protocolField = $("#create_port_forwarding_row").find("#protocol").empty(); - for(var i=0; i"+array1[i]+"") - } - } - } - - refreshCreatePortForwardingRow(); - - $.ajax({ - data: createURL("command=listPortForwardingRules&ipaddressid=" + ipObj.id), - dataType: "json", - success: function(json) { - var items = json.listportforwardingrulesresponse.portforwardingrule; - var $portForwardingGrid = $thisTab.find("#grid_content"); - $portForwardingGrid.empty(); - if (items != null && items.length > 0) { - for (var i = 0; i < items.length; i++) { - var $template = $("#port_forwarding_template").clone(true); - portForwardingJsonToTemplate(items[i], $template); - $portForwardingGrid.append($template.show()); - } - } - $thisTab.find("#tab_spinning_wheel").hide(); - $thisTab.find("#tab_container").show(); - } - }); -} - -function ipJsonToLoadBalancerTab() { - var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); - if($midmenuItem1 == null) { - ipClearLoadBalancerTab(); - return; - } - - var ipObj = $midmenuItem1.data("jsonObj"); - if(ipObj == null) { - ipClearLoadBalancerTab(); - return; - } - - var $thisTab = $("#right_panel_content #tab_content_load_balancer"); - $thisTab.find("#tab_container").hide(); - $thisTab.find("#tab_spinning_wheel").show(); - - var networkObj = $midmenuItem1.data("networkObj"); - if(networkObj != null) { - var lbServiceObj = ipFindNetworkServiceByName("Lb", networkObj); - if(lbServiceObj != null) { - var supportedLbAlgorithmsCapabilityObj = ipFindCapabilityByName("SupportedLbAlgorithms", lbServiceObj); - if(supportedLbAlgorithmsCapabilityObj != null) { - var algorithms = supportedLbAlgorithmsCapabilityObj.value; //e.g. "roundrobin,leastconn,sourceip" - var array1 = algorithms.split(","); - var $algorithmField1 = $("#create_load_balancer_row").find("#algorithm_select").empty(); - var $algorithmField2 = $("#load_balancer_template").find("#row_container_edit").find("#algorithm_select").empty(); - for(var i=0; i"+array1[i]+""); - $algorithmField2.append(""); - } - } - } - } - - refreshCreateLoadBalancerRow(); - - $.ajax({ - data: createURL("command=listLoadBalancerRules&publicipid="+ipObj.id), - dataType: "json", - success: function(json) { - var items = json.listloadbalancerrulesresponse.loadbalancerrule; - var loadBalancerGrid = $thisTab.find("#grid_content"); - loadBalancerGrid.empty(); - if (items != null && items.length > 0) { - for (var i = 0; i < items.length; i++) { - var $template = $("#load_balancer_template").clone(true); - loadBalancerJsonToTemplate(items[i], $template); - loadBalancerGrid.append($template.show()); - } - } - $thisTab.find("#tab_spinning_wheel").hide(); - $thisTab.find("#tab_container").show(); - } - }); -} - -function showEnableVPNDialog($thisTab) { - $("#dialog_enable_vpn") - .dialog('option', 'buttons', { - "Enable": function() { - var $thisDialog = $(this); - $thisDialog.find("#info_container").hide(); - $spinningWheel = $thisDialog.find("#spinning_wheel").show(); - - var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); - var ipObj = $midmenuItem1.data("jsonObj"); - - $.ajax({ - data: createURL("command=createRemoteAccessVpn&publicipid="+ipObj.id+"&account="+ipObj.account+"&domainid="+ipObj.domainid+"&zoneid="+ipObj.zoneid), - dataType: "json", - success: function(json) { - var jobId = json.createremoteaccessvpnresponse.jobid; - var timerKey = "asyncJob_" + jobId; - $("body").everyTime( - 5000, - timerKey, - function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - if (result.jobstatus == 1) { // Succeeded - showVpnUsers(result.jobresult.remoteaccessvpn.presharedkey, result.jobresult.remoteaccessvpn.publicip); - $thisDialog.dialog("close"); - $thisTab.find("#tab_container").show(); - $thisTab.find("#vpn_disabled_msg").hide(); - } else if (result.jobstatus == 2) { // Failed - //var errorMsg = "We were unable to enable VPN access. Please contact support."; - var errorMsg = g_dictionary["label.failed"] + " - " + fromdb(result.jobresult.errortext); - $thisDialog.find("#info_container").text(errorMsg).show(); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - handleError(XMLHttpResponse, function() { - handleErrorInDialog(XMLHttpResponse, $thisDialog); - }); - } - }); - }, - 0 - ); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse, function() { - handleErrorInDialog(XMLHttpResponse, $thisDialog); - }); - } - }); - }, - "Cancel": function() { - $thisTab.find("#tab_container").hide(); - $thisTab.find("#vpn_disabled_msg").show(); - $(this).dialog("close"); - $thisTab.find("#enable_vpn_link").unbind("click").bind("click", function(event) { - showEnableVPNDialog($thisTab); - }); - } - }).dialog("open"); -} - -function ipJsonToVPNTab() { - var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); - if($midmenuItem1 == null) { - ipClearVPNTab(); - return; - } - - var ipObj = $midmenuItem1.data("jsonObj"); - if(ipObj == null) { - ipClearVPNTab(); - return; - } - - var $thisTab = $("#right_panel_content").find("#tab_content_vpn"); - $thisTab.find("#tab_spinning_wheel").show(); - $thisTab.find("#tab_container").hide(); - - $.ajax({ - data: createURL("command=listRemoteAccessVpns&publicipid="+ipObj.id), - dataType: "json", - success: function(json) { - var items = json.listremoteaccessvpnsresponse.remoteaccessvpn; - if (items != null && items.length > 0) { - showVpnUsers(items[0].presharedkey, items[0].publicip); - } else { - showEnableVPNDialog($thisTab); - } - $thisTab.find("#tab_spinning_wheel").hide(); - $thisTab.find("#tab_container").show(); - $thisTab.find("#vpn_disabled_msg").hide(); - } - }); -} - -function ipClearVPNTab() { - var $thisTab = $("#right_panel_content").find("#tab_content_vpn"); - showEnableVPNDialog($thisTab); - $thisTab.find("#vpn_disabled_msg").hide(); -} - -function showVpnUsers(presharedkey, publicip) { - var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); - var ipObj = $midmenuItem1.data("jsonObj"); - var $vpnTab = $("#right_panel_content #tab_content_vpn"); - var $actionMenu = $vpnTab.find("#vpn_action_menu"); - $actionMenu.find("#action_list").empty(); - - $vpnTab.find("#vpn_key").text(presharedkey); - $vpnTab.find("#vpn_ip").text(publicip); - - var $listItemTemplate = $("#action_list_item"); - var $listItem = $listItemTemplate.clone(); - $listItem.find("#link").text("Disable VPN"); - $listItem.bind("click", function(event) { - $actionMenu.hide(); - $("#dialog_disable_vpn") - .dialog('option', 'buttons', { - "Disable": function() { - var $thisDialog = $(this); - $thisDialog.find("#info_container").hide(); - $spinningWheel = $thisDialog.find("#spinning_wheel").show(); - $.ajax({ - data: createURL("command=deleteRemoteAccessVpn&publicipid="+ipObj.id+"&account="+ipObj.account+"&domainid="+ipObj.domainid+"&zoneid="+ipObj.zoneid), - dataType: "json", - success: function(json) { - var jobId = json.deleteremoteaccessvpnresponse.jobid; - var timerKey = "asyncJob_" + jobId; - $("body").everyTime( - 5000, - timerKey, - function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - - if (result.jobstatus == 1) { // Succeeded - $thisDialog.dialog("close"); - $vpnTab.find("#vpn_help").hide(); - $vpnTab.find("#enable_vpn_link").unbind("click").bind("click", function(event) { - showEnableVPNDialog($vpnTab); - }); - $vpnTab.find("#tab_container").hide(); - $vpnTab.find("#vpn_disabled_msg").show(); - } else if (result.jobstatus == 2) { // Failed - //var errorMsg = "We were unable to disable VPN access. Please contact support."; - var errorMsg = g_dictionary["label.failed"] + " - " + fromdb(result.jobresult.errortext); - $thisDialog.find("#info_container").text(errorMsg).show(); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - handleError(XMLHttpResponse, function() { - handleErrorInDialog(XMLHttpResponse, $thisDialog); - }); - } - }); - }, - 0 - ); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse, function() { - handleErrorInDialog(XMLHttpResponse, $thisDialog); - }); - } - }); - }, - "Cancel": function() { - $(this).dialog("close"); - } - }).dialog("open"); - return false; - }); - $actionMenu.find("#action_list").append($listItem.show()); - - $listItem = $listItemTemplate.clone(); - $listItem.find("#link").text("Add VPN User"); - $listItem.bind("click", function(event) { - $actionMenu.hide(); - $vpnDialog = $("#dialog_add_vpnuser"); - $vpnDialog.find("#username").val(""); - $vpnDialog.find("#password").val(""); - $("#dialog_add_vpnuser") - .dialog('option', 'buttons', { - "Add": function() { - var $thisDialog = $(this); - $thisDialog.find("#info_container").hide(); - - var isValid = true; - isValid &= validateString("Username", $thisDialog.find("#username"), $thisDialog.find("#username_errormsg")); - isValid &= validateString("Password", $thisDialog.find("#password"), $thisDialog.find("#password_errormsg")); - if (!isValid) return; - - var username = todb($thisDialog.find("#username").val()); - var password = todb($thisDialog.find("#password").val()); - - $spinningWheel = $thisDialog.find("#spinning_wheel").show(); - $.ajax({ - data: createURL("command=addVpnUser&username="+username+"&password="+password), - dataType: "json", - success: function(json) { - var jobId = json.addvpnuserresponse.jobid; - var timerKey = "asyncJob_" + jobId; - $("body").everyTime( - 5000, - timerKey, - function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - - if (result.jobstatus == 1) { // Succeeded - $thisDialog.dialog("close"); - $("#tab_content_vpn #grid_content").append(vpnUserJsonToTemplate(result.jobresult.vpnuser).fadeIn()); - } else if (result.jobstatus == 2) { // Failed - //var errorMsg = "We were unable to add user access to your VPN. Please contact support."; - var errorMsg = g_dictionary["label.failed"] + " - " + fromdb(result.jobresult.errortext); - $thisDialog.find("#info_container").text(errorMsg).show(); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - handleError(XMLHttpResponse, function() { - handleErrorInDialog(XMLHttpResponse, $thisDialog); - }); - } - }); - }, - 0 - ); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse, function() { - handleErrorInDialog(XMLHttpResponse, $thisDialog); - }); - } - }); - }, - "Cancel": function() { - $(this).dialog("close"); - } - }).dialog("open"); - return false; - }); - $actionMenu.find("#action_list").append($listItem.show()); - - // Enable action menu for vpn - var $actionLink = $vpnTab.find("#vpn_action_link"); - $actionLink.unbind("mouseover").bind("mouseover", function(event) { - $(this).find("#vpn_action_menu").show(); - return false; - }); - $actionLink.unbind("mouseout").bind("mouseout", function(event) { - $(this).find("#vpn_action_menu").hide(); - return false; - }); - - $vpnTab.find("#vpn_help").show(); - enableDeleteUser(); - // List users - $.ajax({ - data: createURL("command=listVpnUsers&account="+ipObj.account+"&domainid="+ipObj.domainid), - dataType: "json", - async: false, - success: function(json) { - var items = json.listvpnusersresponse.vpnuser; - if(items != null && items.length > 0) { - var $gridContent = $("#tab_content_vpn #grid_content").empty(); - for (var i = 0; i < items.length; i++) { - $gridContent.append(vpnUserJsonToTemplate(items[i]).show()); - } - - //Enable delete user - - } - } - }); -} - -function enableDeleteUser() { - $("#tab_content_vpn #grid_content").unbind("click").bind("click", function(event) { - var target = $(event.target); - var targetId = target.attr("id"); - if (targetId == "vpn_delete_user") { - var id = target.data("id"); - var username = target.data("username"); - var account = target.data("account"); - var domainId = target.data("domainid"); - var params = []; - params.push("&username="+username); - params.push("&account="+account); - params.push("&domainid="+domainId); - var $thisDialog = $("#dialog_confirmation_remove_vpnuser"); - $thisDialog.find("#username").text(target.data("username")); - $thisDialog.dialog('option', 'buttons', { - "Ok": function() { - $thisDialog.find("#info_container").hide(); - $spinningWheel = $thisDialog.find("#spinning_wheel").show(); - $.ajax({ - data: createURL("command=removeVpnUser"+params.join("")), - dataType: "json", - success: function(json) { - var jobId = json.removevpnuserresponse.jobid; - var timerKey = "asyncJob_" + jobId; - $("body").everyTime( - 5000, - timerKey, - function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - - if (result.jobstatus == 1) { // Succeeded - $thisDialog.dialog("close"); - - //remove user from grid - $("#right_panel_content #tab_content_vpn").find("#vpnuser"+id).slideUp(); - } else if (result.jobstatus == 2) { // Failed - //var errorMsg = "We were unable to add user access to your VPN. Please contact support."; - var errorMsg = g_dictionary["label.failed"] + " - " + fromdb(result.jobresult.errortext); - $thisDialog.find("#info_container").text(errorMsg).show(); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - handleError(XMLHttpResponse, function() { - handleErrorInDialog(XMLHttpResponse, $thisDialog); - }); - } - }); - }, - 0 - ); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse, function() { - handleErrorInDialog(XMLHttpResponse, $thisDialog); - }); - } - }); - }, - "Cancel": function() { - $(this).dialog("close"); - } - }).dialog("open"); - - } - return false; - }); -} - - -var vpnItem = 1; -function vpnUserJsonToTemplate(json) { - var $template = $("#vpn_template").clone(); - if (vpnItem++ % 2 == 0) $template.removeClass("odd").addClass("even"); - $template.find("#username").text(json.username); - $template.attr("id", "vpnuser"+json.id); - $template.find("#vpn_delete_user").data("id", json.id).data("username", json.username).data("account", json.account).data("domainid", json.domainid); - return $template; -} - -function ipClearRightPanel() { - ipClearDetailsTab(); - ipClearPortForwardingTab(); - ipClearLoadBalancerTab(); -} - -//***** Details tab (begin) **************************************************************************************************************** -function ipJsonToDetailsTab() { - var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); - if($midmenuItem1 == null) { - ipClearDetailsTab() - return; - } - - var ipObj = $midmenuItem1.data("jsonObj"); - if(ipObj == null) { - ipClearDetailsTab() - return; - } - - var networkObj = $midmenuItem1.data("networkObj"); - - var publicipid = ipObj.id; - - var $thisTab = $("#right_panel_content").find("#tab_content_details"); - $thisTab.find("#tab_container").hide(); - $thisTab.find("#tab_spinning_wheel").show(); - - - var cmd; - if(g_supportELB == "guest") { - cmd = "command=listPublicIpAddresses&forvirtualnetwork=false&id="+publicipid; - } - else if(g_supportELB == "public") { - cmd = "command=listPublicIpAddresses&forvirtualnetwork=true&id="+publicipid; - } - else { - if(g_supportELB == null) - alert("supportELB should be either guest or public. It should not be null."); - else - alert("supportELB should be either guest or public. It should not be " + g_supportELB); - return; - } - - $.ajax({ - data: createURL(cmd), - dataType: "json", - async: false, - success: function(json) { - var items = json.listpublicipaddressesresponse.publicipaddress; - if(items != null && items.length > 0) { - ipObj = items[0]; - $midmenuItem1.data("jsonObj", ipObj); - } - } - }); - - $thisTab.find("#grid_header_title").text(fromdb(ipObj.ipaddress)); - $thisTab.find("#id").text(fromdb(ipObj.id)); - $thisTab.find("#ipaddress").text(fromdb(ipObj.ipaddress)); - $thisTab.find("#zonename").text(fromdb(ipObj.zonename)); - $thisTab.find("#state").text(fromdb(ipObj.state)); - $thisTab.find("#vlanname").text(fromdb(ipObj.vlanname)); - setBooleanReadField(ipObj.issourcenat, $thisTab.find("#source_nat")); - setNetworkTypeField(ipObj.forvirtualnetwork, $thisTab.find("#network_type")); - $thisTab.find("#networkid").text(fromdb(ipObj.networkid)); - $thisTab.find("#associatednetworkid").text(fromdb(ipObj.associatednetworkid)); - $thisTab.find("#domain").text(fromdb(ipObj.domain)); - $thisTab.find("#account").text(fromdb(ipObj.account)); - $thisTab.find("#allocated").text(fromdb(ipObj.allocated)); - - setBooleanReadField(ipObj.isstaticnat, $thisTab.find("#static_nat")); - - if(ipObj.isstaticnat == true) { - $thisTab.find("#vm_of_static_nat").text(getVmName(ipObj.virtualmachinename, ipObj.virtualmachinedisplayname)); - $thisTab.find("#vm_of_static_nat_container").show(); - } - else { - $thisTab.find("#vm_of_static_nat").text(""); - $thisTab.find("#vm_of_static_nat_container").hide(); - } - - //actions *** - var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu"); - $actionMenu.find("#action_list").empty(); - var noAvailableActions = true; - - if(isIpManageable(ipObj.domainid, ipObj.account) == true) { - ipPopulateVMarray(ipObj); //popoulate VM array - var $vmSelect = $("#dialog_enable_static_NAT").find("#vm_dropdown").empty(); - ipPopulateVMDropdown($vmSelect); - - if(ipObj.isstaticnat == true) { - buildActionLinkForTab("label.action.disable.static.NAT", ipActionMap, $actionMenu, $midmenuItem1, $thisTab); - buildActionLinkForTab("label.action.release.ip", ipActionMap, $actionMenu, $midmenuItem1, $thisTab); - noAvailableActions = false; - } else { - if(ipObj.issourcenat != true) { - if(networkObj != null) { - var firewallServiceObj = ipFindNetworkServiceByName("Firewall", networkObj); - if(firewallServiceObj != null) { - var staticNatCapabilityObj = ipFindCapabilityByName("StaticNat", firewallServiceObj); - if(staticNatCapabilityObj != null) { - if(staticNatCapabilityObj.value == "true") - buildActionLinkForTab("label.action.enable.static.NAT", ipActionMap, $actionMenu, $midmenuItem1, $thisTab); - } - } - } - - buildActionLinkForTab("label.action.release.ip", ipActionMap, $actionMenu, $midmenuItem1, $thisTab); - noAvailableActions = false; - } - } - } - - // no available actions - if(noAvailableActions == true) { - $actionMenu.find("#action_list").append($("#no_available_actions").clone().show()); - } - - $thisTab.find("#tab_spinning_wheel").hide(); - $thisTab.find("#tab_container").show(); -} - -function ipClearDetailsTab() { - var $thisTab = $("#right_panel_content #tab_content_details"); - - $thisTab.find("#grid_header_title").text(""); - $thisTab.find("#id").text(""); - $thisTab.find("#ipaddress").text(""); - $thisTab.find("#zonename").text(""); - $thisTab.find("#state").text(""); - $thisTab.find("#vlanname").text(""); - $thisTab.find("#source_nat").text(""); - $thisTab.find("#network_type").text(""); - $thisTab.find("#networkid").text(""); - $thisTab.find("#associatednetworkid").text(""); - $thisTab.find("#domain").text(""); - $thisTab.find("#account").text(""); - $thisTab.find("#allocated").text(""); - $thisTab.find("#static_nat").text(""); - $thisTab.find("#vm_of_static_nat").text(""); - - - //actions *** - var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu"); - $actionMenu.find("#action_list").empty(); - $actionMenu.find("#action_list").append($("#no_available_actions").clone().show()); -} - -function setNetworkTypeField(value, $field) { - if(value == true) - $field.text("Public"); - else if(value == false) - $field.text("Direct"); - else - $field.text(""); -} - -var ipActionMap = { - "label.action.release.ip": { - isAsyncJob: true, - asyncJobResponse: "disassociateipaddressresponse", - dialogBeforeActionFn : doReleaseIp, - inProcessText: "label.action.release.ip.processing", - afterActionSeccessFn: function(json, $midmenuItem1, id) { - $midmenuItem1.slideUp("slow", function(){ - $(this).remove(); - if(id.toString() == $("#right_panel_content").find("#tab_content_details").find("#id").text()) { - clearRightPanel(); - ipClearRightPanel(); - } - }); - - } - }, - "label.action.enable.static.NAT": { - isAsyncJob: false, - dialogBeforeActionFn: doEnableStaticNAT, - inProcessText: "label.action.enable.static.NAT.processing", - afterActionSeccessFn: function(json, $midmenuItem1, id) { - if(id.toString() == $("#right_panel_content").find("#tab_content_details").find("#id").text()) { - $.ajax({ - data: createURL("command=listPublicIpAddresses&id="+id), - dataType: "json", - async: false, - success: function(json) { - var items = json.listpublicipaddressesresponse.publicipaddress; - if(items != null && items.length > 0) { - ipToMidmenu(items[0], $midmenuItem1); - } - } - }); - } - } - }, - "label.action.disable.static.NAT": { - isAsyncJob: true, - asyncJobResponse: "disablestaticnatresponse", - dialogBeforeActionFn: doDisableStaticNAT, - inProcessText: "label.action.disable.static.NAT.processing", - afterActionSeccessFn: function(json, $midmenuItem1, id) { - if(id.toString() == $("#right_panel_content").find("#tab_content_details").find("#id").text()) { - $.ajax({ - data: createURL("command=listPublicIpAddresses&id="+id), - dataType: "json", - async: false, - success: function(json) { - var items = json.listpublicipaddressesresponse.publicipaddress; - if(items != null && items.length > 0) { - ipToMidmenu(items[0], $midmenuItem1); - } - } - }); - } - } - } -} - -function doReleaseIp($actionLink, $detailsTab, $midmenuItem1) { - var jsonObj = $midmenuItem1.data("jsonObj"); - var id = jsonObj.id; - - $("#dialog_confirmation") - .text(dictionary["message.action.release.ip"]) - .dialog('option', 'buttons', { - "Confirm": function() { - $(this).dialog("close"); - var apiCommand = "command=disassociateIpAddress&id="+id; - doActionToTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab); - }, - "Cancel": function() { - $(this).dialog("close"); - } - }).dialog("open"); -} - -function doEnableStaticNAT($actionLink, $detailsTab, $midmenuItem1) { - var ipObj = $midmenuItem1.data("jsonObj"); - - $("#dialog_enable_static_NAT") - .dialog('option', 'buttons', { - "Confirm": function() { - var $thisDialog = $(this); - - //validate - var vmId = $thisDialog.find("#vm_dropdown").val(); - if(vmId == null || vmId.length == 0) - return; - - $thisDialog.dialog("close"); - - var apiCommand = "command=enableStaticNat&ipaddressid="+ipObj.id+"&virtualmachineid="+vmId; - doActionToTab(ipObj.id, $actionLink, apiCommand, $midmenuItem1, $detailsTab); - }, - "Cancel": function() { - $(this).dialog("close"); - } - }).dialog("open"); -} - -function doDisableStaticNAT($actionLink, $detailsTab, $midmenuItem1) { - var ipObj = $midmenuItem1.data("jsonObj"); - - $("#dialog_confirmation") - .text(dictionary["message.action.disable.static.NAT"]) - .dialog('option', 'buttons', { - "Confirm": function() { - $(this).dialog("close"); - - var apiCommand = "command=disableStaticNat&ipaddressid="+ipObj.id; - doActionToTab(ipObj.id, $actionLink, apiCommand, $midmenuItem1, $detailsTab); - }, - "Cancel": function() { - $(this).dialog("close"); - } - }).dialog("open"); -} -//***** Details tab (end) ****************************************************************************************************************** - -function ipSetRuleState(stateValue, $stateField) { - $stateField.text(stateValue); - if(stateValue == "Active") //green - $stateField.removeClass("status_red status_gray").addClass("status_green"); - else if(stateValue == "Deleting") //red - $stateField.removeClass("status_green status_gray").addClass("status_red"); - else //gray - $stateField.removeClass("status_red status_green").addClass("status_gray"); -} - -//***** Port Range tab (begin) ******************************************************************************************************** -function ipClearPortRangeTab() { - $("#tab_content_port_range #grid_content").empty(); - refreshCreatePortRangeRow(); -} - -function portRangeJsonToTemplate(jsonObj, $template) { - $template.attr("id", "PortRange_" + fromdb(jsonObj.id)).data("PortRangeId", fromdb(jsonObj.id)); - $template.find("#row_container #start_port").text(fromdb(jsonObj.startport)); - $template.find("#row_container #end_port").text(fromdb(jsonObj.endport)); - $template.find("#row_container #protocol").text(fromdb(jsonObj.protocol)); - ipSetRuleState(fromdb(jsonObj.state), $template.find("#row_container #state")); - - $template.find("#delete_link").unbind("click").bind("click", function(event){ - var $spinningWheel = $template.find("#row_container").find("#spinning_wheel"); - $spinningWheel.find("#description").text(g_dictionary["label.deleting.processing"]); - $spinningWheel.show(); - - $.ajax({ - data: createURL("command=deleteIpForwardingRule&id="+fromdb(jsonObj.id)), - dataType: "json", - success: function(json) { - var jobId = json.deleteipforwardingruleresponse.jobid; - var timerKey = "asyncJob_" + jobId; - $("body").everyTime( - 10000, - timerKey, - function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - if (result.jobstatus == 1) { // Succeeded - $template.slideUp("slow", function() { - $(this).remove(); - }); - } else if (result.jobstatus == 2) { // Failed - var errorMsg = g_dictionary["label.deleting.failed"] + " - " + fromdb(result.jobresult.errortext); - $("#dialog_error").text(errorMsg).dialog("open"); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - handleError(XMLHttpResponse); - } - }); - }, - 0 - ); - }, - error: function(XMLHttpResponse) { - $spinningWheel.hide(); - handleError(XMLHttpResponse); - } - }); - - return false; - }); -} - -function refreshCreatePortRangeRow() { - var $createPortRangeRow = $("#create_port_range_row"); - $createPortRangeRow.find("#start_port").val(""); - $createPortRangeRow.find("#end_port").val(""); -} - -//***** Port Range tab (end) ********************************************************************************************************** - -//***** Port Forwarding tab (begin) ******************************************************************************************************** -function ipClearPortForwardingTab() { - $("#tab_content_port_forwarding #grid_content").empty(); - refreshCreatePortForwardingRow(); -} - -function portForwardingJsonToTemplate(jsonObj, $template) { - $template.attr("id", "portForwarding_" + fromdb(jsonObj.id)).data("portForwardingId", fromdb(jsonObj.id)); - - $template.find("#cidr").text(fromdb(jsonObj.cidrlist)); - - var publicPort = fromdb(jsonObj.publicport); - if(jsonObj.publicendport != null && jsonObj.publicendport.length > 0) - publicPort += (" - " + fromdb(jsonObj.publicendport)); - $template.find("#public_port").text(publicPort); - - var privatePort = fromdb(jsonObj.privateport); - if(jsonObj.privateendport != null && jsonObj.privateendport.length > 0) - privatePort += (" - " + fromdb(jsonObj.privateendport)); - $template.find("#private_port").text(privatePort); - - $template.find("#protocol").text(fromdb(jsonObj.protocol)); - - var vmName = getVmName(jsonObj.virtualmachinename, jsonObj.virtualmachinedisplayname); - $template.find("#vm_name").text(vmName); - var virtualMachineId = fromdb(jsonObj.virtualmachineid); - - ipSetRuleState(fromdb(jsonObj.state), $template.find("#state")); - - var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); - if($midmenuItem1 == null) - return; - var ipObj = $midmenuItem1.data("jsonObj"); - if(ipObj == null) - return; - var ipAddress = fromdb(ipObj.ipaddress); - - $template.find("#delete_link").unbind("click").bind("click", function(event){ - var $spinningWheel = $template.find("#spinning_wheel"); - $spinningWheel.find("#description").text(g_dictionary["label.deleting.processing"]); - $spinningWheel.show(); - - $.ajax({ - data: createURL("command=deletePortForwardingRule&id="+fromdb(jsonObj.id)), - dataType: "json", - success: function(json) { - var jobId = json.deleteportforwardingruleresponse.jobid; - var timerKey = "asyncJob_" + jobId; - $("body").everyTime( - 10000, - timerKey, - function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - if (result.jobstatus == 1) { // Succeeded - $template.slideUp("slow", function() { - $(this).remove(); - }); - } else if (result.jobstatus == 2) { // Failed - var errorMsg = g_dictionary["label.deleting.failed"] + " - " + fromdb(result.jobresult.errortext); - $("#dialog_error").text(errorMsg).dialog("open"); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - handleError(XMLHttpResponse); - } - }); - }, - 0 - ); - }, - error: function(XMLHttpResponse) { - $spinningWheel.hide(); - handleError(XMLHttpResponse); - } - }); - - return false; - }); -} - -function refreshCreatePortForwardingRow() { - var $createPortForwardingRow = $("#create_port_forwarding_row"); - $createPortForwardingRow.find("#public_port").val(""); - $createPortForwardingRow.find("#public_end_port").val(""); - $createPortForwardingRow.find("#private_port").val(""); - $createPortForwardingRow.find("#private_end_port").val(""); - - var $vmSelect = $createPortForwardingRow.find("#vm").empty(); - ipPopulateVMDropdown($vmSelect); -} - -var runningVMs, stoppedVMs; -function ipPopulateVMarray(ipObj) { - var commandString = "command=listVirtualMachines&domainid="+ipObj.domainid+"&account="+ipObj.account+"&networkid="+ipObj.associatednetworkid; - - $.ajax({ - data: createURL(commandString+"&state=Running"), - dataType: "json", - async: false, - success: function(json) { - runningVMs = json.listvirtualmachinesresponse.virtualmachine; - } - }); - - $.ajax({ - data: createURL(commandString+"&state=Stopped"), - dataType: "json", - async: false, - success: function(json) { - stoppedVMs = json.listvirtualmachinesresponse.virtualmachine; - } - }); -} - -function ipPopulateVMDropdown($vmSelect) { - if (runningVMs != null && runningVMs.length > 0) { - for (var i = 0; i < runningVMs.length; i++) { - var html = $(""); - $vmSelect.append(html); - } - } - if (stoppedVMs != null && stoppedVMs.length > 0) { - for (var i = 0; i < stoppedVMs.length; i++) { - var html = $(""); - $vmSelect.append(html); - } - } -} -//***** Port Forwarding tab (end) ********************************************************************************************************** - - -//***** Load Balancer tab (begin) ********************************************************************************************************** -function ipClearLoadBalancerTab() { - $("#tab_content_load_balancer #grid_content").empty(); - refreshCreateLoadBalancerRow(); -} - -function loadBalancerJsonToTemplate(jsonObj, $template) { - var loadBalancerId = fromdb(jsonObj.id); - $template.attr("id", "loadBalancer_" + loadBalancerId).data("loadBalancerId", loadBalancerId); - - $template.find("#row_container #cidr").text(fromdb(jsonObj.cidrlist)); - $template.find("#row_container_edit #cidr").text(fromdb(jsonObj.cidrlist)); - - $template.find("#row_container #name").text(fromdb(jsonObj.name)); - $template.find("#row_container_edit #name").val(fromdb(jsonObj.name)); - - $template.find("#row_container #public_port").text(fromdb(jsonObj.publicport)); - $template.find("#row_container_edit #public_port").text(fromdb(jsonObj.publicport)); - - $template.find("#row_container #private_port").text(fromdb(jsonObj.privateport)); - $template.find("#row_container_edit #private_port").text(fromdb(jsonObj.privateport)); - - $template.find("#row_container #algorithm").text(fromdb(jsonObj.algorithm)); - $template.find("#row_container_edit #algorithm_select").val(fromdb(jsonObj.algorithm)); - - ipSetRuleState(fromdb(jsonObj.state), $template.find("#row_container #state")); - - $template.find("#manage_link").unbind("click").bind("click", function(event){ - var $managementArea = $template.find("#management_area"); - var $vmSubgrid = $managementArea.find("#subgrid_content"); - if($managementArea.css("display") == "none") { - $vmSubgrid.empty(); - $.ajax({ - cache: false, - data: createURL("command=listLoadBalancerRuleInstances&id="+loadBalancerId+"&applied=true"), - dataType: "json", - success: function(json) { - var instances = json.listloadbalancerruleinstancesresponse.loadbalancerruleinstance; - if (instances != null && instances.length > 0) { - for (var i = 0; i < instances.length; i++) { - var $lbVmTemplate = $("#load_balancer_vm_template").clone(); - var obj = {"loadBalancerId": loadBalancerId, "vmId": instances[i].id, "vmName": getVmName(instances[i].name, instances[i].displayname), "vmPrivateIp": instances[i].ipaddress}; - lbVmObjToTemplate(obj, $lbVmTemplate); - $vmSubgrid.append($lbVmTemplate.show()); - } - } - } - }); - $managementArea.show(); - } - else { - $managementArea.hide(); - } - return false; - }); - - var $rowContainer = $template.find("#row_container"); - var $rowContainerEdit = $template.find("#row_container_edit"); - - $template.find("#delete_link").unbind("click").bind("click", function(event){ - var $managementArea = $template.find("#management_area"); - if($managementArea.css("display") != "none") - $managementArea.hide(); - - var $spinningWheel = $template.find("#row_container").find("#spinning_wheel"); - $spinningWheel.find("#description").text(g_dictionary["label.deleting.processing"]); - $spinningWheel.show(); - - $.ajax({ - data: createURL("command=deleteLoadBalancerRule&id="+loadBalancerId), - dataType: "json", - success: function(json) { - var jobId = json.deleteloadbalancerruleresponse.jobid; - var timerKey = "deleteLoadBalancerRuleJob_"+jobId; - $("body").everyTime( - 5000, - timerKey, - function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - if (result.jobstatus == 1) { // Succeeded - var total_lbrules = $("#tab_content_load_balancer").find("#grid_content").find(".grid_rows").length; - $template.slideUp("slow", function() { - $(this).remove(); - - if(g_supportELB == "guest" || g_supportELB == "public") { - var count_lb = $("div[id*='loadBalancer_']").length; - if(count_lb == 0) { - var params = $("#middle_menu_pagination").data("params"); - if(params == null) - return; - listMidMenuItems2(params.commandString, params.getSearchParamsFn, params.jsonResponse1, params.jsonResponse2, params.toMidmenuFn, params.toRightPanelFn, params.getMidmenuIdFn, params.isMultipleSelectionInMidMenu, 1); - if($("div[id*='midmenuItem_']").length == 0) - $("#tab_content_load_balancer").hide(); - } - } - }); - } else if (result.jobstatus == 2) { // Failed - var errorMsg = g_dictionary["label.deleting.failed"] + " - " + fromdb(result.jobresult.errortext); - $("#dialog_error").text(errorMsg).dialog("open"); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - handleError(XMLHttpResponse); - } - }); - }, - 0 - ); - } - , - error: function(XMLHttpResponse) { - $spinningWheel.hide(); - handleError(XMLHttpResponse); - } - }); - return false; - }); - - $template.find("#edit_link").unbind("click").bind("click", function(event){ - $rowContainer.hide(); - $rowContainerEdit.show(); - }); - - $template.find("#cancel_link").unbind("click").bind("click", function(event){ - $rowContainer.show(); - $rowContainerEdit.hide(); - }); - - $template.find("#save_link").unbind("click").bind("click", function(event){ - var isValid = true; - isValid &= validateString("Name", $rowContainerEdit.find("#name"), $rowContainerEdit.find("#name_errormsg")); - if (!isValid) - return; - - var $spinningWheel = $template.find("#row_container_edit").find("#spinning_wheel"); - $spinningWheel.find("#description").text(g_dictionary["label.saving.processing"]); - $spinningWheel.show(); - - var name = $rowContainerEdit.find("#name").val(); - var algorithm = $rowContainerEdit.find("#algorithm_select").val(); - - var array1 = []; - array1.push("&id=" + loadBalancerId); - array1.push("&name=" + name); - array1.push("&algorithm=" + algorithm); - - $.ajax({ - data: createURL("command=updateLoadBalancerRule"+array1.join("")), - dataType: "json", - success: function(json) { - var jobId = json.updateloadbalancerruleresponse.jobid; - var timerKey = "updateloadbalancerruleJob"+jobId; - - $("body").everyTime(2000, timerKey, function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - if (result.jobstatus == 1) { // Succeeded - var item = result.jobresult.loadbalancer; - loadBalancerJsonToTemplate(item,$template); - $spinningWheel.hide(); - $rowContainerEdit.hide(); - $rowContainer.show(); - } else if (result.jobstatus == 2) { //Fail - $spinningWheel.hide(); - $rowContainerEdit.hide(); - $rowContainer.show(); - //var errorMsg = g_dictionary["label.failed"] + " - " + g_dictionary["label.error.code"] + " " + fromdb(result.jobresult.errorcode); - var errorMsg = g_dictionary["label.failed"] + " - " + fromdb(result.jobresult.errortext); - $("#dialog_alert").text(errorMsg).dialog("open"); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - $spinningWheel.hide(); - $rowContainerEdit.hide(); - $rowContainer.show(); - handleError(XMLHttpResponse); - } - }); - }, 0); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse); - $spinningWheel.hide(); - $rowContainerEdit.hide(); - $rowContainer.show(); - } - }); - }); - - refreshLbVmSelect($template, jsonObj.id); - - $template.find("#add_vm_to_lb_row #assign_link").unbind("click").bind("click", function(event){ - var vmOption = $template.find("#add_vm_to_lb_row #vm_select option:selected"); - var vmId = vmOption.val(); - var vmName = vmOption.data("vmName"); - var vmPrivateIp = vmOption.data("vmPrivateIp"); - if(vmId == null || vmId.length == 0) - return; - - var $spinningWheel = $template.find("#add_vm_to_lb_row #spinning_wheel"); - $spinningWheel.show(); - - $.ajax({ - data: createURL("command=assignToLoadBalancerRule&id="+loadBalancerId+"&virtualmachineids="+vmId), - dataType: "json", - success: function(json) { - var lbInstanceJSON = json.assigntoloadbalancerruleresponse; - var jobId = lbInstanceJSON.jobid; - var timerKey = "assignToLoadBalancerRuleJob_"+jobId; - $("body").everyTime( - 5000, - timerKey, - function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - if (result.jobstatus == 1) { // Succeeded - var $lbVmTemplate = $("#load_balancer_vm_template").clone(); - var obj = {"loadBalancerId": loadBalancerId, "vmId": vmId, "vmName": vmName, "vmPrivateIp": vmPrivateIp}; - lbVmObjToTemplate(obj, $lbVmTemplate); - $template.find("#management_area #subgrid_content").append($lbVmTemplate.show()); - refreshLbVmSelect($template, loadBalancerId); - $spinningWheel.hide(); - } else if (result.jobstatus == 2) { // Failed - //var errorMsg = g_dictionary["label.failed"] + " - " + g_dictionary["label.error.code"] + " " + fromdb(result.jobresult.errorcode); - var errorMsg = g_dictionary["label.failed"] + " - " + fromdb(result.jobresult.errortext); - $("#dialog_error").text(errorMsg).dialog("open"); - $spinningWheel.hide(); - } - } - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse); - $("body").stopTime(timerKey); - $spinningWheel.hide(); - } - }); - }, - 0 - ); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse); - $spinningWheel.hide(); - } - }); - return false; - }); -} - -function refreshCreateLoadBalancerRow() { - var createLoadBalancerRow = $("#tab_content_load_balancer #create_load_balancer_row"); - createLoadBalancerRow.find("#cidr").val(""); - createLoadBalancerRow.find("#name").val(""); - createLoadBalancerRow.find("#public_port").val(""); - createLoadBalancerRow.find("#private_port").val(""); - createLoadBalancerRow.find("#algorithm_select").val("roundrobin"); -} - - -function lbVmObjToTemplate(obj, $template) { - $template.find("#vm_name").text(obj.vmName); - $template.find("#vm_private_ip").text(fromdb(obj.vmPrivateIp)); - - $template.find("#remove_link").bind("click", function(event){ - var $spinningWheel = $template.find("#spinning_wheel"); - $spinningWheel.show(); - $.ajax({ - data: createURL("command=removeFromLoadBalancerRule&id="+fromdb(obj.loadBalancerId)+"&virtualmachineids="+fromdb(obj.vmId)), - dataType: "json", - success: function(json) { - var lbJSON = json.removefromloadbalancerruleresponse; - var jobId = lbJSON.jobid; - var timerKey = "removeFromLoadBalancerRuleJob_"+jobId; - $("body").everyTime( - 5000, - timerKey, - function() { - $.ajax({ - data: createURL("command=queryAsyncJobResult&jobId="+jobId), - dataType: "json", - success: function(json) { - var result = json.queryasyncjobresultresponse; - if (result.jobstatus == 0) { - return; //Job has not completed - } else { - $("body").stopTime(timerKey); - if (result.jobstatus == 1) { // Succeeded - refreshLbVmSelect($("#loadBalancer_" + obj.loadBalancerId), obj.loadBalancerId); - $template.fadeOut("slow", function(event) { - $(this).remove(); - }); - } else if (result.jobstatus == 2) { // Failed - //var errorMsg = g_dictionary["label.failed"] + " - " + g_dictionary["label.error.code"] + " " + fromdb(result.jobresult.errorcode); - var errorMsg = g_dictionary["label.failed"] + " - " + fromdb(result.jobresult.errortext); - $("#dialog_error").text(errorMsg).dialog("open"); - $spinningWheel.hide(); - } - } - }, - error: function(XMLHttpResponse) { - $("body").stopTime(timerKey); - handleError(XMLHttpResponse); - $spinningWheel.hide(); - } - }); - }, - 0 - ); - }, - error: function(XMLHttpResponse) { - handleError(XMLHttpResponse); - $spinningWheel.hide(); - } - }); - return false; - }); -} - -function refreshLbVmSelect($template, loadBalancerId) { - var vmSelect = $template.find("#add_vm_to_lb_row #vm_select"); - // Load the select box with the VMs that haven't been applied a LB rule to. - $.ajax({ - cache: false, - data: createURL("command=listLoadBalancerRuleInstances&id="+loadBalancerId+"&applied=false"), - dataType: "json", - success: function(json) { - var instances = json.listloadbalancerruleinstancesresponse.loadbalancerruleinstance; - vmSelect.empty(); - if (instances != null && instances.length > 0) { - for (var i = 0; i < instances.length; i++) { - var vmName = getVmName(instances[i].name, instances[i].displayname); - html = $(""); - html.data("vmPrivateIp", instances[i].ipaddress); - html.data("vmName", vmName); - vmSelect.append(html); - } - } else { - vmSelect.append(""); - } - } - }); -} - -//***** Load Balancer tab (end) ************************************************************************************************************