aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/js/database/search.js
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/js/database/search.js
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/js/database/search.js')
-rw-r--r--srcs/phpmyadmin/js/database/search.js248
1 files changed, 248 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/js/database/search.js b/srcs/phpmyadmin/js/database/search.js
new file mode 100644
index 0000000..19e64e4
--- /dev/null
+++ b/srcs/phpmyadmin/js/database/search.js
@@ -0,0 +1,248 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * JavaScript functions used on Database Search page
+ *
+ * @requires jQuery
+ * @requires js/functions.js
+ *
+ * @package PhpMyAdmin
+ */
+
+/* global makeGrid */ // js/makegrid.js
+
+/**
+ * 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('database/search.js', function () {
+ $('a.browse_results').off('click');
+ $('a.delete_results').off('click');
+ $('#buttonGo').off('click');
+ $('#togglesearchresultlink').off('click');
+ $('#togglequerybox').off('click');
+ $('#togglesearchformlink').off('click');
+ $(document).off('submit', '#db_search_form.ajax');
+});
+
+AJAX.registerOnload('database/search.js', function () {
+ /** Hide the table link in the initial search result */
+ var icon = Functions.getImage('s_tbl', '', { 'id': 'table-image' }).toString();
+ $('#table-info').prepend(icon).hide();
+
+ /** Hide the browse and deleted results in the new search criteria */
+ $('#buttonGo').on('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(Messages.strHideSearchResults)
+ .on('click', function () {
+ var $link = $(this);
+ $('#searchresults').slideToggle();
+ if ($link.text() === Messages.strHideSearchResults) {
+ $link.text(Messages.strShowSearchResults);
+ } else {
+ $link.text(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()
+ .on('click', function () {
+ var $link = $(this);
+ $('#sqlqueryform').slideToggle('medium');
+ if ($link.text() === Messages.strHideQueryBox) {
+ $link.text(Messages.strShowQueryBox);
+ } else {
+ $link.text(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(Messages.strShowSearchCriteria)
+ .on('click', function () {
+ var $link = $(this);
+ $('#db_search_form').slideToggle();
+ if ($link.text() === Messages.strHideSearchCriteria) {
+ $link.text(Messages.strShowSearchCriteria);
+ } else {
+ $link.text(Messages.strHideSearchCriteria);
+ }
+ /** avoid default click action */
+ return false;
+ });
+
+ /*
+ * Ajax Event handler for retrieving the results from a table
+ */
+ $(document).on('click', 'a.browse_results', function (e) {
+ e.preventDefault();
+ /** Hides the results shown by the delete criteria */
+ var $msg = Functions.ajaxShowMessage(Messages.strBrowsing, false);
+ $('#sqlqueryform').hide();
+ $('#togglequerybox').hide();
+ /** Load the browse results to the page */
+ $('#table-info').show();
+ var tableName = $(this).data('table-name');
+ $('#table-link').attr({ 'href' : $(this).attr('href') }).text(tableName);
+
+ var url = $(this).attr('href') + '#searchresults';
+ var browseSql = $(this).data('browse-sql');
+ var params = {
+ 'ajax_request': true,
+ 'is_js_confirmed': true,
+ 'sql_query' : browseSql
+ };
+ $.post(url, params, function (data) {
+ if (typeof data !== 'undefined' && data.success) {
+ $('#browse-results').html(data.message);
+ Functions.ajaxRemoveMessage($msg);
+ $('.table_results').each(function () {
+ makeGrid(this, true, true, true, true);
+ });
+ $('#browse-results').show();
+ Functions.highlightSql($('#browse-results'));
+ $('html, body')
+ .animate({
+ scrollTop: $('#browse-results').offset().top
+ }, 1000);
+ } else {
+ Functions.ajaxShowMessage(data.error, false);
+ }
+ });
+ });
+
+ /*
+ * Ajax Event handler for deleting the results from a table
+ */
+ $(document).on('click', 'a.delete_results', function (e) {
+ e.preventDefault();
+ /** Hides the results shown by the browse criteria */
+ $('#table-info').hide();
+ $('#sqlqueryform').hide();
+ $('#togglequerybox').hide();
+ /** Conformation message for deletion */
+ var msg = Functions.sprintf(
+ Messages.strConfirmDeleteResults,
+ $(this).data('table-name')
+ );
+ if (confirm(msg)) {
+ var $msg = Functions.ajaxShowMessage(Messages.strDeleting, false);
+ /** Load the deleted option to the page*/
+ $('#sqlqueryform').html('');
+ var params = {
+ 'ajax_request': true,
+ 'is_js_confirmed': true,
+ 'sql_query': $(this).data('delete-sql')
+ };
+ var url = $(this).attr('href');
+
+ $.post(url, params, function (data) {
+ if (typeof data === 'undefined' || !data.success) {
+ Functions.ajaxShowMessage(data.error, false);
+ return;
+ }
+
+ $('#sqlqueryform').html(data.sql_query);
+ /** Refresh the search results after the deletion */
+ document.getElementById('buttonGo').trigger('click');
+ $('#togglequerybox').html(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);
+ Functions.ajaxRemoveMessage($msg);
+ });
+ }
+ });
+
+ /**
+ * Ajax Event handler for retrieving the result of an SQL Query
+ */
+ $(document).on('submit', '#db_search_form.ajax', function (event) {
+ event.preventDefault();
+
+ var $msgbox = Functions.ajaxShowMessage(Messages.strSearching, false);
+ // jQuery object to reuse
+ var $form = $(this);
+
+ Functions.prepareForAjaxRequest($form);
+
+ var url = $form.serialize() + CommonParams.get('arg_separator') + 'submit_search=' + $('#buttonGo').val();
+ $.post($form.attr('action'), url, function (data) {
+ if (typeof data !== 'undefined' && data.success === true) {
+ // found results
+ $('#searchresults').html(data.message);
+
+ $('#togglesearchresultlink')
+ // always start with the Show message
+ .text(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(Messages.strShowSearchCriteria);
+ $('#togglesearchformdiv')
+ // now it's time to show the div containing the link
+ .show();
+ } else {
+ // error message (zero rows)
+ $('#searchresults').html(data.error).show();
+ }
+
+ Functions.ajaxRemoveMessage($msgbox);
+ });
+ });
+}); // end $()