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")%>
+
+
+ +
+
+
+
+ (title)
+ +
+
+
+

+ Waiting …

+
+
+
+
+
+ <%=t.t("ID")%>:
+
+
+
+
+
+
+
+
+
+ <%=t.t("name")%>:
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ Add Secondary Storage
+ +
+
+
+ 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