From b875bfaba197b7c7869f63e896f6b53f4e92aed2 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Wed, 29 Oct 2025 09:22:12 +0100 Subject: [PATCH] implemented quick filter on task index Signed-off-by: Stephan Richter --- frontend/src/routes/task/Index.svelte | 21 +++++++++++++++++++-- translations/src/main/resources/de.json | 1 + translations/src/main/resources/en.json | 2 ++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/frontend/src/routes/task/Index.svelte b/frontend/src/routes/task/Index.svelte index 28de894..91c0bd2 100644 --- a/frontend/src/routes/task/Index.svelte +++ b/frontend/src/routes/task/Index.svelte @@ -7,6 +7,8 @@ import { t } from '../../translations.svelte.js'; let filter = $state(null); + let lower_filter = $derived(filter.toLowerCase()); + let inverted_filter = $state(false); let projects = $state({}); let router = useTinyRouter(); let tasks = $state(null); @@ -46,7 +48,16 @@ } function filterApplies(task){ - return true; + if (!filter) return !inverted_filter; + if (task.name.toLowerCase().includes(lower_filter)) return !inverted_filter; + if (task.description.source.toLowerCase().includes(lower_filter)) return !inverted_filter; + if (projects[task.project_id].name.toLowerCase().includes(lower_filter)) return !inverted_filter; + if (task.parent_task_id){ + const parent = map[task.parent_task_id]; + if (parent && parent.name.toLowerCase().includes(lower_filter)) return !inverted_filter; + } + + return inverted_filter; } function go(module, id){ @@ -112,6 +123,12 @@ + {#if filter} + + {/if} {#if tasks} @@ -148,7 +165,7 @@
- + diff --git a/translations/src/main/resources/de.json b/translations/src/main/resources/de.json index f36deba..f01789e 100644 --- a/translations/src/main/resources/de.json +++ b/translations/src/main/resources/de.json @@ -119,6 +119,7 @@ "impersonate": "zu Nutzer wechseln", "IMPERSONATE": "Nutzer wechseln", "index_page": "Aufgabenübersicht", + "invert_filter": "Filter umkehren", "invoice": "Rechnung", "item": "Artikel", "items": "Artikel", diff --git a/translations/src/main/resources/en.json b/translations/src/main/resources/en.json index 34a8f4f..6eb2447 100644 --- a/translations/src/main/resources/en.json +++ b/translations/src/main/resources/en.json @@ -119,7 +119,9 @@ "impersonate": "impersonate", "IMPERSONATE": "impersonate", "index_page": "task overview", + "invert_filter": "Filter umkehren", "invoice": "invoice", + "item": "Item", "items": "items", "join_objects" : "join {objects}",