From fec14c684eba568763f8586f2e267edb18028d99 Mon Sep 17 00:00:00 2001 From: ncounter Date: Mon, 27 Jan 2025 14:19:08 +0100 Subject: [PATCH] Validate datetime-local input --- .../javascripts/webui/content-selector-filters.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/api/app/assets/javascripts/webui/content-selector-filters.js b/src/api/app/assets/javascripts/webui/content-selector-filters.js index a1929dbb098..e71c4402109 100644 --- a/src/api/app/assets/javascripts/webui/content-selector-filters.js +++ b/src/api/app/assets/javascripts/webui/content-selector-filters.js @@ -28,8 +28,21 @@ function submitFilters() { let submitFiltersTimeout; $(document).on('change keyup', '#content-selector-filters-form input, #content-selector-filters-form select', function() { - highlightSelectedFilters(); + // Clear the timeout to prevent the pending submission, if any window.clearTimeout(submitFiltersTimeout); + + // Validate datetime-local inputs + if ($(this).attr('type') === 'datetime-local') { + // Parse the value + const datetime = new Date($(this).val()); + if (isNaN(datetime.getTime())) { + window.console.error("Invalid date or time format"); + return; + } + } + highlightSelectedFilters(); + + // Set a timeout to submit the filters submitFiltersTimeout = window.setTimeout(submitFilters, 2000); });