From 8c127fdcc7ec05a56fe65538581a4b0944f82dc3 Mon Sep 17 00:00:00 2001 From: limad <35463455+limad@users.noreply.github.com> Date: Wed, 1 Apr 2026 23:11:10 +0200 Subject: [PATCH] Enhance search log filter with term support Refactor search functionality to support multiple terms and :not filter. --- desktop/js/log.js | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/desktop/js/log.js b/desktop/js/log.js index bd7e191a60..8835e06584 100644 --- a/desktop/js/log.js +++ b/desktop/js/log.js @@ -37,28 +37,24 @@ if (!jeeFrontEnd.log) { //searching document.getElementById('in_searchLogFilter')?.addEventListener('keyup', function(event) { - var search = event.target.value - if (search == '') { + var raw = event.target.value + if (raw == '') { jeeP.logListButtons.seen() return } - var not = search.startsWith(":not(") - if (not) { - search = search.replace(':not(', '') - } - search = jeedomUtils.normTextLower(search) + + // Découpe sur la virgule → liste de termes (avec support :not par terme) + var terms = raw.split(',').map(t => t.trim()).filter(t => t.length > 0) + jeeP.logListButtons.unseen() - var match, text jeeP.logListButtons.forEach(_bt => { - match = false - text = jeedomUtils.normTextLower(_bt.textContent) - if (text.includes(search)) { - match = true - } - if (not) match = !match - if (match) { - _bt.seen() - } + var text = jeedomUtils.normTextLower(_bt.textContent) + var match = terms.some(term => { + var not = term.startsWith(':not(') + var search = jeedomUtils.normTextLower(not ? term.slice(5, -1) : term) + return not ? !text.includes(search) : text.includes(search) + }) + if (match) _bt.seen() }) })