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}",