From d3f31ba287daf02177b78ee887c33aade4e96315 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Thu, 18 Nov 2010 15:30:44 -0800 Subject: [PATCH] bug 6940: IP Address page - Show which VM it is currently static NATed to. --- ui/jsp/ipaddress.jsp | 38 +++++++++++++++++---------- ui/scripts/cloud.core.ipaddress.js | 42 +++++++++++++++++++++++++----- 2 files changed, 60 insertions(+), 20 deletions(-) diff --git a/ui/jsp/ipaddress.jsp b/ui/jsp/ipaddress.jsp index 50343808e39..e3ec641812c 100644 --- a/ui/jsp/ipaddress.jsp +++ b/ui/jsp/ipaddress.jsp @@ -98,18 +98,8 @@
- +
-
-
- Static NAT:
-
-
-
-
-
-
-
Network Type:
@@ -119,7 +109,7 @@
-
+
Domain:
@@ -129,7 +119,7 @@
-
+
Account:
@@ -139,7 +129,7 @@
-
+
Allocated:
@@ -149,6 +139,26 @@
+
+
+
+ Static NAT:
+
+
+
+
+
+
+ diff --git a/ui/scripts/cloud.core.ipaddress.js b/ui/scripts/cloud.core.ipaddress.js index 3c0360a808d..1ee09dfd0a6 100644 --- a/ui/scripts/cloud.core.ipaddress.js +++ b/ui/scripts/cloud.core.ipaddress.js @@ -722,14 +722,37 @@ function ipJsonToDetailsTab() { $thisTab.find("#ipaddress").text(noNull(ipObj.ipaddress)); $thisTab.find("#zonename").text(fromdb(ipObj.zonename)); $thisTab.find("#vlanname").text(fromdb(ipObj.vlanname)); - setBooleanReadField(ipObj.issourcenat, $thisTab.find("#source_nat")); - setBooleanReadField(ipObj.isstaticnat, $thisTab.find("#static_nat")); + setBooleanReadField(ipObj.issourcenat, $thisTab.find("#source_nat")); setNetworkTypeField(ipObj.forvirtualnetwork, $thisTab.find("#network_type")); $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) { + var virtualmachinename, virtualmachinedisplayname; + $.ajax({ + data: createURL("command=listIpForwardingRules&ipaddress="+ipaddress), + dataType: "json", + async: false, + success: function(json) { + var items = json.listipforwardingrulesresponse.ipforwardingrule; + if(items != null && items.length > 0) { + virtualmachinename = items[0].virtualmachinename; + virtualmachinedisplayname = items[0].virtualmachinedisplayname; + } + } + }); + $thisTab.find("#vm_of_static_nat").text(getVmName(virtualmachinename, 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(); @@ -809,12 +832,16 @@ var ipActionMap = { asyncJobResponse: "createipforwardingruleresponse", dialogBeforeActionFn: doEnableStaticNAT, inProcessText: "Enabling Static NAT....", - afterActionSeccessFn: function(json, $midmenuItem1, id){ - //var item = json.queryasyncjobresultresponse.jobresult.portforwardingrule; + afterActionSeccessFn: function(json, $midmenuItem1, id){ var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); var ipObj = $midmenuItem1.data("jsonObj"); ipObj.isstaticnat = true; - setBooleanReadField(ipObj.isstaticnat, $("#right_panel_content #tab_content_details").find("#static_nat")); + setBooleanReadField(ipObj.isstaticnat, $("#right_panel_content #tab_content_details").find("#static_nat")); + + var item = json.queryasyncjobresultresponse.jobresult.portforwardingrule; + var $thisTab =$("#right_panel_content #tab_content_details"); + $thisTab.find("#vm_of_static_nat").text(getVmName(item.virtualmachinename, item.virtualmachinedisplayname)); + $thisTab.find("#vm_of_static_nat_container").show(); } }, "Disable Static NAT": { @@ -826,7 +853,10 @@ var ipActionMap = { var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); var ipObj = $midmenuItem1.data("jsonObj"); ipObj.isstaticnat = false; - setBooleanReadField(ipObj.isstaticnat, $("#right_panel_content #tab_content_details").find("#static_nat")); + setBooleanReadField(ipObj.isstaticnat, $("#right_panel_content #tab_content_details").find("#static_nat")); + var $thisTab =$("#right_panel_content #tab_content_details"); + $thisTab.find("#vm_of_static_nat").text(""); + $thisTab.find("#vm_of_static_nat_container").hide(); } } }