diff --git a/ui/jsp/primarystorage.jsp b/ui/jsp/primarystorage.jsp index 2f2c8038483..27af0ab4fd7 100644 --- a/ui/jsp/primarystorage.jsp +++ b/ui/jsp/primarystorage.jsp @@ -170,10 +170,16 @@
-
+
+ + - + +
+ + +
diff --git a/ui/scripts/cloud.core.primarystorage.js b/ui/scripts/cloud.core.primarystorage.js index 56fb52f092c..c9339049b85 100644 --- a/ui/scripts/cloud.core.primarystorage.js +++ b/ui/scripts/cloud.core.primarystorage.js @@ -69,8 +69,10 @@ function primarystorageJsonToDetailsTab($midmenuItem1) { $detailsTab.find("#path").text(fromdb(jsonObj.path)); $detailsTab.find("#disksizetotal").text(convertBytes(jsonObj.disksizetotal)); $detailsTab.find("#disksizeallocated").text(convertBytes(jsonObj.disksizeallocated)); - $detailsTab.find("#tags").text(fromdb(jsonObj.tags)); + $detailsTab.find("#tags").text(fromdb(jsonObj.tags)); + $detailsTab.find("#tags_edit").val(fromdb(jsonObj.tags)); + //actions *** var $actionLink = $detailsTab.find("#action_link"); $actionLink.bind("mouseover", function(event) { @@ -83,6 +85,7 @@ function primarystorageJsonToDetailsTab($midmenuItem1) { }); var $actionMenu = $detailsTab.find("#action_link #action_menu"); $actionMenu.find("#action_list").empty(); + buildActionLinkForTab("Edit Primary Storage", primarystorageActionMap, $actionMenu, $midmenuItem1, $detailsTab); buildActionLinkForTab("Enable Maintenance Mode", primarystorageActionMap, $actionMenu, $midmenuItem1, $detailsTab); buildActionLinkForTab("Cancel Maintenance Mode", primarystorageActionMap, $actionMenu, $midmenuItem1, $detailsTab); buildActionLinkForTab("Delete Primary Storage", primarystorageActionMap, $actionMenu, $midmenuItem1, $detailsTab); @@ -108,7 +111,10 @@ function primarystorageJsonClearDetailsTab() { $detailsTab.find("#tags").text(""); } -var primarystorageActionMap = { +var primarystorageActionMap = { + "Edit Primary Storage": { + dialogBeforeActionFn: doEditPrimaryStorage + }, "Enable Maintenance Mode": { isAsyncJob: true, asyncJobResponse: "prepareprimarystorageformaintenanceresponse", @@ -147,6 +153,56 @@ var primarystorageActionMap = { } } +function doEditPrimaryStorage($actionLink, $detailsTab, $midmenuItem1) { + var $readonlyFields = $detailsTab.find("#tags"); + var $editFields = $detailsTab.find("##tags_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){ + doEditPrimaryStorage2($actionLink, $detailsTab, $midmenuItem1, $readonlyFields, $editFields); + return false; + }); +} + +function doEditPrimaryStorage2($actionLink, $detailsTab, $midmenuItem1, $readonlyFields, $editFields) { + var $detailsTab = $("#right_panel_content #tab_content_details"); + var jsonObj = $detailsTab.data("jsonObj"); + var id = jsonObj.id; + + // validate values + var isValid = true; + isValid &= validateString("Tags", $detailsTab.find("#tags_edit"), $detailsTab.find("#tags_edit_errormsg"), true); //optional + if (!isValid) + return; + + var array1 = []; + + var tags = $detailsTab.find("#tags_edit").val(); + array1.push("&tags="+todb(tags)); + + $.ajax({ + data: createURL("command=updateStoragePool&id="+id+array1.join("")), + dataType: "json", + success: function(json) { + primarystorageToMidmenu(jsonObj, $midmenuItem1); + primarystorageToRightPanel($midmenuItem1); + + $editFields.hide(); + $readonlyFields.show(); + $("#save_button, #cancel_button").hide(); + } + }); +} + function doEnableMaintenanceModeForPrimaryStorage($actionLink, $detailsTab, $midmenuItem1){ var jsonObj = $detailsTab.data("jsonObj");