new UI - Resources page - highlight each tree node (zone node, pod node, cluster node, host node, storage node, system vm node) when being clicked.

This commit is contained in:
Jessica Wang 2010-10-12 18:51:40 -07:00
parent 68b1a928de
commit 4413a69733
2 changed files with 293 additions and 192 deletions

View File

@ -1,11 +1,11 @@
<%@ page import="java.util.*" %>
<%@ page import="com.cloud.utils.*" %>
<%
Locale browserLocale = request.getLocale();
CloudResourceBundle t = CloudResourceBundle.getBundle("resources/resource", browserLocale);
%>
<!-- domain detail panel (begin) -->
<div class="main_title" id="right_panel_header">
<!--
@ -28,7 +28,7 @@
<%=t.t("network")%></div>
<div class="content_tabs off" id="tab_secondary_storage">
<%=t.t("secondary.storage")%></div>
</div>
</div>
<!-- Details tab (start)-->
<div id="tab_content_details">
<div class="grid_container">
@ -83,98 +83,104 @@
</div>
</div>
</div>
</div>
</div>
<!-- Details tab (end)-->
<!-- Network tab (start)-->
<div style="display: none;" id="tab_content_network">
<div class="text_container">
<div class="network_dgbox">
<div class="text_container">
<div class="network_dgbox">
<div class="networkdg_zonepanel">
<div class="networkdg_zonebox">
<div class="networkdg_zonecloud">
<p>Zone 1</p>
<p>
Zone 1</p>
</div>
<div class="networkdg_zoneconnect">
</div>
<div class="networkdg_zoneconnect"></div>
</div>
<div class="networkswitchpanel">
<div class="networkswitch_titlebox"><p>Guest VLAN 1000 -1001</p></div>
<div class="networkswitch_top"></div>
<div class="networkswitch_midpanel">
<div class="networkswitch_vlanpanel">
<div class="networkswitch_vlanconnect">
<div class="networkswitch_vlan_infoicon"></div>
<div class="networkswitch_vlan_detailsbox">
<div class="networkswitch_vlan_detailsbox_textbox">
<div class="networkswitch_vlan_detailsbox_textbox_label">VM Group:</div> <span>VLAN 10</span>
</div>
<div class="networkswitch_vlan_detailsbox_textbox">
<div class="networkswitch_vlan_detailsbox_textbox_label">IP:</div> <span>10.101.24.231</span>
</div>
</div>
<div class="networkswitch_typeicon direct"></div>
</div>
</div>
<div class="networkswitch_vlanpanel">
<div class="networkswitch_vlanconnect">
<div class="networkswitch_vlan_infoicon"></div>
<div class="networkswitch_vlan_detailsbox">
<div class="networkswitch_vlan_detailsbox_textbox">
<div class="networkswitch_vlan_detailsbox_textbox_label">VM Group:</div> <span>VLAN 10</span>
</div>
<div class="networkswitch_vlan_detailsbox_textbox">
<div class="networkswitch_vlan_detailsbox_textbox_label">IP:</div> <span>10.101.24.231</span>
</div>
</div>
<div class="networkswitch_typeicon virtual"></div>
</div>
</div>
<div class="networkswitch_titlebox">
<p>
Guest VLAN 1000 -1001</p>
</div>
<div class="networkswitch_top">
</div>
<div class="networkswitch_midpanel">
<div class="networkswitch_vlanpanel">
<div class="networkswitch_vlanconnect">
<div class="networkswitch_vlan_infoicon">
</div>
<div class="networkswitch_vlan_detailsbox">
<div class="networkswitch_vlan_detailsbox_textbox">
<div class="networkswitch_vlan_detailsbox_textbox_label">
VM Group:</div>
<span>VLAN 10</span>
</div>
<div class="networkswitch_vlan_detailsbox_textbox">
<div class="networkswitch_vlan_detailsbox_textbox_label">
IP:</div>
<span>10.101.24.231</span>
</div>
</div>
<div class="networkswitch_typeicon direct">
</div>
</div>
</div>
<div class="networkswitch_vlanpanel">
<div class="networkswitch_vlanconnect">
<div class="networkswitch_vlan_infoicon">
</div>
<div class="networkswitch_vlan_detailsbox">
<div class="networkswitch_vlan_detailsbox_textbox">
<div class="networkswitch_vlan_detailsbox_textbox_label">
VM Group:</div>
<span>VLAN 10</span>
</div>
<div class="networkswitch_vlan_detailsbox_textbox">
<div class="networkswitch_vlan_detailsbox_textbox_label">
IP:</div>
<span>10.101.24.231</span>
</div>
</div>
<div class="networkswitch_typeicon virtual">
</div>
</div>
</div>
</div>
<div class="networkswitch_end">
</div>
<div class="networkswitch_end"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Network tab (end)-->
<!-- Secondary Storage tab (start)-->
<div id="tab_content_secondary_storage" style="display:none">
<div id="tab_content_secondary_storage" style="display: none">
</div>
<!-- Secondary Storage tab (end)-->
<!-- Secondary Storage tab (end)-->
</div>
<!-- domain detail panel (end) -->
<!-- treenode template (begin) -->
<div id="treenode_template" class="tree_levelspanel" style="display:none">
<div class="tree_levelsbox" style="margin-left:20px;">
<div id="treenode_template" class="tree_levelspanel" style="display: none">
<div class="tree_levelsbox" style="margin-left: 20px;">
<div id="domain_title_container" class="tree_levels">
<div id="domain_expand_icon" class="zonetree_closedarrows"></div>
<div id="domain_name" class="tree_links">Domain Name</div>
<div id="domain_expand_icon" class="zonetree_closedarrows">
</div>
<div id="domain_name" class="tree_links">
Domain Name</div>
</div>
<div id="domain_children_container" style="display: none">
</div>
<div id="domain_children_container" style="display:none">
</div>
</div>
</div>
<!-- treenode template (end) -->
<!-- admin account tab template (begin) -->
<div class="grid_container" id="admin_account_tab_template" style="display: none">
<div class="grid_header">
<div class="grid_header_title" id="title">
</div>
</div>
</div>
</div>
<div class="grid_rows even">
<div class="grid_row_cell" style="width: 20%;">
<div class="row_celltitles">
@ -264,137 +270,151 @@
<div class="row_celltitles" id="state">
</div>
</div>
</div>
</div>
</div>
<!-- admin account tab template (end) -->
<!-- Zonetree Template (begin) -->
<div class="zonetree_contentbox" id="zonetree" style="display:none">
<div class="zonetree_contentbox" id="zonetree" style="display: none">
<div id="zones_container">
</div>
</div>
<!-- Zonetree Template (end) -->
<!-- Zone Template (begin) -->
<div id="zone_template" style="display:none">
<div class="adding_loading" style="height:25px;display:none" id="loading_container">
<div class="adding_animation"></div>
<div class="adding_text">Adding a zone &hellip; </div>
<div id="zone_template" style="display: none">
<div class="adding_loading" style="height: 25px; display: none" id="loading_container">
<div class="adding_animation">
</div>
<div class="adding_text">
Adding a zone &hellip;
</div>
</div>
<div id="row_container">
<div class="leftmenu_content">
<div class="leftmenu_firstindent">
<div class="zonetree_closedarrows" id="zone_expand"></div>
<div class="leftmenu_list_icons"><img src="images/zone_zoneicon.png" alt="Zone" /></div>
Zone: <strong><span id="zone_name">Zone 1</span></strong>
<div class="leftmenu_content" id="zone_node">
<div class="leftmenu_firstindent">
<div class="zonetree_closedarrows" id="zone_expand">
</div>
<div class="leftmenu_list_icons">
<img src="images/zone_zoneicon.png" id="zone_icon" alt="Zone" /></div>
<span id="zone_label">Zone:</span> <strong><span id="zone_name">Zone 1</span></strong>
</div>
</div>
<div id="zone_content" style="display:none">
<div id="pods_container">
</div>
<div id="systemvms_container">
</div>
</div>
</div>
</div>
<div id="zone_content" style="display: none">
<div id="pods_container">
</div>
<div id="systemvms_container">
</div>
</div>
</div>
</div>
<!-- Zone Template (end) -->
<!-- Pod Template (begin) -->
<div id="pod_template" style="display:none">
<div class="adding_loading" style="height:25px;display:none" id="loading_container">
<div class="adding_animation"></div>
<div class="adding_text">Adding a pod &hellip; </div>
<div id="pod_template" style="display: none">
<div class="adding_loading" style="height: 25px; display: none" id="loading_container">
<div class="adding_animation">
</div>
<div id="row_container">
<div class="leftmenu_content">
<div class="leftmenu_secondindent">
<div class="zonetree_openarrows" id="zone_expand"></div>
<div class="leftmenu_list_icons"><img src="images/zone_podicon.png" alt="Pod" /></div>
Pod: <strong><span id="pod_name">Name of the Pod</span></strong>
<div class="adding_text">
Adding a pod &hellip;
</div>
</div>
<div id="row_container">
<div class="leftmenu_content" id="pod_node">
<div class="leftmenu_secondindent">
<div class="zonetree_closedarrows" id="pod_expand">
</div>
<div class="leftmenu_list_icons">
<img src="images/zone_podicon.png" id="pod_icon" alt="Pod" /></div>
<span id="pod_label">Pod:</span> <strong><span id="pod_name">Name of the Pod</span></strong>
</div>
<div id="pod_content">
<!--
<div id="directip_ranges_container">
</div>
-->
<div id="clusters_container">
</div>
</div>
</div>
</div>
<div id="pod_content" style="display: none">
<div id="clusters_container">
</div>
</div>
</div>
</div>
<!-- Pod Template (end) -->
<!-- SystemVM Template (begin) -->
<div id="systemvm_template" style="display:none">
<div id="row_container">
<div class="leftmenu_content">
<div class="leftmenu_secondindent">
<div class="zonetree_openarrows" style="background:none;"></div>
<div class="leftmenu_list_icons"><img src="images/zone_systemvmicon.png" alt="System VM" /></div>
System VM: <strong><span id="systemvm_name">(System VM name)</span></strong>
</div>
</div>
</div>
</div>
<!-- SystemVM Template (end) -->
<!-- Cluster Template (begin) -->
<div id="cluster_template" style="display:none">
<div class="adding_loading" style="height:25px;display:none" id="loading_container">
<div class="adding_animation"></div>
<div class="adding_text">Adding a cluster &hellip; </div>
<div id="cluster_template" style="display: none">
<div class="adding_loading" style="height: 25px; display: none" id="loading_container">
<div class="adding_animation">
</div>
<div class="adding_text">
Adding a cluster &hellip;
</div>
</div>
<div id="row_container">
<div class="leftmenu_content">
<div class="leftmenu_thirdindent">
<div class="zonetree_openarrows" id="zone_expand"></div>
<div class="leftmenu_list_icons"><img src="images/zone_clustericon.png" alt="Cluster" /></div>
Cluster: <strong><span id="cluster_name">(Name of the Cluster)</span></strong>
<div id="row_container">
<div class="leftmenu_content" id="cluster_node">
<div class="leftmenu_thirdindent">
<div class="zonetree_openarrows" id="cluster_expand">
</div>
<div class="leftmenu_list_icons">
<img src="images/zone_clustericon.png" id="cluster_icon" alt="Cluster" /></div>
<span id="cluster_label"">Cluster:</span>
<strong><span id="cluster_name">(Name of the Cluster)</span></strong>
</div>
</div>
<div id="cluster_content">
<div id="hosts_container">
</div>
<div id="primarystorages_container">
</div>
</div>
</div>
</div>
<div id="cluster_content">
<div id="hosts_container">
</div>
<div id="primarystorages_container">
</div>
</div>
</div>
</div>
<!-- Cluster Template (end) -->
<!-- Host Template (begin) -->
<div id="host_template" style="display:none">
<div class="adding_loading" style="height:25px;display:none" id="loading_container">
<div class="adding_animation"></div>
<div class="adding_text">Adding a host &hellip; </div>
<div id="host_template" style="display: none">
<div class="adding_loading" style="height: 25px; display: none" id="loading_container">
<div class="adding_animation">
</div>
<div class="adding_text">
Adding a host &hellip;
</div>
</div>
<div id="row_container">
<div class="leftmenu_content">
<div class="leftmenu_fourthindent">
<div class="leftmenu_list_icons"><img src="images/zone_hosticon.png" alt="Host" /></div>
Host: <strong><span id="host_name">(Name of the Host)</span></strong>
<div id="row_container">
<div class="leftmenu_content" id="host_node">
<div class="leftmenu_fourthindent">
<div class="leftmenu_list_icons">
<img src="images/zone_hosticon.png" id="host_icon" alt="Host" /></div>
<span id="host_label">Host:</span>
<strong><span id="host_name">(Name of the Host)</span></strong>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Host Template (end) -->
<!-- Primary Storage Template (begin) -->
<div id="primary_storage_template" style="display:none">
<div class="adding_loading" style="height:25px;display:none" id="loading_container">
<div class="adding_animation"></div>
<div class="adding_text">Adding a primary storage &hellip; </div>
<div id="primarystorage_template" style="display: none">
<div class="adding_loading" style="height: 25px; display: none" id="loading_container">
<div class="adding_animation">
</div>
<div class="adding_text">
Adding a primary storage &hellip;
</div>
</div>
<div id="row_container">
<div class="leftmenu_content">
<div class="leftmenu_fourthindent">
<div class="leftmenu_list_icons"><img src="images/zone_primarystorageicon.png" alt="PrimaryStorage" /></div>
Primary: <strong><span id="primary_storage_name">(Name of the Primary Storage)</span></strong>
<div id="row_container">
<div class="leftmenu_content" id="primarystorage_node">
<div class="leftmenu_fourthindent">
<div class="leftmenu_list_icons">
<img src="images/zone_primarystorageicon.png" id="primarystorage_icon" alt="PrimaryStorage" /></div>
<span id="primarystorage_label">Storage:</span>
<strong><span id="primarystorage_name">(Name of the Primary Storage)</span></strong>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Primary Storage Template (end) -->
<!-- SystemVM Template (begin) -->
<div id="systemvm_template" style="display: none">
<div id="row_container">
<div class="leftmenu_content" id="systemvm_node">
<div class="leftmenu_secondindent">
<div class="leftmenu_list_icons">
<img src="images/zone_systemvmicon.png" id="systemvm_icon" alt="System VM" /></div>
<span id="systemvm_label">System VM:</span>
<strong><span id="systemvm_name">(System VM name)</span></strong>
</div>
</div>
</div>
</div>
<!-- SystemVM Template (end) -->

