Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorPiyush Vijay <piyushvijay.1997@gmail.com>2018-05-03 22:50:38 +0300
committerMaurĂ­cio Meneghini Fauth <mauriciofauth@gmail.com>2018-05-03 22:50:38 +0300
commit9c7c5ca951be1e75b6c773520fd366f8478d02b3 (patch)
tree3141800a70d362ccead401957bf8adf98b501804 /js
parent3bf396ce54b2ea6424ddfdc23c1738e1970b0ca1 (diff)
Changes to make Get auto saved query and show this query here again button functional (#14166)
* Handling of autosaved query and making get auto-saved query button functional Signed-off-by: Piyush Vijay <piyushvijay.1997@gmail.com> * Basic functionality of show this query here again added Signed-off-by: Piyush Vijay <piyushvijay.1997@gmail.com> * Show this query here again checkbox working properly Signed-off-by: Piyush Vijay <piyushvijay.1997@gmail.com> * deleting auto_saved_sql on clicking submit query button Signed-off-by: Piyush Vijay <piyushvijay.1997@gmail.com> * javascript error handled Signed-off-by: Piyush Vijay <piyushvijay.1997@gmail.com> * javascript error of JSON undefined removed Signed-off-by: Piyush Vijay <piyushvijay.1997@gmail.com> Signed-off-by: MaurĂ­cio Meneghini Fauth <mauriciofauth@gmail.com>
Diffstat (limited to 'js')
-rw-r--r--js/ajax.js13
-rw-r--r--js/messages.php3
-rw-r--r--js/sql.js89
3 files changed, 97 insertions, 8 deletions
diff --git a/js/ajax.js b/js/ajax.js
index 81976128cc..f484d522a7 100644
--- a/js/ajax.js
+++ b/js/ajax.js
@@ -245,10 +245,17 @@ var AJAX = {
// the click event is not triggered by script
if (typeof event !== 'undefined' && event.type === 'click' &&
event.isTrigger !== true &&
- !jQuery.isEmptyObject(AJAX.lockedTargets) &&
- confirm(PMA_messages.strConfirmNavigation) === false
+ !jQuery.isEmptyObject(AJAX.lockedTargets)
) {
- return false;
+ if (confirm(PMA_messages.strConfirmNavigation) === false) {
+ return false;
+ } else {
+ if (isStorageSupported('localStorage')) {
+ window.localStorage.removeItem('auto_saved_sql');
+ } else {
+ Cookies.set('auto_saved_sql', '');
+ }
+ }
}
AJAX.resetLock();
var isLink = !! href || false;
diff --git a/js/messages.php b/js/messages.php
index 257bc788db..933c924e5c 100644
--- a/js/messages.php
+++ b/js/messages.php
@@ -421,7 +421,8 @@ $js_messages['strEdit'] = __('Edit');
$js_messages['strDelete'] = __('Delete');
$js_messages['strNotValidRowNumber'] = __('%d is not valid row number.');
$js_messages['strBrowseForeignValues'] = __('Browse foreign values');
-$js_messages['strNoAutoSavedQuery'] = __('No auto-saved query');
+$js_messages['strNoAutoSavedQuery'] = __('No previously auto-saved query. Loading default query.');
+$js_messages['strPreviousSaveQuery'] = __('You have previously saved query. Click Get auto-saved query to get query.');
$js_messages['strBookmarkVariable'] = __('Variable %d:');
/* For Central list of columns */
diff --git a/js/sql.js b/js/sql.js
index 11e7543c76..e6613ebbc6 100644
--- a/js/sql.js
+++ b/js/sql.js
@@ -49,6 +49,58 @@ function PMA_autosaveSQL (query) {
}
/**
+ * Saves SQL query in local storage or cookie
+ *
+ * @param string database name
+ * @param string table name
+ * @param string SQL query
+ * @return void
+ */
+function PMA_showThisQuery (db, table, query) {
+ var show_this_query_object = {
+ 'db': db,
+ 'table': table,
+ 'query': query
+ };
+ if (isStorageSupported('localStorage')) {
+ window.localStorage.show_this_query = 1;
+ window.localStorage.show_this_query_object = JSON.stringify(show_this_query_object);
+ } else {
+ Cookies.set('show_this_quey', 1);
+ Cookies.set('show_this_query_object', JSON.stringify(show_this_query_object));
+ }
+}
+
+/**
+ * Set query to codemirror if show this query is
+ * checked and query for the db and table pair exists
+ */
+function setShowThisQuery () {
+ var db = $('input[name="db"]').val();
+ var table = $('input[name="table"]').val();
+ if (isStorageSupported('localStorage')) {
+ if (window.localStorage.show_this_query_object !== undefined) {
+ var stored_db = JSON.parse(window.localStorage.show_this_query_object).db;
+ var stored_table = JSON.parse(window.localStorage.show_this_query_object).table;
+ var stored_query = JSON.parse(window.localStorage.show_this_query_object).query;
+ }
+ if (window.localStorage.show_this_query !== undefined
+ && window.localStorage.show_this_query === '1') {
+ $('input[name="show_query"]').prop('checked', true);
+ if (db === stored_db && table === stored_table) {
+ if (codemirror_editor) {
+ codemirror_editor.setValue(stored_query);
+ } else if (document.sqlform) {
+ document.sqlform.sql_query.value = stored_query;
+ }
+ }
+ } else {
+ $('input[name="show_query"]').prop('checked', false);
+ }
+ }
+}
+
+/**
* Saves SQL query with sort in local storage or cookie
*
* @param string SQL query
@@ -157,6 +209,9 @@ AJAX.registerTeardown('sql.js', function () {
* @memberOf jQuery
*/
AJAX.registerOnload('sql.js', function () {
+ if (codemirror_editor || document.sqlform) {
+ setShowThisQuery();
+ }
$(function () {
if (codemirror_editor) {
codemirror_editor.on('change', function () {
@@ -283,8 +338,8 @@ AJAX.registerOnload('sql.js', function () {
});
$('.table_results .column_heading a').each(function () {
- //Don't copy ordering number text within <small> tag
- textArea.value += $(this).clone().find('small').remove().end().text() + '\t';
+ // Don't copy ordering number text within <small> tag
+ textArea.value += $(this).clone().find('small').remove().end().text() + '\t';
});
textArea.value += '\n';
@@ -397,6 +452,26 @@ AJAX.registerOnload('sql.js', function () {
// import.php about what needs to be done
$form.find('select[name=id_bookmark]').val('');
// let normal event propagation happen
+ if (isStorageSupported('localStorage')) {
+ window.localStorage.removeItem('auto_saved_sql');
+ } else {
+ Cookies.set('auto_saved_sql', '');
+ }
+ var isShowQuery = $('input[name="show_query"').is(':checked');
+ if (isShowQuery) {
+ window.localStorage.show_this_query = '1';
+ var db = $('input[name="db"]').val();
+ var table = $('input[name="table"]').val();
+ var query;
+ if (codemirror_editor) {
+ query = codemirror_editor.getValue();
+ } else {
+ query = $('#sqlquery').val();
+ }
+ PMA_showThisQuery(db, table, query);
+ } else {
+ window.localStorage.show_this_query = '0';
+ }
});
/**
@@ -842,6 +917,12 @@ function browseForeignDialog ($this_a) {
});
}
+function checkSavedQuery () {
+ if (isStorageSupported('localStorage') && window.localStorage.auto_saved_sql !== undefined) {
+ PMA_ajaxShowMessage(PMA_messages.strPreviousSaveQuery);
+ }
+}
+
AJAX.registerOnload('sql.js', function () {
$('body').on('click', 'a.browse_foreign', function (e) {
e.preventDefault();
@@ -871,10 +952,10 @@ AJAX.registerOnload('sql.js', function () {
$('.sqlqueryresults').trigger('makegrid').trigger('stickycolumns');
/**
- * Restores SQL query after timeout login
+ * Check if there is any saved query
*/
if (codemirror_editor || document.sqlform) {
- insertQuery('saved');
+ checkSavedQuery();
}
});