diff --git a/ui/scripts/cloud.core.domain.js b/ui/scripts/cloud.core.domain.js index 37a4b649899..294ba127c73 100644 --- a/ui/scripts/cloud.core.domain.js +++ b/ui/scripts/cloud.core.domain.js @@ -28,11 +28,11 @@ function refreshWholeTree(rootDomainId, rootLevel) { $("#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").show(); +function drawRootNode(rootDomainId) { + //var $loading = $("#leftmenu_domain_tree").find("#loading_container"); var $domainTree = $("#leftmenu_domain_tree").find("#tree_container").hide(); $.ajax({ @@ -43,24 +43,24 @@ function drawRootNode(rootDomainId) { var domains = json.listdomainsresponse.domain; $domainTree.empty(); if (domains != null && domains.length > 0) { - var node = drawNode(domains[0], $domainTree); + var node = drawNode(domains[0], $("#domain_tree_node_template"), $domainTree); 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(); + //$loading.hide(); $domainTree.show(); } - }); + }); } -function drawNode(json, container) { +function drawNode(json, template, container) { if("parentdomainid" in json) childParentMap[json.id] = json.parentdomainid; //map childDomainId to parentDomainId domainIdNameMap[json.id] = json.name; //map domainId to domainName - var $treeNode = $("#domain_tree_node_template").clone(true).attr("id", "domain_tree_node_template_clone"); + var $treeNode = template.clone(true).attr("id", "domain_tree_node_template_clone"); $treeNode.find("#domain_indent").css("marginLeft", (30*(json.level+1))); $treeNode.attr("id", "domain_"+fromdb(json.id)); $treeNode.data("jsonObj", json).data("domainLevel", json.level); @@ -72,7 +72,8 @@ function drawNode(json, container) { return $treeNode; } -function drawTree(id, container) { +function drawTree(id, container) { + var $treeNodeTemplate = $("#domain_tree_node_template"); $.ajax({ data: createURL("command=listDomainChildren&id="+id), dataType: "json", @@ -81,11 +82,7 @@ function drawTree(id, container) { var domains = json.listdomainchildrenresponse.domain; if (domains != null && domains.length > 0) { for (var i = 0; i < domains.length; i++) { - drawNode(domains[i], container); - /* - if(domains[i].haschild == true) - drawTree(domains[i].id, $("#domain_children_container_"+domains[i].id)); - */ + drawNode(domains[i], $treeNodeTemplate, container); } } } @@ -198,7 +195,7 @@ function initAddDomainDialog() { if($expandIcon.hasClass("expanded_close")) $expandIcon.click(); //expand parentDomain node else - drawNode(item, $("#domain_children_container_"+item.parentdomainid)); + drawNode(item, $("#domain_tree_node_template"), $("#domain_children_container_"+item.parentdomainid)); } }); }, diff --git a/ui/scripts/cloud.core.init.js b/ui/scripts/cloud.core.init.js index b918c347386..395de6111d7 100644 --- a/ui/scripts/cloud.core.init.js +++ b/ui/scripts/cloud.core.init.js @@ -41,8 +41,6 @@ $(document).ready(function() { $("#leftmenu_domain").bind("click", function(event) { selectLeftMenu($(this), true); - bindEventHandlerToDomainTreeNode(); - drawRootNode(g_domainid); return false; }); $("#leftmenu_account").bind("click", function(event) { @@ -52,19 +50,18 @@ $(document).ready(function() { $("#leftmenu_dashboard").bind("click", function(event) { - selectLeftMenu($(this), false); - - clearMiddleMenu(); - hideMiddleMenu(); - - $("#right_panel").data("onRefreshFn", function() { - $("#leftmenu_dashboard").click(); - }); - - $("#right_panel").load("jsp/dashboard.jsp", function(){ - afterLoadDashboardJSP(); - }); - + selectLeftMenu($(this), false, function() { + clearMiddleMenu(); + hideMiddleMenu(); + + $("#right_panel").data("onRefreshFn", function() { + $("#leftmenu_dashboard").click(); + }); + + $("#right_panel").load("jsp/dashboard.jsp", function(){ + afterLoadDashboardJSP(); + }); + }); return false; }); $("#leftmenu_storage").bind("click", function(event) { @@ -163,6 +160,10 @@ $(document).ready(function() { resourceLoadPage("jsp/resource.jsp", null); return false; }); + + //Setup domain + bindEventHandlerToDomainTreeNode(); + drawRootNode(g_domainid); } $("#midmenu_action_link").bind("mouseover", function(event) { diff --git a/ui/scripts/cloud.core.js b/ui/scripts/cloud.core.js index b9c918b270f..c43d22205af 100644 --- a/ui/scripts/cloud.core.js +++ b/ui/scripts/cloud.core.js @@ -594,7 +594,7 @@ function clearRightPanel() { var $selectedLeftMenu; var $expandedLeftMenu; -function selectLeftMenu($menuToSelect, expandable) { +function selectLeftMenu($menuToSelect, expandable, afterSelectFn) { if ($selectedLeftMenu == null || ($menuToSelect.attr("id") != $selectedLeftMenu.attr("id"))) { if($selectedLeftMenu != null) { $selectedLeftMenu.removeClass("selected"); @@ -611,13 +611,13 @@ function selectLeftMenu($menuToSelect, expandable) { } if ($expandedLeftMenu != null) { - $expandedLeftMenu.slideUp(500, function() { - //if ($menuToExpand != null) $menuToExpand.slideDown(200); - }); + $expandedLeftMenu.slideUp(500, afterSelectFn); if ($menuToExpand != null) $menuToExpand.slideDown(500); $expandedLeftMenu = null; } else if ($menuToExpand != null) { - $menuToExpand.slideDown(500); + $menuToExpand.slideDown(500, afterSelectFn); + } else if (afterSelectFn != undefined) { + afterSelectFn(); } $expandedLeftMenu = $menuToExpand;