From 0c5c67a8c4f52fcb77976c39284882e2a4192487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20F=C3=A4rber?= <01mf02@gmail.com> Date: Fri, 31 Jan 2025 16:35:43 +0100 Subject: [PATCH] Read/write filter & input from/to URL search parameters. --- jaq-play/src/main.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/jaq-play/src/main.js b/jaq-play/src/main.js index ffb4e24a2..00a834e29 100644 --- a/jaq-play/src/main.js +++ b/jaq-play/src/main.js @@ -1,7 +1,28 @@ // currently active jaq thread let worker = initWorker(); +const param_ids = Object.entries({'q': 'filter', 'j': 'input'}); + +function getParams() { + const urlParams = new URLSearchParams(window.location.search); + for (const [param, id] of param_ids) { + const value = urlParams.get(param); + if (value !== null) { + document.getElementById(id).value = value; + } + } +} + +function setParams() { + const url = new URL(window.location) + for (const [param, id] of param_ids) { + url.searchParams.set(param, document.getElementById(id).value); + } + history.pushState(null, '', url); +} + function startWorker() { + setParams(); showRunButton(false); // remove previous output @@ -60,3 +81,5 @@ document.addEventListener('keydown', event => { // CTRL + Enter if (event.ctrlKey && event.key == 'Enter') { startWorker() } }); + +getParams();