diff --git a/frontend/src/components/project/partials/FilterPopup.vue b/frontend/src/components/project/partials/FilterPopup.vue index 23a069a36..765f12e45 100644 --- a/frontend/src/components/project/partials/FilterPopup.vue +++ b/frontend/src/components/project/partials/FilterPopup.vue @@ -20,6 +20,7 @@ :has-title="true" class="filter-popup" :change-immediately="false" + :filter-from-view="filterFromView" @showResults="showResults" /> @@ -31,14 +32,22 @@ import {computed, ref, watch} from 'vue' import Filters from '@/components/project/partials/Filters.vue' import {type TaskFilterParams} from '@/services/taskCollection' +import {type IProjectView} from '@/modelTypes/IProjectView' +import {type IProject} from '@/modelTypes/IProject' +import {useProjectStore} from '@/stores/projects' const props = defineProps<{ modelValue: TaskFilterParams, + projectId?: IProject['id'], + viewId?: IProjectView['id'], }>() + const emit = defineEmits<{ 'update:modelValue': [value: TaskFilterParams] }>() +const projectStore = useProjectStore() + const value = ref({}) watch( @@ -67,6 +76,19 @@ function showResults() { }) modalOpen.value = false } + +const filterFromView = computed(() => { + if (!props.projectId || !props.viewId) { + return + } + + const project = projectStore.projects[props.projectId] + if (!project) { + return + } + const view = project.views.find(v => v.id === props.viewId) + return view?.filter +})