Skip to content

Commit

Permalink
Hide boot from volume UI when no volumes are available.
Browse files Browse the repository at this point in the history
Only show volumes in boot from volume UI which are available.

Fixes bug 919758

Change-Id: Iaafef17c481ca30ba43c44317891b38931873a16
  • Loading branch information
treshenry committed Jan 24, 2012
1 parent 959d29a commit 7b0ca43
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 16 deletions.
2 changes: 2 additions & 0 deletions horizon/horizon/api/nova.py
Expand Up @@ -36,7 +36,9 @@
LOG = logging.getLogger(__name__)


# API static values
INSTANCE_ACTIVE_STATE = 'ACTIVE'
VOLUME_STATE_AVAILABLE = "available"


class Flavor(APIResourceWrapper):
Expand Down
Expand Up @@ -111,14 +111,16 @@ def security_group_list(self):

def volume_list(self):
try:
volumes = [(v.id, ("%s (%s GB)" % (v.displayName, v.size))) \
for v in api.volume_list(self.request)]
volumes.insert(0, ("", "Select Volume"))
volumes = [v for v in api.volume_list(self.request) \
if v.status == api.VOLUME_STATE_AVAILABLE]
volume_sel = [(v.id, ("%s (%s GB)" % (v.displayName, v.size))) \
for v in volumes]
volume_sel.insert(0, ("", "Select Volume"))
except:
exceptions.handle(self.request,
_('Unable to retrieve list of volumes'))
volumes = []
return volumes
volume_sel = []
return volume_sel


class UpdateView(forms.ModalFormView):
Expand Down
34 changes: 23 additions & 11 deletions openstack-dashboard/dashboard/static/dashboard/js/modals.js
Expand Up @@ -15,33 +15,45 @@ horizon.addInitFunction(function() {
// TODO(tres): Find some better way to deal with grouped form fields.
var volumeField = $("#id_volume");
if(volumeField) {
var disclosureElement = $("<div />").addClass("volume_boot_disclosure").text("Boot From Volume");
var volumeContainer = volumeField.parent().parent();
var deviceContainer = $("#id_device_name").parent().parent();
var deleteOnTermContainer = $("#id_delete_on_terminate").parent().parent();

volumeContainer.before(disclosureElement);

disclosureElement.click(function() {
if(volumeContainer.hasClass("hide")) {
disclosureElement.addClass("on");
function toggle_fields(show) {
if(show) {
volumeContainer.removeClass("hide");
deviceContainer.removeClass("hide");
deleteOnTermContainer.removeClass("hide");
} else {
disclosureElement.removeClass("on");
volumeContainer.addClass("hide");
deviceContainer.addClass("hide");
deleteOnTermContainer.addClass("hide");
}
});
}

if(volumeField.find("option").length == 1) {
toggle_fields(false);
} else {
var disclosureElement = $("<div />").addClass("volume_boot_disclosure").text("Boot From Volume");

volumeContainer.before(disclosureElement);

volumeContainer.addClass("hide");
deviceContainer.addClass("hide");
deleteOnTermContainer.addClass("hide");
disclosureElement.click(function() {
if(volumeContainer.hasClass("hide")) {
disclosureElement.addClass("on");
toggle_fields(true);
} else {
disclosureElement.removeClass("on");
toggle_fields(false);
}
});

toggle_fields(false);
}
}
}
});

return false;
});
});

0 comments on commit 7b0ca43

Please sign in to comment.