View File

@ -27,6 +27,7 @@ function afterLoadResourceJSP() {
function zoneJSONToTemplate(json, template) {
var zoneid = json.id;
template.attr("id", "zone_" + zoneid);
template.data("id", zoneid).data("name", fromdb(json.name));
template.find("#zone_name")
.text(fromdb(json.name))
@ -76,12 +77,15 @@ function afterLoadResourceJSP() {
});
}
function podJSONToTemplate(json, template) {
function podJSONToTemplate(json, template) {
var podid = json.id;
template.attr("id", "pod_" + podid); //???
var ipRange = getIpRange(json.startip, json.endip);
template.data("id", json.id).data("name", json.name);
template.data("id", podid).data("name", json.name);
var podName = template.find("#pod_name").text(json.name);
podName.data("id", json.id);
podName.data("id", podid);
podName.data("zoneid", json.zoneid);
podName.data("name", json.name);
podName.data("cidr", json.cidr);
@ -91,7 +95,7 @@ function afterLoadResourceJSP() {
podName.data("gateway", json.gateway);
$.ajax({
data: createURL("command=listClusters&podid="+json.id+maxPageSize),
data: createURL("command=listClusters&podid="+podid+maxPageSize),
dataType: "json",
success: function(json) {
var items = json.listclustersresponse.cluster;
@ -108,8 +112,9 @@ function afterLoadResourceJSP() {
}
function systemvmJSONToTemplate(json, template) {
template.data("id", json.id).data("name", json.name);
var systemvmid = json.id;
template.attr("id", "systemvm_"+systemvmid);
template.data("id", systemvmid).data("name", json.name);
var systeymvmName = template.find("#systemvm_name").text(json.name);
systeymvmName.data("systemvmtype", json.systemvmtype);
systeymvmName.data("name", json.name);
@ -152,7 +157,7 @@ function afterLoadResourceJSP() {
var container = template.find("#primarystorages_container").empty();
if (items != null && items.length > 0) {
for (var i = 0; i < items.length; i++) {
var primaryStorageTemplate = $("#primary_storage_template").clone(true).attr("id", "primary_storage_"+items[i].id);
var primaryStorageTemplate = $("#primarystorage_template").clone(true).attr("id", "primary_storage_"+items[i].id);
primaryStorageJSONToTemplate(items[i], primaryStorageTemplate);
container.append(primaryStorageTemplate.show());
}
@ -170,7 +175,7 @@ function afterLoadResourceJSP() {
function primaryStorageJSONToTemplate(json, template) {
template.data("id", json.id).data("name", fromdb(json.name));
var primaryStorageName = template.find("#primary_storage_name").text(fromdb(json.name));
var primaryStorageName = template.find("#primarystorage_name").text(fromdb(json.name));
}
$("#zone_template").bind("click", function(event) {
@ -181,7 +186,7 @@ function afterLoadResourceJSP() {
var name = template.data("name");
switch (action) {
case "zone_expand" :
case "zone_expand" :
if (target.hasClass("zonetree_closedarrows")) {
$("#zone_"+id).find("#zone_content").show();
target.removeClass().addClass("zonetree_openarrows");
@ -189,26 +194,102 @@ function afterLoadResourceJSP() {
$("#zone_"+id).find("#zone_content").hide();
target.removeClass().addClass("zonetree_closedarrows");
}
break;
case "zone_name" :
$(".zonetree_firstlevel_selected").removeClass().addClass("zonetree_firstlevel");
$(".zonetree_secondlevel_selected").removeClass().addClass("zonetree_secondlevel");
template.find(".zonetree_firstlevel").removeClass().addClass("zonetree_firstlevel_selected");
var obj = {"id": target.data("id"), "name": target.data("name"), "dns1": target.data("dns1"), "dns2": target.data("dns2"), "internaldns1": target.data("internaldns1"), "internaldns2": target.data("internaldns2"), "vlan": target.data("vlan"), "guestcidraddress": target.data("guestcidraddress")};
//zoneObjectToRightPanel(obj);
break;
case "pod_name" :
$(".zonetree_firstlevel_selected").removeClass().addClass("zonetree_firstlevel");
$(".zonetree_secondlevel_selected").removeClass().addClass("zonetree_secondlevel");
target.parent(".zonetree_secondlevel").removeClass().addClass("zonetree_secondlevel_selected");
break;
case "zone_icon":
case "zone_label":
case "zone_name":
$zoneetree1.find(".selected").removeClass("selected");
template.find("#zone_node").addClass("selected");
var obj = {"id": target.data("id"), "name": target.data("name"), "dns1": target.data("dns1"), "dns2": target.data("dns2"), "internaldns1": target.data("internaldns1"), "internaldns2": target.data("internaldns2"), "vlan": target.data("vlan"), "guestcidraddress": target.data("guestcidraddress")};
//zoneObjectToRightPanel(obj);
break;
case "pod_expand" :
if (target.hasClass("zonetree_closedarrows")) {
$("#zone_"+id).find("#pod_content").show();
target.removeClass().addClass("zonetree_openarrows");
} else {
$("#zone_"+id).find("#pod_content").hide();
target.removeClass().addClass("zonetree_closedarrows");
}
break;
case "pod_icon":
case "pod_label":
case "pod_name" :
$zoneetree1.find(".selected").removeClass("selected");
template.find("#pod_node").addClass("selected");
var obj = {"id": target.data("id"), "zoneid": target.data("zoneid"), "name": target.data("name"), "cidr": target.data("cidr"), "startip": target.data("startip"), "endip": target.data("endip"), "ipRange": target.data("ipRange"), "gateway": target.data("gateway")};
//podObjectToRightPanel(obj);
//podObjectToRightPanel(obj);
break;
case "cluster_expand" :
if (target.hasClass("zonetree_closedarrows")) {
$("#zone_"+id).find("#cluster_content").show();
target.removeClass().addClass("zonetree_openarrows");
} else {
$("#zone_"+id).find("#cluster_content").hide();
target.removeClass().addClass("zonetree_closedarrows");
}
break;
case "cluster_icon":
case "cluster_label":
case "cluster_name" :
$zoneetree1.find(".selected").removeClass("selected");
template.find("#cluster_node").addClass("selected");
var obj = {"id": target.data("id"), "zoneid": target.data("zoneid"), "name": target.data("name"), "cidr": target.data("cidr"), "startip": target.data("startip"), "endip": target.data("endip"), "ipRange": target.data("ipRange"), "gateway": target.data("gateway")};
//clusterObjectToRightPanel(obj);
break;
case "host_expand" :
if (target.hasClass("zonetree_closedarrows")) {
$("#zone_"+id).find("#host_content").show();
target.removeClass().addClass("zonetree_openarrows");
} else {
$("#zone_"+id).find("#host_content").hide();
target.removeClass().addClass("zonetree_closedarrows");
}
break;
case "host_icon":
case "host_label":
case "host_name" :
$zoneetree1.find(".selected").removeClass("selected");
template.find("#host_node").addClass("selected");
var obj = {"id": target.data("id"), "zoneid": target.data("zoneid"), "name": target.data("name"), "cidr": target.data("cidr"), "startip": target.data("startip"), "endip": target.data("endip"), "ipRange": target.data("ipRange"), "gateway": target.data("gateway")};
//hostObjectToRightPanel(obj);
break;
case "primarystorage_expand" :
if (target.hasClass("zonetree_closedarrows")) {
$("#zone_"+id).find("#primarystorage_content").show();
target.removeClass().addClass("zonetree_openarrows");
} else {
$("#zone_"+id).find("#primarystorage_content").hide();
target.removeClass().addClass("zonetree_closedarrows");
}
break;
case "primarystorage_icon":
case "primarystorage_label":
case "primarystorage_name" :
$zoneetree1.find(".selected").removeClass("selected");
template.find("#primarystorage_node").addClass("selected");
var obj = {"id": target.data("id"), "zoneid": target.data("zoneid"), "name": target.data("name"), "cidr": target.data("cidr"), "startip": target.data("startip"), "endip": target.data("endip"), "ipRange": target.data("ipRange"), "gateway": target.data("gateway")};
//primarystorageObjectToRightPanel(obj);
break;
case "systemvm_icon":
case "systemvm_label":
case "systemvm_name" :
$zoneetree1.find(".selected").removeClass("selected");
template.find("#systemvm_node").addClass("selected");
var obj = {"id": target.data("id"), "zoneid": target.data("zoneid"), "name": target.data("name"), "cidr": target.data("cidr"), "startip": target.data("startip"), "endip": target.data("endip"), "ipRange": target.data("ipRange"), "gateway": target.data("gateway")};
//systemvmObjectToRightPanel(obj);
break;
default:
break;