diff --git a/ui/jsp/domain.jsp b/ui/jsp/domain.jsp
index d80b7d32248..8ff63083405 100644
--- a/ui/jsp/domain.jsp
+++ b/ui/jsp/domain.jsp
@@ -75,7 +75,9 @@
+
+
@@ -108,7 +110,11 @@
-
+
+
diff --git a/ui/scripts/cloud.core.domain.js b/ui/scripts/cloud.core.domain.js
index 3e401b9ccc1..826c0962586 100644
--- a/ui/scripts/cloud.core.domain.js
+++ b/ui/scripts/cloud.core.domain.js
@@ -21,18 +21,7 @@ var defaultRootLevel = 0;
var childParentMap = {}; //map childDomainId to parentDomainId
var domainIdNameMap = {}; //map domainId to domainName
-/*
-function refreshWholeTree(rootDomainId, rootLevel) {
- drawRootNode(rootDomainId);
- drawTree(rootDomainId, $("#domain_children_container_"+rootDomainId)); //draw the whole tree (under root node)
- $("#domain_"+rootDomainId).show(); //show root node
- clickExpandIcon(rootDomainId); //expand root node
-}
-*/
-
-//draw root node
-function drawRootNode(rootDomainId) {
- //var $loading = $("#leftmenu_domain_tree").find("#loading_container");
+function drawRootNode(rootDomainId) {
var $domainTree = $("#leftmenu_domain_tree").find("#tree_container").hide();
$.ajax({
@@ -48,8 +37,7 @@ function drawRootNode(rootDomainId) {
var treeLevelsbox = node.find(".tree_levelsbox"); //root node shouldn't have margin-left:20px
if(treeLevelsbox!=null && treeLevelsbox.length >0)
treeLevelsbox[0].style.marginLeft="0px"; //set root node's margin-left to 0px.
- }
- //$loading.hide();
+ }
$domainTree.show();
}
});
@@ -248,7 +236,8 @@ function domainJsonToDetailsTab() {
var $thisTab = $("#right_panel_content").find("#tab_content_details");
$thisTab.find("#id").text(domainId);
$thisTab.find("#grid_header_title").text(fromdb(jsonObj.name));
- $thisTab.find("#name").text(fromdb(jsonObj.name));
+ $thisTab.find("#name").text(fromdb(jsonObj.name));
+ $thisTab.find("#name_edit").val(fromdb(jsonObj.name));
$.ajax({
cache: false,
@@ -302,7 +291,8 @@ function domainJsonToDetailsTab() {
var $actionMenu = $thisTab.find("#action_link #action_menu");
$actionMenu.find("#action_list").empty();
var noAvailableActions = true;
- if(domainId != 1) { //"ROOT" domain is not allowed to delete or edit
+ if(domainId != 1) { //"ROOT" domain is not allowed to edit or delete
+ buildActionLinkForTab("Edit Domain", domainActionMap, $actionMenu, $leftmenuItem1, $thisTab);
buildActionLinkForTab("Delete Domain", domainActionMap, $actionMenu, $leftmenuItem1, $thisTab);
noAvailableActions = false;
}
@@ -388,6 +378,7 @@ function domainJsonClearDetailsTab() {
$thisTab.find("#id").text("");
$thisTab.find("#grid_header_title").text("");
$thisTab.find("#name").text("");
+ $thisTab.find("#name_edit").val("");
$thisTab.find("#redirect_to_account_page").text("");
$thisTab.find("#redirect_to_instance_page").text("");
$thisTab.find("#redirect_to_volume_page").text("");
@@ -572,7 +563,65 @@ function doEditResourceLimits2($actionLink, $detailsTab, $midmenuItem1, $readonl
$("#save_button, #cancel_button").hide();
}
+
+function doEditDomain($actionLink, $detailsTab, $midmenuItem1) {
+ var $readonlyFields = $detailsTab.find("#name");
+ var $editFields = $detailsTab.find("#name_edit");
+
+ $readonlyFields.hide();
+ $editFields.show();
+ $detailsTab.find("#cancel_button, #save_button").show();
+
+ $detailsTab.find("#cancel_button").unbind("click").bind("click", function(event){
+ $editFields.hide();
+ $readonlyFields.show();
+ $("#save_button, #cancel_button").hide();
+ return false;
+ });
+ $detailsTab.find("#save_button").unbind("click").bind("click", function(event){
+ doEditDomain2($actionLink, $detailsTab, $midmenuItem1, $readonlyFields, $editFields);
+ return false;
+ });
+}
+
+function doEditDomain2($actionLink, $detailsTab, $midmenuItem1, $readonlyFields, $editFields) {
+ // validate values
+ var isValid = true;
+ isValid &= validateString("Name", $detailsTab.find("#name_edit"), $detailsTab.find("#name_edit_errormsg"));
+ if (!isValid)
+ return;
+
+ var jsonObj = $midmenuItem1.data("jsonObj");
+ var id = jsonObj.id;
+
+ var array1 = [];
+
+ var newName = $detailsTab.find("#name_edit").val();
+ if(newName != jsonObj.name)
+ array1.push("&name="+todb(newName));
+
+ if(array1.length > 0) {
+ $.ajax({
+ data: createURL("command=updateDomain&id="+id+array1.join("")),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ jsonObj = json.updatedomainresponse.domain;
+ $midmenuItem1.data("jsonObj", jsonObj);
+ domainJsonToDetailsTab();
+ }
+ });
+ }
+
+ $editFields.hide();
+ $readonlyFields.show();
+ $("#save_button, #cancel_button").hide();
+}
+
var domainActionMap = {
+ "Edit Domain": {
+ dialogBeforeActionFn: doEditDomain
+ },
"Delete Domain": {
api: "deleteDomain",
isAsyncJob: true,