diff --git a/frontend/pages/index.vue b/frontend/pages/index.vue index 31a6a56..ab06f94 100644 --- a/frontend/pages/index.vue +++ b/frontend/pages/index.vue @@ -93,11 +93,22 @@ const isWeekPeriod = computed(() => selectedPeriod.value === 'thisWeek' || selectedPeriod.value === 'lastWeek' ) -// ── Filtered data (client-side project filter) ── +// ── Filtered data (client-side project + user filter) ── + +const effectiveUserId = computed(() => selectedUserId.value ?? auth.user?.id ?? null) const tasks = computed(() => { - if (!selectedProjectId.value) return allTasks.value - return allTasks.value.filter(t => t.project?.id === selectedProjectId.value) + let result = allTasks.value + if (selectedProjectId.value) { + result = result.filter(t => t.project?.id === selectedProjectId.value) + } + if (selectedUserId.value) { + result = result.filter(t => + t.assignee?.id === selectedUserId.value + || t.collaborators?.some(c => c.id === selectedUserId.value), + ) + } + return result }) const timeEntries = computed(() => { @@ -173,8 +184,8 @@ const totalHoursThisWeek = computed(() => const myTasks = computed(() => tasks.value.filter(t => - t.assignee?.id === auth.user?.id - || t.collaborators?.some(c => c.id === auth.user?.id) + t.assignee?.id === effectiveUserId.value + || t.collaborators?.some(c => c.id === effectiveUserId.value), ) )