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)) {