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;