diff --git a/ui/jsp/snapshot.jsp b/ui/jsp/snapshot.jsp
index 1665c7f52ae..20b7bf6f348 100644
--- a/ui/jsp/snapshot.jsp
+++ b/ui/jsp/snapshot.jsp
@@ -147,7 +147,15 @@ dictionary = {
-
+
+
+
+
+
+
+
diff --git a/ui/scripts/cloud.core.snapshot.js b/ui/scripts/cloud.core.snapshot.js
index 90696aec7c5..50400e44b3b 100644
--- a/ui/scripts/cloud.core.snapshot.js
+++ b/ui/scripts/cloud.core.snapshot.js
@@ -45,6 +45,25 @@ function snapshotGetSearchParams() {
function afterLoadSnapshotJSP() {
initDialog("dialog_add_volume_from_snapshot");
+ $.ajax({
+ data: createURL("command=listDiskOfferings"),
+ dataType: "json",
+ success: function(json) {
+ var offerings = json.listdiskofferingsresponse.diskoffering;
+ var diskOfferingDropdown = $("#dialog_add_volume_from_snapshot").find("#diskoffering_dropdown").empty();
+ if (offerings != null && offerings.length > 0) {
+ for (var i = 0; i < offerings.length; i++) {
+ if(offerings[i].iscustomized == true) {
+ var $option = $("");
+ $option.data("jsonObj", offerings[i]);
+ diskOfferingDropdown.append($option);
+ }
+ }
+ }
+ }
+ });
+
+
initCreateTemplateFromSnapshotDialog();
}
@@ -220,18 +239,20 @@ function doCreateVolumeFromSnapshotInSnapshotPage($actionLink, $detailsTab, $mid
$("#dialog_add_volume_from_snapshot")
.dialog("option", "buttons", {
"Add": function() {
- var thisDialog = $(this);
+ var $thisDialog = $(this);
var isValid = true;
- isValid &= validateString("Name", thisDialog.find("#name"), thisDialog.find("#name_errormsg"));
+ isValid &= validateString("Name", $thisDialog.find("#name"), $thisDialog.find("#name_errormsg"));
+ isValid &= validateDropDownBox("Disk Offering", $thisDialog.find("#diskoffering_dropdown"), $thisDialog.find("#diskoffering_dropdown_errormsg"));
if (!isValid) return;
- thisDialog.dialog("close");
-
- var name = thisDialog.find("#name").val();
+ $thisDialog.dialog("close");
+ var name = $thisDialog.find("#name").val();
+ var diskofferingId = $thisDialog.find("#diskoffering_dropdown").val();
+
var id = jsonObj.id;
- var apiCommand = "command=createVolume&snapshotid="+id+"&name="+name;
+ var apiCommand = "command=createVolume&snapshotid="+id+"&name="+name+"&diskOfferingId="+diskofferingId;
doActionToTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {