diff --git a/js/functions.js b/js/functions.js
index 2bbe33129b57..d2abc71ea421 100644
--- a/js/functions.js
+++ b/js/functions.js
@@ -1000,6 +1000,13 @@ function insertQuery(queryType)
});
}
return;
+ } else if (queryType == "saved") {
+ if ($.cookie('auto_saved_sql')) {
+ setQuery($.cookie('auto_saved_sql'));
+ } else {
+ PMA_ajaxShowMessage(PMA_messages.strNoAutoSavedQuery);
+ }
+ return;
}
var query = "";
diff --git a/js/messages.php b/js/messages.php
index 42df7d42d6a8..e9cb41431706 100644
--- a/js/messages.php
+++ b/js/messages.php
@@ -305,6 +305,7 @@
$js_messages['strEdit'] = __('Edit');
$js_messages['strNotValidRowNumber'] = __('%d is not valid row number.');
$js_messages['strBrowseForeignValues'] = __('Browse foreign values');
+$js_messages['strNoAutoSavedQuery'] = __('No auto saved query');
/* For Central list of columns */
$js_messages['pickColumn'] = __('Pick');
diff --git a/js/sql.js b/js/sql.js
index 553bd40e1b00..f47fc47bac47 100644
--- a/js/sql.js
+++ b/js/sql.js
@@ -100,6 +100,11 @@ AJAX.registerTeardown('sql.js', function () {
$(document).off('click', 'th.column_heading.marker');
$(window).unbind('scroll');
$(document).off("keyup", ".filter_rows");
+ if (codemirror_editor) {
+ codemirror_editor.off('change');
+ } else {
+ $('#sqlquery').off('input propertychange');
+ }
$('body').off('click', '.navigation .showAllRows');
$('body').off('click','a.browse_foreign');
$('body').off('click', '#simulate_dml');
@@ -124,6 +129,25 @@ AJAX.registerTeardown('sql.js', function () {
* @memberOf jQuery
*/
AJAX.registerOnload('sql.js', function () {
+
+ $(function () {
+ if (codemirror_editor) {
+ codemirror_editor.on('change', function () {
+ var query = codemirror_editor.getValue();
+ if (query) {
+ $.cookie('auto_saved_sql', query);
+ }
+ });
+ } else {
+ $('#sqlquery').on('input propertychange', function () {
+ var query = $('#sqlquery').val();
+ if (query) {
+ $.cookie('auto_saved_sql', query);
+ }
+ });
+ }
+ });
+
// Delete row from SQL results
$(document).on('click', 'a.delete_row.ajax', function (e) {
e.preventDefault();
diff --git a/libraries/sql_query_form.lib.php b/libraries/sql_query_form.lib.php
index 84c7966d9b16..d044698a5d98 100644
--- a/libraries/sql_query_form.lib.php
+++ b/libraries/sql_query_form.lib.php
@@ -237,6 +237,8 @@ function PMA_getHtmlForSqlQueryFormInsert(
$html .= '';
}
+ $html .= '';
$html .= '' . "\n";
if (count($fields_list)) {