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) ************************************************************************************************************