diff --git a/ui/new/jsp/diskoffering.jsp b/ui/new/jsp/diskoffering.jsp
index e515ad88e69..c6994eee70a 100644
--- a/ui/new/jsp/diskoffering.jsp
+++ b/ui/new/jsp/diskoffering.jsp
@@ -62,7 +62,9 @@
+
+
@@ -72,7 +74,9 @@
+
+
diff --git a/ui/new/scripts/cloud.core2.diskoffering.js b/ui/new/scripts/cloud.core2.diskoffering.js
index cfcdef2fa91..681a498201b 100644
--- a/ui/new/scripts/cloud.core2.diskoffering.js
+++ b/ui/new/scripts/cloud.core2.diskoffering.js
@@ -1,4 +1,12 @@
function afterLoadDiskOfferingJSP() {
+ var $detailsTab = $("#right_panel_content #tab_content_details");
+
+ //edit button ***
+ var $readonlyFields = $detailsTab.find("#name, #displaytext");
+ var $editFields = $detailsTab.find("#name_edit, #displaytext_edit");
+ initializeEditFunction($readonlyFields, $editFields, doUpdateDiskOffering);
+
+ //dialogs
initDialog("dialog_add_disk");
//add button ***
@@ -63,6 +71,45 @@ function afterLoadDiskOfferingJSP() {
});
}
+function doUpdateDiskOffering() {
+ var $detailsTab = $("#right_panel_content #tab_content_details");
+ var jsonObj = $detailsTab.data("jsonObj");
+ var id = jsonObj.id;
+
+ // validate values
+ var isValid = true;
+ isValid &= validateString("Name", $detailsTab.find("#name_edit"), $detailsTab.find("#name_edit_errormsg"), true);
+ isValid &= validateString("Display Text", $detailsTab.find("#displaytext_edit"), $detailsTab.find("#displaytext_edit_errormsg"), true);
+ if (!isValid)
+ return;
+
+ var array1 = [];
+ var name = $detailsTab.find("#name_edit").val();
+ array1.push("&name="+todb(name));
+ var displaytext = $detailsTab.find("#displaytext_edit").val();
+ array1.push("&displayText="+todb(displaytext));
+
+ $.ajax({
+ data: createURL("command=updateDiskOffering&id="+id+array1.join("")),
+ dataType: "json",
+ success: function(json) {
+ //call listDiskOffering before bug 6502(What updateDiskOffering API returns should include an embedded object) is fixed.
+ var jsonObj;
+ $.ajax({
+ data: createURL("command=listDiskOfferings&id="+id),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ jsonObj = json.listdiskofferingsresponse.diskoffering[0];
+ }
+ });
+ var $midmenuItem1 = $("#"+getMidmenuId(jsonObj));
+ diskOfferingToMidmenu(jsonObj, $midmenuItem1);
+ diskOfferingToRigntPanel($midmenuItem1);
+ }
+ });
+}
+
function diskOfferingToMidmenu(jsonObj, $midmenuItem1) {
$midmenuItem1.attr("id", getMidmenuId(jsonObj));
$midmenuItem1.data("jsonObj", jsonObj);
@@ -74,8 +121,8 @@ function diskOfferingToMidmenu(jsonObj, $midmenuItem1) {
$midmenuItem1.find("#second_row").text(convertBytes(jsonObj.disksize));
}
-function diskOfferingToRigntPanel($midmenuItem) {
- var jsonObj = $midmenuItem.data("jsonObj");
+function diskOfferingToRigntPanel($midmenuItem1) {
+ var jsonObj = $midmenuItem1.data("jsonObj");
diskOfferingJsonToDetailsTab(jsonObj);
}
@@ -83,8 +130,13 @@ function diskOfferingJsonToDetailsTab(jsonObj) {
var $detailsTab = $("#right_panel_content #tab_content_details");
$detailsTab.data("jsonObj", jsonObj);
$detailsTab.find("#id").text(jsonObj.id);
+
$detailsTab.find("#name").text(fromdb(jsonObj.name));
+ $detailsTab.find("#name_edit").val(fromdb(jsonObj.name));
+
$detailsTab.find("#displaytext").text(fromdb(jsonObj.displaytext));
+ $detailsTab.find("#displaytext_edit").val(fromdb(jsonObj.displaytext));
+
$detailsTab.find("#disksize").text(convertBytes(jsonObj.disksize));
$detailsTab.find("#tags").text(fromdb(jsonObj.tags));
$detailsTab.find("#domain").text(fromdb(jsonObj.domain));