From cf9ebb76e713870203a116a306d40d93d2c83866 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Wed, 11 May 2011 14:51:19 -0700 Subject: [PATCH] bug 9604: Network page - implement action "Edit Network" for newly added API "updateNetwork". --- .../classes/resources/messages.properties | 1 + .../classes/resources/messages_es.properties | 1 + .../classes/resources/messages_ja.properties | 1 + .../resources/messages_zh_CN.properties | 1 + ui/jsp/network.jsp | 15 ++- ui/scripts/cloud.core.network.js | 92 +++++++++++++------ 6 files changed, 82 insertions(+), 29 deletions(-) diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties index 0b78550fb9a..2201e48afe9 100644 --- a/client/WEB-INF/classes/resources/messages.properties +++ b/client/WEB-INF/classes/resources/messages.properties @@ -85,6 +85,7 @@ label.action.delete.ingress.rule.processing=Deleting Ingress Rule.... label.action.delete.ingress.rule=Delete Ingress Rule label.action.delete.load.balancer.processing=Deleting Load Balancer.... label.action.delete.load.balancer=Delete Load Balancer +label.action.edit.network=Edit Network label.action.delete.network.processing=Deleting Network.... label.action.delete.network=Delete Network label.action.delete.pod.processing=Deleting Pod.... diff --git a/client/WEB-INF/classes/resources/messages_es.properties b/client/WEB-INF/classes/resources/messages_es.properties index a4695177c2f..e413887939a 100644 --- a/client/WEB-INF/classes/resources/messages_es.properties +++ b/client/WEB-INF/classes/resources/messages_es.properties @@ -85,6 +85,7 @@ label.action.delete.ingress.rule = Borrar ingreso Regla label.action.delete.ingress.rule.processing = Eliminación de ingreso regla .... label.action.delete.load.balancer = Eliminar equilibrador de carga label.action.delete.load.balancer.processing = Eliminación del equilibrador de carga .... +label.action.edit.network=Edición de redes label.action.delete.network = Eliminar Red label.action.delete.network.processing = Eliminación de red .... label.action.delete.pod = Eliminar Pod diff --git a/client/WEB-INF/classes/resources/messages_ja.properties b/client/WEB-INF/classes/resources/messages_ja.properties index 40210bff0df..2353f983e34 100644 --- a/client/WEB-INF/classes/resources/messages_ja.properties +++ b/client/WEB-INF/classes/resources/messages_ja.properties @@ -85,6 +85,7 @@ label.action.delete.ingress.rule =イングレスルール削除 label.action.delete.ingress.rule.processing=イングレスルールを削除しています.... label.action.delete.load.balancer =ロードバランサ削除 label.action.delete.load.balancer.processing=ロードバランサを削除しています... +label.action.edit.network=ネットワークを編集する label.action.delete.network =ネットワーク削除 label.action.delete.network.processing=ネットワークを削除しています.... label.action.delete.pod =Pod削除 diff --git a/client/WEB-INF/classes/resources/messages_zh_CN.properties b/client/WEB-INF/classes/resources/messages_zh_CN.properties index f152fc3b3eb..f47e0571489 100644 --- a/client/WEB-INF/classes/resources/messages_zh_CN.properties +++ b/client/WEB-INF/classes/resources/messages_zh_CN.properties @@ -85,6 +85,7 @@ label.action.delete.ingress.rule =删除准入规则 label.action.delete.ingress.rule.processing =删除准入规则.... label.action.delete.load.balancer =删除负载平衡 label.action.delete.load.balancer.processing =删除负载平衡.... +label.action.edit.network=编辑网络 label.action.delete.network =删除网络 label.action.delete.network.processing =删除网络.... label.action.delete.pod =删除Pod diff --git a/ui/jsp/network.jsp b/ui/jsp/network.jsp index f1df4fcaee2..4b659a11cb9 100644 --- a/ui/jsp/network.jsp +++ b/ui/jsp/network.jsp @@ -13,6 +13,7 @@ dictionary = { 'label.action.delete.firewall.processing' : '', 'label.action.delete.load.balancer' : '', 'label.action.delete.load.balancer.processing' : '', + 'label.action.edit.network' : '', 'label.action.delete.network' : '', 'label.action.delete.network.processing' : '', 'message.action.delete.network' : '', @@ -327,7 +328,9 @@ dictionary = {
-
+
+ +
@@ -337,7 +340,9 @@ dictionary = {
-
+
+ +
@@ -401,6 +406,12 @@ dictionary = {
+ +
+ + +
+ diff --git a/ui/scripts/cloud.core.network.js b/ui/scripts/cloud.core.network.js index 440b8a154da..22e51c1116e 100644 --- a/ui/scripts/cloud.core.network.js +++ b/ui/scripts/cloud.core.network.js @@ -87,7 +87,10 @@ function afterLoadNetworkJSP($leftmenuItem1) { initDialog("dialog_add_iprange_to_directnetwork"); networkPopulateMiddleMenu($leftmenuItem1); - bindAddNetworkButton(); + bindAddNetworkButton(); + + $readonlyFields = $("#direct_network_page").find("#tab_content_details").find("#name, #displaytext"); + $editFields = $("#direct_network_page").find("#tab_content_details").find("#name_edit, #displaytext_edit"); } function networkPopulateMiddleMenu($leftmenuItem1) { @@ -297,17 +300,7 @@ function publicNetworkIprangeJsonToTemplate(jsonObj, $template) { var $actionLink = $template.find("#action_link"); bindActionLink($actionLink); - /* - $actionLink.bind("mouseover", function(event) { - $(this).find("#action_menu").show(); - return false; - }); - $actionLink.bind("mouseout", function(event) { - $(this).find("#action_menu").hide(); - return false; - }); - */ - + var $actionMenu = $actionLink.find("#action_menu"); $actionMenu.find("#action_list").empty(); @@ -1070,7 +1063,9 @@ function directNetworkJsonToDetailsTab() { $thisTab.find("#grid_header_title").text(fromdb(jsonObj.name)); $thisTab.find("#id").text(fromdb(jsonObj.id)); $thisTab.find("#name").text(fromdb(jsonObj.name)); + $thisTab.find("#name_edit").val(fromdb(jsonObj.name)); $thisTab.find("#displaytext").text(fromdb(jsonObj.displaytext)); + $thisTab.find("#displaytext_edit").val(fromdb(jsonObj.displaytext)); $thisTab.find("#default").text((jsonObj.isdefault) ? "Yes" : "No"); $thisTab.find("#vlan").text(fromdb(jsonObj.vlan)); $thisTab.find("#gateway").text(fromdb(jsonObj.gateway)); @@ -1082,19 +1077,10 @@ function directNetworkJsonToDetailsTab() { //actions *** var $actionLink = $thisTab.find("#action_link"); bindActionLink($actionLink); - /* - $actionLink.bind("mouseover", function(event) { - $(this).find("#action_menu").show(); - return false; - }); - $actionLink.bind("mouseout", function(event) { - $(this).find("#action_menu").hide(); - return false; - }); - */ - + var $actionMenu = $actionLink.find("#action_menu"); - $actionMenu.find("#action_list").empty(); + $actionMenu.find("#action_list").empty(); + buildActionLinkForTab("label.action.edit.network", directNetworkActionMap, $actionMenu, $midmenuItem1, $thisTab); buildActionLinkForTab("label.action.delete.network", directNetworkActionMap, $actionMenu, $midmenuItem1, $thisTab); $thisTab.find("#tab_container").show(); @@ -1461,11 +1447,15 @@ function bindAddIpRangeToDirectNetworkButton($midmenuItem1) { }); } -var directNetworkActionMap = { +var directNetworkActionMap = { + "label.action.edit.network": { + dialogBeforeActionFn : doEditDirectNetwork + } + , "label.action.delete.network": { isAsyncJob: true, asyncJobResponse: "deletenetworkresponse", - dialogBeforeActionFn : doDeleteNetwork, + dialogBeforeActionFn : doDeleteDirectNetwork, inProcessText: "label.action.delete.network.processing", afterActionSeccessFn: function(json, $midmenuItem1, id) { $midmenuItem1.slideUp("slow", function() { @@ -1479,7 +1469,55 @@ var directNetworkActionMap = { } } -function doDeleteNetwork($actionLink, $detailsTab, $midmenuItem1) { +function doEditDirectNetwork($actionLink, $detailsTab, $midmenuItem1) { + $readonlyFields.hide(); + $editFields.show(); + $detailsTab.find("#cancel_button, #save_button").show(); + + $detailsTab.find("#cancel_button").unbind("click").bind("click", function(event){ + cancelEditMode($detailsTab); + return false; + }); + $detailsTab.find("#save_button").unbind("click").bind("click", function(event){ + doEditDirectNetwork2($actionLink, $detailsTab, $midmenuItem1, $readonlyFields, $editFields); + return false; + }); +} + +function doEditDirectNetwork2($actionLink, $detailsTab, $midmenuItem1, $readonlyFields, $editFields) { + var jsonObj = $midmenuItem1.data("jsonObj"); + var id = jsonObj.id; + + // validate values + var isValid = true; + isValid &= validateString("Name", $detailsTab.find("#name_edit"), $detailsTab.find("#name_edit_errormsg"), true); + isValid &= validateString("Display Text", $detailsTab.find("#displaytext_edit"), $detailsTab.find("#displaytext_edit_errormsg"), true); + if (!isValid) + return; + + var array1 = []; + var name = $detailsTab.find("#name_edit").val(); + array1.push("&name="+todb(name)); + + var displaytext = $detailsTab.find("#displaytext_edit").val(); + array1.push("&displayText="+todb(displaytext)); + + $.ajax({ + data: createURL("command=updateNetwork&id="+id+array1.join("")), + dataType: "json", + success: function(json) { + var jsonObj = json.updatenetworkresponse.network; + directNetworkToMidmenu(jsonObj, $midmenuItem1); + directNetworkToRightPanel($midmenuItem1); + + $editFields.hide(); + $readonlyFields.show(); + $("#save_button, #cancel_button").hide(); + } + }); +} + +function doDeleteDirectNetwork($actionLink, $detailsTab, $midmenuItem1) { var jsonObj = $midmenuItem1.data("jsonObj"); var id = jsonObj.id;