237 lines
7.8 KiB
JavaScript
237 lines
7.8 KiB
JavaScript
|
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||
|
/**
|
||
|
* JavaScript functions used on Database Search page
|
||
|
*
|
||
|
* @requires jQuery
|
||
|
* @requires js/functions.js
|
||
|
*
|
||
|
* @package PhpMyAdmin
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* AJAX script for the Database Search page.
|
||
|
*
|
||
|
* Actions ajaxified here:
|
||
|
* Retrieve result of SQL query
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Unbind all event handlers before tearing down a page
|
||
|
*/
|
||
|
AJAX.registerTeardown('db_search.js', function () {
|
||
|
$('#buttonGo').unbind('click');
|
||
|
$('#togglesearchresultlink').unbind('click');
|
||
|
$("#togglequerybox").unbind('click');
|
||
|
$('#togglesearchformlink').unbind('click');
|
||
|
$("#db_search_form.ajax").die('submit');
|
||
|
});
|
||
|
|
||
|
/**
|
||
|
* Loads the database search results
|
||
|
*
|
||
|
* @param result_path Url of the page to load
|
||
|
* @param table_name Name of table to browse
|
||
|
*
|
||
|
* @return nothing
|
||
|
*/
|
||
|
function loadResult(result_path, table_name, link)
|
||
|
{
|
||
|
$(function () {
|
||
|
/** Hides the results shown by the delete criteria */
|
||
|
var $msg = PMA_ajaxShowMessage(PMA_messages.strBrowsing, false);
|
||
|
$('#sqlqueryform').hide();
|
||
|
$('#togglequerybox').hide();
|
||
|
/** Load the browse results to the page */
|
||
|
$("#table-info").show();
|
||
|
$('#table-link').attr({"href" : 'sql.php?' + link }).text(table_name);
|
||
|
var url = result_path + "#sqlqueryresults";
|
||
|
$.get(url, {'ajax_request': true, 'is_js_confirmed': true}, function (data) {
|
||
|
if (data.success) {
|
||
|
$('#browse-results').html(data.message);
|
||
|
$('html, body')
|
||
|
.animate({
|
||
|
scrollTop: $("#browse-results").offset().top
|
||
|
}, 1000);
|
||
|
PMA_ajaxRemoveMessage($msg);
|
||
|
PMA_makegrid($('#table_results')[0], true, true, true, true);
|
||
|
$('#browse-results').show();
|
||
|
} else {
|
||
|
PMA_ajaxShowMessage(data.error, false);
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Delete the selected search results
|
||
|
*
|
||
|
* @param result_path Url of the page to load
|
||
|
* @param msg Text for the confirmation dialog
|
||
|
*
|
||
|
* @return nothing
|
||
|
*/
|
||
|
function deleteResult(result_path, msg)
|
||
|
{
|
||
|
$(function () {
|
||
|
/** Hides the results shown by the browse criteria */
|
||
|
$("#table-info").hide();
|
||
|
$('#sqlqueryform').hide();
|
||
|
$('#togglequerybox').hide();
|
||
|
/** Conformation message for deletion */
|
||
|
if (confirm(msg)) {
|
||
|
var $msg = PMA_ajaxShowMessage(PMA_messages.strDeleting, false);
|
||
|
/** Load the deleted option to the page*/
|
||
|
$('#sqlqueryform').html('');
|
||
|
var url = result_path + "#result_query, #sqlqueryform";
|
||
|
$.get(url, {'ajax_request': true, 'is_js_confirmed': true},
|
||
|
function (data) {
|
||
|
if (data.success) {
|
||
|
$('#sqlqueryform').html(data.sql_query);
|
||
|
/** Refresh the search results after the deletion */
|
||
|
document.getElementById('buttonGo').click();
|
||
|
$('#togglequerybox').html(PMA_messages.strHideQueryBox);
|
||
|
/** Show the results of the deletion option */
|
||
|
$('#browse-results').hide();
|
||
|
$('#sqlqueryform').show();
|
||
|
$('#togglequerybox').show();
|
||
|
$('html, body')
|
||
|
.animate({
|
||
|
scrollTop: $("#browse-results").offset().top
|
||
|
}, 1000);
|
||
|
PMA_ajaxRemoveMessage($msg);
|
||
|
} else {
|
||
|
PMA_ajaxShowMessage(data.error, false);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
AJAX.registerOnload('db_search.js', function () {
|
||
|
/** Hide the table link in the initial search result */
|
||
|
var icon = PMA_getImage('s_tbl.png', '', {'id': 'table-image'}).toString();
|
||
|
$("#table-info").prepend(icon).hide();
|
||
|
|
||
|
/** Hide the browse and deleted results in the new search criteria */
|
||
|
$('#buttonGo').click(function () {
|
||
|
$("#table-info").hide();
|
||
|
$('#browse-results').hide();
|
||
|
$('#sqlqueryform').hide();
|
||
|
$('#togglequerybox').hide();
|
||
|
});
|
||
|
/**
|
||
|
* Prepare a div containing a link for toggle the search results
|
||
|
*/
|
||
|
$('#togglesearchresultsdiv')
|
||
|
/** don't show it until we have results on-screen */
|
||
|
.hide();
|
||
|
|
||
|
/**
|
||
|
* Changing the displayed text according to
|
||
|
* the hide/show criteria in search result forms
|
||
|
*/
|
||
|
$('#togglesearchresultlink')
|
||
|
.html(PMA_messages.strHideSearchResults)
|
||
|
.bind('click', function () {
|
||
|
var $link = $(this);
|
||
|
$('#searchresults').slideToggle();
|
||
|
if ($link.text() == PMA_messages.strHideSearchResults) {
|
||
|
$link.text(PMA_messages.strShowSearchResults);
|
||
|
} else {
|
||
|
$link.text(PMA_messages.strHideSearchResults);
|
||
|
}
|
||
|
/** avoid default click action */
|
||
|
return false;
|
||
|
});
|
||
|
|
||
|
/**
|
||
|
* Prepare a div containing a link for toggle the search form,
|
||
|
* otherwise it's incorrectly displayed after a couple of clicks
|
||
|
*/
|
||
|
$('#togglesearchformdiv')
|
||
|
.hide(); // don't show it until we have results on-screen
|
||
|
|
||
|
/**
|
||
|
* Changing the displayed text according to
|
||
|
* the hide/show criteria in search form
|
||
|
*/
|
||
|
$("#togglequerybox")
|
||
|
.hide()
|
||
|
.bind('click', function () {
|
||
|
var $link = $(this);
|
||
|
$('#sqlqueryform').slideToggle("medium");
|
||
|
if ($link.text() == PMA_messages.strHideQueryBox) {
|
||
|
$link.text(PMA_messages.strShowQueryBox);
|
||
|
} else {
|
||
|
$link.text(PMA_messages.strHideQueryBox);
|
||
|
}
|
||
|
/** avoid default click action */
|
||
|
return false;
|
||
|
});
|
||
|
|
||
|
/** don't show it until we have results on-screen */
|
||
|
|
||
|
/**
|
||
|
* Changing the displayed text according to
|
||
|
* the hide/show criteria in search criteria form
|
||
|
*/
|
||
|
$('#togglesearchformlink')
|
||
|
.html(PMA_messages.strShowSearchCriteria)
|
||
|
.bind('click', function () {
|
||
|
var $link = $(this);
|
||
|
$('#db_search_form').slideToggle();
|
||
|
if ($link.text() == PMA_messages.strHideSearchCriteria) {
|
||
|
$link.text(PMA_messages.strShowSearchCriteria);
|
||
|
} else {
|
||
|
$link.text(PMA_messages.strHideSearchCriteria);
|
||
|
}
|
||
|
/** avoid default click action */
|
||
|
return false;
|
||
|
});
|
||
|
/**
|
||
|
* Ajax Event handler for retrieving the result of an SQL Query
|
||
|
*/
|
||
|
$("#db_search_form.ajax").live('submit', function (event) {
|
||
|
event.preventDefault();
|
||
|
|
||
|
var $msgbox = PMA_ajaxShowMessage(PMA_messages.strSearching, false);
|
||
|
// jQuery object to reuse
|
||
|
var $form = $(this);
|
||
|
|
||
|
PMA_prepareForAjaxRequest($form);
|
||
|
|
||
|
var url = $form.serialize() + "&submit_search=" + $("#buttonGo").val();
|
||
|
$.post($form.attr('action'), url, function (data) {
|
||
|
if (data.success === true) {
|
||
|
// found results
|
||
|
$("#searchresults").html(data.message);
|
||
|
|
||
|
$('#togglesearchresultlink')
|
||
|
// always start with the Show message
|
||
|
.text(PMA_messages.strHideSearchResults);
|
||
|
$('#togglesearchresultsdiv')
|
||
|
// now it's time to show the div containing the link
|
||
|
.show();
|
||
|
$('#searchresults').show();
|
||
|
|
||
|
|
||
|
$('#db_search_form')
|
||
|
// workaround for Chrome problem (bug #3168569)
|
||
|
.slideToggle()
|
||
|
.hide();
|
||
|
$('#togglesearchformlink')
|
||
|
// always start with the Show message
|
||
|
.text(PMA_messages.strShowSearchCriteria);
|
||
|
$('#togglesearchformdiv')
|
||
|
// now it's time to show the div containing the link
|
||
|
.show();
|
||
|
} else {
|
||
|
// error message (zero rows)
|
||
|
$("#sqlqueryresults").html(data.error);
|
||
|
}
|
||
|
|
||
|
PMA_ajaxRemoveMessage($msgbox);
|
||
|
});
|
||
|
});
|
||
|
}); // end $()
|