New Advanced Search dialog - clicking advanced will open the dialog. Clicking advanced again will close the dialog.

This commit is contained in:
Jessica Wang 2010-12-17 15:33:47 -08:00
parent 0b678f08df
commit c21fc721c7

View File

@ -243,130 +243,138 @@ $(document).ready(function() {
//advanced search
$("#advanced_search_icon").unbind("click").bind("click", function(event) {
var $advancedSearch = $("#advanced_search_template").clone().attr("id", "advanced_search_popup");
$advancedSearch.unbind("click").bind("click", function(event) {
var $target = $(event.target);
var targetId = $target.attr("id");
if(targetId == "advanced_search_close") {
$(this).hide();
return false;
}
else if(targetId == "adv_search_button") {
var params = $("#middle_menu_pagination").data("params");
if(params == null)
return;
lastSearchType = "advanced_search";
$("#basic_search").find("#search_input").val("");
listMidMenuItems2(params.commandString, params.getSearchParamsFn, params.jsonResponse1, params.jsonResponse2, params.toMidmenuFn, params.toRightPanelFn, params.getMidmenuIdFn, params.isMultipleSelectionInMidMenu, 1);
$(this).hide();
return false;
}
return true;
});
$advancedSearch.unbind("keypress").bind("keypress", function(event) {
event.stopPropagation();
if(event.keyCode == keycode_Enter) {
event.preventDefault();
$(this).find("#adv_search_button").click();
}
});
if(isAdmin() || isDomainAdmin())
$advancedSearch.find("#adv_search_domain_li, #adv_search_account_li, #adv_search_pod_li").show();
else
$advancedSearch.find("#adv_search_domain_li, #adv_search_account_li, #adv_search_pod_li").hide();
var zoneSelect = $advancedSearch.find("#adv_search_zone");
if(zoneSelect.length>0) { //if zone dropdown is found on Advanced Search dialog
$.ajax({
data: createURL("command=listZones&available=true"),
dataType: "json",
success: function(json) {
var zones = json.listzonesresponse.zone;
zoneSelect.empty();
zoneSelect.append("<option value=''></option>");
if (zones != null && zones.length > 0) {
for (var i = 0; i < zones.length; i++) {
zoneSelect.append("<option value='" + zones[i].id + "'>" + fromdb(zones[i].name) + "</option>");
}
}
}
});
var podSelect = $advancedSearch.find("#adv_search_pod").empty();
var podLabel = $advancedSearch.find("#adv_search_pod_label");
if(podSelect.length>0 && $advancedSearch.find("#adv_search_pod_li").css("display")!="none") {
zoneSelect.bind("change", function(event) {
var zoneId = $(this).val();
if (zoneId == null || zoneId.length == 0) {
podLabel.css("color", "gray");
podSelect.attr("disabled", "disabled");
podSelect.empty();
} else {
podLabel.css("color", "black");
podSelect.removeAttr("disabled");
$.ajax({
data: createURL("command=listPods&zoneId="+zoneId+""),
dataType: "json",
async: false,
success: function(json) {
var pods = json.listpodsresponse.pod;
podSelect.empty();
if (pods != null && pods.length > 0) {
for (var i = 0; i < pods.length; i++) {
podSelect.append("<option value='" + pods[i].id + "'>" + fromdb(pods[i].name) + "</option>");
}
}
}
});
}
return false;
});
zoneSelect.change();
}
if($(this).hasClass("on")) {
$(this).removeClass("on");
$("#advanced_search_container").empty();
}
var domainSelect = $advancedSearch.find("#adv_search_domain");
if(domainSelect.length>0 && $advancedSearch.find("#adv_search_domain_li").css("display")!="none") {
var domainSelect = domainSelect.empty();
$.ajax({
data: createURL("command=listDomains&available=true"),
dataType: "json",
success: function(json) {
var domains = json.listdomainsresponse.domain;
if (domains != null && domains.length > 0) {
for (var i = 0; i < domains.length; i++) {
domainSelect.append("<option value='" + domains[i].id + "'>" + fromdb(domains[i].name) + "</option>");
}
}
}
});
}
else {
$(this).addClass("on");
var $advancedSearch = $("#advanced_search_template").clone().attr("id", "advanced_search_popup");
$advancedSearch.unbind("click").bind("click", function(event) {
var $target = $(event.target);
var targetId = $target.attr("id");
if(targetId == "advanced_search_close") {
$(this).hide();
return false;
}
else if(targetId == "adv_search_button") {
var params = $("#middle_menu_pagination").data("params");
if(params == null)
return;
lastSearchType = "advanced_search";
//$("#basic_search").find("#search_input").val("");
listMidMenuItems2(params.commandString, params.getSearchParamsFn, params.jsonResponse1, params.jsonResponse2, params.toMidmenuFn, params.toRightPanelFn, params.getMidmenuIdFn, params.isMultipleSelectionInMidMenu, 1);
$(this).hide();
return false;
}
return true;
});
var vmSelect = $advancedSearch.find("#adv_search_vm");
if(vmSelect.length>0) {
vmSelect.empty();
vmSelect.append("<option value=''></option>");
$.ajax({
data: createURL("command=listVirtualMachines"),
dataType: "json",
success: function(json) {
var items = json.listvirtualmachinesresponse.virtualmachine;
if (items != null && items.length > 0) {
for (var i = 0; i < items.length; i++) {
vmSelect.append("<option value='" + items[i].id + "'>" + fromdb(items[i].name) + "</option>");
$advancedSearch.unbind("keypress").bind("keypress", function(event) {
event.stopPropagation();
if(event.keyCode == keycode_Enter) {
event.preventDefault();
$(this).find("#adv_search_button").click();
}
});
if(isAdmin() || isDomainAdmin())
$advancedSearch.find("#adv_search_domain_li, #adv_search_account_li, #adv_search_pod_li").show();
else
$advancedSearch.find("#adv_search_domain_li, #adv_search_account_li, #adv_search_pod_li").hide();
var zoneSelect = $advancedSearch.find("#adv_search_zone");
if(zoneSelect.length>0) { //if zone dropdown is found on Advanced Search dialog
$.ajax({
data: createURL("command=listZones&available=true"),
dataType: "json",
success: function(json) {
var zones = json.listzonesresponse.zone;
zoneSelect.empty();
zoneSelect.append("<option value=''></option>");
if (zones != null && zones.length > 0) {
for (var i = 0; i < zones.length; i++) {
zoneSelect.append("<option value='" + zones[i].id + "'>" + fromdb(zones[i].name) + "</option>");
}
}
}
}
});
}
$advancedSearch.find("#adv_search_startdate, #adv_search_enddate").datepicker({dateFormat: 'yy-mm-dd'});
$("#advanced_search_container").empty().append($advancedSearch.show());
}
});
var podSelect = $advancedSearch.find("#adv_search_pod").empty();
var podLabel = $advancedSearch.find("#adv_search_pod_label");
if(podSelect.length>0 && $advancedSearch.find("#adv_search_pod_li").css("display")!="none") {
zoneSelect.bind("change", function(event) {
var zoneId = $(this).val();
if (zoneId == null || zoneId.length == 0) {
podLabel.css("color", "gray");
podSelect.attr("disabled", "disabled");
podSelect.empty();
} else {
podLabel.css("color", "black");
podSelect.removeAttr("disabled");
$.ajax({
data: createURL("command=listPods&zoneId="+zoneId+""),
dataType: "json",
async: false,
success: function(json) {
var pods = json.listpodsresponse.pod;
podSelect.empty();
if (pods != null && pods.length > 0) {
for (var i = 0; i < pods.length; i++) {
podSelect.append("<option value='" + pods[i].id + "'>" + fromdb(pods[i].name) + "</option>");
}
}
}
});
}
return false;
});
zoneSelect.change();
}
}
var domainSelect = $advancedSearch.find("#adv_search_domain");
if(domainSelect.length>0 && $advancedSearch.find("#adv_search_domain_li").css("display")!="none") {
var domainSelect = domainSelect.empty();
$.ajax({
data: createURL("command=listDomains&available=true"),
dataType: "json",
success: function(json) {
var domains = json.listdomainsresponse.domain;
if (domains != null && domains.length > 0) {
for (var i = 0; i < domains.length; i++) {
domainSelect.append("<option value='" + domains[i].id + "'>" + fromdb(domains[i].name) + "</option>");
}
}
}
});
}
var vmSelect = $advancedSearch.find("#adv_search_vm");
if(vmSelect.length>0) {
vmSelect.empty();
vmSelect.append("<option value=''></option>");
$.ajax({
data: createURL("command=listVirtualMachines"),
dataType: "json",
success: function(json) {
var items = json.listvirtualmachinesresponse.virtualmachine;
if (items != null && items.length > 0) {
for (var i = 0; i < items.length; i++) {
vmSelect.append("<option value='" + items[i].id + "'>" + fromdb(items[i].name) + "</option>");
}
}
}
});
}
$advancedSearch.find("#adv_search_startdate, #adv_search_enddate").datepicker({dateFormat: 'yy-mm-dd'});
$("#advanced_search_container").empty().append($advancedSearch.show());
}
return false;
});