123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- /* 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 $()
|