From 6a63ffca284ed29f2c1025bdd3454d5c94bd84a2 Mon Sep 17 00:00:00 2001 From: kolaente Date: Tue, 21 Jan 2025 18:03:14 +0100 Subject: [PATCH] fix(views): make searching in view filters work Partially resolves https://community.vikunja.io/t/improvement-filtering/2970 --- .../components/project/views/ViewEditForm.vue | 36 +++++++++++++------ 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/frontend/src/components/project/views/ViewEditForm.vue b/frontend/src/components/project/views/ViewEditForm.vue index 13dcc1e9b..3eee17359 100644 --- a/frontend/src/components/project/views/ViewEditForm.vue +++ b/frontend/src/components/project/views/ViewEditForm.vue @@ -29,24 +29,40 @@ const labelStore = useLabelStore() const projectStore = useProjectStore() onBeforeMount(() => { - const transformFilterToString = (filter: IFilter): string => { - if (filter.s !== '') { - return filter.s - } - - return transformFilterStringFromApi( - filter.filter, + const transformFilterFromApi = (filterInput: IFilter): IFilter => { + const filterString = transformFilterStringFromApi( + filterInput.filter, labelId => labelStore.getLabelById(labelId)?.title || null, projectId => projectStore.projects[projectId]?.title || null, ) + + const filter: IFilter = { + filter: '', + s: '', + } + if (hasFilterQuery(filterString)) { + filter.filter = filterString + } else { + filter.s = filterString + } + + if (filter.s === '') { + filter.s = filterInput.s + } + + if (filter.filter === '') { + filter.filter = filter.s + } + + return filter } const transformed = { ...props.modelValue, - filter: transformFilterToString(props.modelValue.filter), + filter: transformFilterFromApi(props.modelValue.filter), bucketConfiguration: props.modelValue.bucketConfiguration.map(bc => ({ title: bc.title, - filter: transformFilterToString(bc.filter), + filter: transformFilterFromApi(bc.filter), })), } @@ -158,7 +174,7 @@ function handleBubbleSave() {