/* vim: set expandtab sw=4 ts=4 sts=4: */ /** * @fileoverview JavaScript functions used on Database Search page * @name Database Search * * @requires jQuery * @requires js/functions.js */ /** * AJAX script for the Database Search page. * * Actions ajaxified here: * Retrieve result of SQL query */ /** Loads the database search results */ function loadResult(result_path , table_name , link , ajaxEnable) { $(document).ready(function() { if(ajaxEnable) { /** Hides the results shown by the delete criteria */ PMA_ajaxShowMessage(PMA_messages['strBrowsing']); $('#sqlqueryform').hide(); $('#togglequerybox').hide(); /** Load the browse results to the page */ $("#table-info").show(); $('#table-link').attr({"href" : 'sql.php?'+link }).text(table_name); $('#browse-results').load(result_path + " '"+'#sqlqueryresults' + "'", null, function() { // because under db_search, window.parent.table is not defined yet, // we assign it manually from #table-link window.parent.table = $('#table-link').text().trim(); $('#table_results').makegrid(); }).show(); } else { event.preventDefault(); } }); } /** Delete the selected search results */ function deleteResult(result_path , msg , ajaxEnable) { $(document).ready(function() { /** Hides the results shown by the browse criteria */ $("#table-info").hide(); $('#browse-results').hide(); $('#sqlqueryform').hide(); $('#togglequerybox').hide(); /** Conformation message for deletion */ if(confirm(msg)) { if(ajaxEnable) { /** Load the deleted option to the page*/ $('#browse-results').load(result_path + " '"+'#result_query' + "'"); $('#sqlqueryform').load(result_path + " '"+'#sqlqueryform' + "'"); $('#togglequerybox').html(PMA_messages['strShowQueryBox']); /** Refresh the search results after the deletion */ document.getElementById('buttonGo'). click(); PMA_ajaxShowMessage(PMA_messages['strDeleting']); /** Show the results of the deletion option */ $('#browse-results').show(); $('#sqlqueryform').hide(); $('#togglequerybox').show(); } else { event.preventDefault(); } } }); } $(document).ready(function() { /** * Set a parameter for all Ajax queries made on this page. Don't let the * web server serve cached pagesshow */ $.ajaxSetup({ cache: 'false' }); /** Hide the table link in the initial search result */ $("#table-info").prepend('').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 */ $('
') .insertAfter('#searchresults') /** don't show it until we have results on-screen */ .hide(); $('
').insertAfter("#togglesearchresultsdiv").show(); /** 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 */ $('
') .insertAfter('#db_search_form') /** don't show it until we have results on-screen */ .hide(); /** Changing the displayed text according to the hide/show criteria in search form*/ $("#togglequerybox").hide(); $("#togglequerybox").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 * (see $GLOBALS['cfg']['AjaxEnable']) * * @uses PMA_ajaxShowMessage() * @see $GLOBALS['cfg']['AjaxEnable'] */ $("#db_search_form.ajax").live('submit', function(event) { event.preventDefault(); var $msgbox = PMA_ajaxShowMessage(PMA_messages['strSearching']); // jQuery object to reuse $form = $(this); PMA_prepareForAjaxRequest($form); $.post($form.attr('action'), $form.serialize() + "&submit_search=" + $("#buttonGo").val(), function(response) { if (typeof response == 'string') { // found results $("#searchresults").html(response); $('#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(response['message']); } PMA_ajaxRemoveMessage($msgbox); }) }) }, 'top.frame_content'); // end $(document).ready()