From 042a1b04fa3fab0975a12f4a974a6dafd98c8877 Mon Sep 17 00:00:00 2001 From: Louis King Date: Sun, 8 Feb 2026 21:53:35 +0000 Subject: [PATCH 1/2] Add auto-submit for filter controls on list pages Filter forms now auto-submit when select dropdowns change or when Enter is pressed in text inputs. Uses a data-auto-submit attribute pattern for consistency with existing data attribute conventions. --- src/meshcore_hub/web/static/js/utils.js | 26 +++++++++++++++++++ .../web/templates/advertisements.html | 2 +- src/meshcore_hub/web/templates/messages.html | 2 +- src/meshcore_hub/web/templates/nodes.html | 2 +- 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/meshcore_hub/web/static/js/utils.js b/src/meshcore_hub/web/static/js/utils.js index 6d4e618..3dfbf00 100644 --- a/src/meshcore_hub/web/static/js/utils.js +++ b/src/meshcore_hub/web/static/js/utils.js @@ -70,9 +70,35 @@ function populateRelativeTimeElements() { }); } +/** + * Initialize auto-submit behavior for filter forms + * Forms with data-auto-submit attribute will auto-submit on: + * - Change events on select and checkbox inputs + * - Enter key on text inputs + */ +function initAutoSubmitForms() { + document.querySelectorAll('form[data-auto-submit]').forEach(form => { + // Auto-submit on select/checkbox change + form.querySelectorAll('select, input[type="checkbox"]').forEach(el => { + el.addEventListener('change', () => form.submit()); + }); + + // Submit on Enter key for text inputs + form.querySelectorAll('input[type="text"]').forEach(el => { + el.addEventListener('keydown', (e) => { + if (e.key === 'Enter') { + e.preventDefault(); + form.submit(); + } + }); + }); + }); +} + // Auto-populate when DOM is ready document.addEventListener('DOMContentLoaded', () => { populateRelativeTimestamps(); populateReceiverTooltips(); populateRelativeTimeElements(); + initAutoSubmitForms(); }); diff --git a/src/meshcore_hub/web/templates/advertisements.html b/src/meshcore_hub/web/templates/advertisements.html index 51e0571..b4a8a57 100644 --- a/src/meshcore_hub/web/templates/advertisements.html +++ b/src/meshcore_hub/web/templates/advertisements.html @@ -20,7 +20,7 @@
-
+