mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
New Advanced Search dialog - clicking advanced will open the dialog. Clicking advanced again will close the dialog.
This commit is contained in:
parent
0b678f08df
commit
c21fc721c7
@ -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;
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user