This is an automated email from the ASF dual-hosted git repository. arina pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/drill.git
commit 3d76348f36e1ef2285a0a9479ea90bf6e80e8a22 Author: Dobes Vandermeer <[email protected]> AuthorDate: Tue Feb 25 13:58:21 2020 -0800 DRILL-7605: Preserve query form field values between reloads / navigation It is nice to continue where you left off when returning to the query form. closes #1995 --- .../src/main/resources/rest/query/query.ftl | 44 ++++++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/exec/java-exec/src/main/resources/rest/query/query.ftl b/exec/java-exec/src/main/resources/rest/query/query.ftl index aea8bb3..a20cf3e 100644 --- a/exec/java-exec/src/main/resources/rest/query/query.ftl +++ b/exec/java-exec/src/main/resources/rest/query/query.ftl @@ -87,13 +87,51 @@ </form> <script> + // Remember form field values over page reloads + $("input[type=text],input[type=checkbox],input[type=radio],select").each(function () { + var $input = $(this); + var savedKey = "saved_query_" + $input.attr("name"); + var savedValue = sessionStorage.getItem(savedKey); + if ($input.attr("type") === "checkbox") { + if (savedValue === "true") { + $input.prop("checked", true); + } + if (savedValue === "false") { + $input.prop("checked", false); + } + $input.change(function () { + sessionStorage.setItem(savedKey, String($(this).prop("checked"))); + }); + } else if ($input.attr("type") === "radio") { + var value = $input.val(); + if (savedValue === value) { + $input.prop("checked", true); + } + $input.change(function () { + sessionStorage.setItem(savedKey, $(this).val()); + }); + } else { + if (typeof savedValue === "string") { + $input.val(savedValue); + } + $input.change(function () { + sessionStorage.setItem(savedKey, $(this).val()); + }); + } + }); + // Hidden text input for form-submission + var queryText = $('input[name="query"]'); ace.require("ace/ext/language_tools"); var editor = ace.edit("query-editor-format"); - var queryText = $('input[name="query"]'); - //Hidden text input for form-submission editor.getSession().on("change", function () { - queryText.val(editor.getSession().getValue()); + var text = editor.getSession().getValue(); + queryText.val(text); + sessionStorage.setItem("saved_query_query", text); }); + var savedQueryText = sessionStorage.getItem('saved_query_query'); + if (savedQueryText) { + editor.getSession().setValue(savedQueryText); + } editor.setAutoScrollEditorIntoView(true); editor.setOption("maxLines", 25); editor.setOption("minLines", 12);
