summaryrefslogtreecommitdiff
path: root/hugo/js/db_search.js
diff options
context:
space:
mode:
Diffstat (limited to 'hugo/js/db_search.js')
-rw-r--r--hugo/js/db_search.js228
1 files changed, 228 insertions, 0 deletions
diff --git a/hugo/js/db_search.js b/hugo/js/db_search.js
new file mode 100644
index 0000000..495abad
--- /dev/null
+++ b/hugo/js/db_search.js
@@ -0,0 +1,228 @@
+/* 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";
+ $('#browse-results').load(url, null, function() {
+ $('html, body')
+ .animate({
+ scrollTop: $("#browse-results").offset().top
+ }, 1000);
+ PMA_ajaxRemoveMessage($msg);
+ PMA_makegrid($('#table_results')[0], true, true, true, true);
+ }).show();
+ });
+}
+
+/**
+ * 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();
+ $('#browse-results').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";
+ $('#browse-results').load(url, function () {
+ /** 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').show();
+ $('#sqlqueryform').show();
+ $('#togglequerybox').show();
+ $('html, body')
+ .animate({
+ scrollTop: $("#browse-results").offset().top
+ }, 1000);
+ PMA_ajaxRemoveMessage($msg);
+ });
+ }
+ });
+}
+
+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
+ */
+ $('<div id="togglesearchresultsdiv"><a id="togglesearchresultlink"></a></div>')
+ .insertAfter('#searchresults')
+ /** don't show it until we have results on-screen */
+ .hide();
+
+ $('<br class="clearfloat" />').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
+ */
+ $('<div id="togglesearchformdiv"><a id="togglesearchformlink"></a></div>')
+ .insertAfter('#db_search_form')
+ .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 $()