diff --git a/ui/jsp/secondarystorage.jsp b/ui/jsp/secondarystorage.jsp
new file mode 100644
index 00000000000..63071e8ac5e
--- /dev/null
+++ b/ui/jsp/secondarystorage.jsp
@@ -0,0 +1,93 @@
+<%@ page import="java.util.*" %>
+<%@ page import="com.cloud.utils.*" %>
+
+<%
+ Locale browserLocale = request.getLocale();
+ CloudResourceBundle t = CloudResourceBundle.getBundle("resources/resource", browserLocale);
+%>
+
+
+
+
+

+
+
Secondary Storage
+
+
+
+
+
+
+ <%=t.t("Details")%>
+
+
+
+
+
+
+
diff --git a/ui/scripts/cloud.core.resource.js b/ui/scripts/cloud.core.resource.js
index bb0e58c7604..f07d01a8617 100644
--- a/ui/scripts/cloud.core.resource.js
+++ b/ui/scripts/cloud.core.resource.js
@@ -114,6 +114,38 @@ function buildZoneTree() {
return false;
});
+ $("#secondarystorage_header").unbind("click").bind("click", function(event) {
+ selectRowInZoneTree($(this));
+
+ clearMiddleMenu();
+ hideMiddleMenu();
+
+ if(currentRightPanelJSP != "jsp/secondarystorage.jsp") {
+ removeDialogs();
+
+ var $thisNode = $(this);
+ $("#right_panel").load("jsp/secondarystorage.jsp", function(){
+ currentRightPanelJSP = "jsp/secondarystorage.jsp";
+
+ /*
+ $(this).data("onRefreshFn", function() {
+ var zoneObj = $midmenuItem1.data("jsonObj");
+ if(zoneObj == null)
+ return;
+ $("#zone_"+zoneObj.id).find("#secondarystorage_header").click();
+ });
+ */
+
+ afterLoadSecondaryStorageJSP($thisNode);
+ });
+ }
+ else {
+ //secondarystoragePopulateMiddleMenu($(this));
+ }
+
+ return false;
+ });
+
$("#network_header").unbind("click").bind("click", function(event) {
selectRowInZoneTree($(this));
@@ -308,8 +340,9 @@ function zoneJSONToTreeNode(jsonObj, $zoneNode) {
var zoneid = jsonObj.id;
$zoneNode.attr("id", "zone_" + zoneid);
$zoneNode.data("jsonObj", jsonObj);
+ $zoneNode.find("#secondarystorage_header").data("zoneObj", jsonObj);
- if(jsonObj.networktype == "Advanced") {
+ if(jsonObj.networktype == "Advanced") {
$zoneNode.find("#network_header").show().data("jsonObj", jsonObj);
}
diff --git a/ui/scripts/cloud.core.secondarystorage.js b/ui/scripts/cloud.core.secondarystorage.js
new file mode 100644
index 00000000000..7d6e8733159
--- /dev/null
+++ b/ui/scripts/cloud.core.secondarystorage.js
@@ -0,0 +1,109 @@
+ /**
+ * Copyright (C) 2010 Cloud.com, Inc. All rights reserved.
+ *
+ * This software is licensed under the GNU General Public License v3 or later.
+ *
+ * It is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or any later version.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+function afterLoadSecondaryStorageJSP($midmenuItem1) {
+ var $topButtonContainer = clearButtonsOnTop();
+ $("#top_buttons").appendTo($topButtonContainer);
+
+ //initDialog("dialog_add_external_cluster_in_secondaryStorage_page", 320);
+
+ secondaryStorageRefreshDataBinding();
+}
+
+function secondaryStorageRefreshDataBinding() {
+ var $secondaryStorageNode = $selectedSubMenu;
+ secondaryStorageJsonToRightPanel($secondaryStorageNode);
+}
+
+function secondaryStorageJsonToRightPanel($midmenuItem1) {
+ $("#right_panel_content").data("$midmenuItem1", $midmenuItem1);
+
+ /*
+ bindEventHandlerToDialogAddVlanForZone();
+ bindAddPodButton($("#add_pod_button"), $midmenuItem1);
+ bindAddSecondaryStorageButton($("#add_secondarystorage_button"), $midmenuItem1);
+ */
+
+ secondaryStorageJsonToDetailsTab();
+}
+
+function secondaryStorageJsonToDetailsTab() {
+ var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
+ if($midmenuItem1 == null)
+ return;
+
+ var zoneObj = $midmenuItem1.data("zoneObj");
+ if(zoneObj == null)
+ return;
+
+ var $thisTab = $("#right_panel_content").find("#tab_content_details");
+ $thisTab.find("#tab_container").hide();
+ $thisTab.find("#tab_spinning_wheel").show();
+
+ var jsonObj;
+ $.ajax({
+ data: createURL("command=listHosts&type=SecondaryStorage&zoneid="+zoneObj.id),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var items = json.listhostsresponse.host;
+ if(items != null && items.length > 0) {
+ jsonObj = items[0];
+ $midmenuItem1.data("jsonObj", jsonObj);
+ }
+ }
+ });
+
+ $thisTab.find("#id").text(fromdb(jsonObj.id));
+ $thisTab.find("#grid_header_title").text(fromdb(jsonObj.name));
+ $thisTab.find("#name").text(fromdb(jsonObj.name));
+
+ //actions ***
+ var $actionLink = $thisTab.find("#action_link");
+ $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 = $thisTab.find("#action_link #action_menu");
+ $actionMenu.find("#action_list").empty();
+ //buildActionLinkForTab("Delete Secondary Storage", secondarystorageActionMap, $actionMenu, $midmenuItem1, $thisTab);
+
+ $thisTab.find("#tab_spinning_wheel").hide();
+ $thisTab.find("#tab_container").show();
+}
+
+function secondaryStorageJsonClearRightPanel() {
+ secondaryStorageJsonClearDetailsTab();
+}
+
+function secondaryStorageJsonClearDetailsTab() {
+ var $thisTab = $("#right_panel_content").find("#tab_content_details");
+ $thisTab.find("#grid_header_title").text("");
+ $thisTab.find("#id").text("");
+
+ $thisTab.find("#name").text("");
+
+ //actions ***
+ var $actionMenu = $thisTab.find("#action_link #action_menu");
+ $actionMenu.find("#action_list").empty();
+ $actionMenu.find("#action_list").append($("#no_available_actions").clone().show());
+}
\ No newline at end of file