feat(frontend) : filter archived tasks and groups from kanban view

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Matthieu
2026-03-12 18:04:15 +01:00
parent c097849dad
commit 5057ef45c8

View File

@@ -78,12 +78,12 @@
<span class="text-sm font-semibold text-neutral-900">{{ task.title }}</span>
<div class="flex items-center gap-2">
<span
v-for="type in task.types"
:key="type.id"
v-for="tag in task.tags"
:key="tag.id"
class="rounded-full px-2 py-0.5 text-xs font-semibold text-white"
:style="{ backgroundColor: type.color }"
:style="{ backgroundColor: tag.color }"
>
{{ type.label }}
{{ tag.label }}
</span>
<span
v-if="task.priority"
@@ -123,7 +123,7 @@
:statuses="statuses"
:efforts="efforts"
:priorities="priorities"
:types="types"
:tags="tags"
:groups="groups"
:users="users"
@saved="onSaved"
@@ -138,7 +138,7 @@ import type { Task } from '~/services/dto/task'
import type { TaskStatus } from '~/services/dto/task-status'
import type { TaskEffort } from '~/services/dto/task-effort'
import type { TaskPriority } from '~/services/dto/task-priority'
import type { TaskType } from '~/services/dto/task-type'
import type { TaskTag } from '~/services/dto/task-tag'
import type { TaskGroup } from '~/services/dto/task-group'
import type { UserData } from '~/services/dto/user-data'
import { useProjectService } from '~/services/projects'
@@ -146,7 +146,7 @@ import { useTaskService } from '~/services/tasks'
import { useTaskStatusService } from '~/services/task-statuses'
import { useTaskEffortService } from '~/services/task-efforts'
import { useTaskPriorityService } from '~/services/task-priorities'
import { useTaskTypeService } from '~/services/task-types'
import { useTaskTagService } from '~/services/task-tags'
import { useTaskGroupService } from '~/services/task-groups'
import { useUserService } from '~/services/users'
@@ -160,7 +160,7 @@ const taskService = useTaskService()
const statusService = useTaskStatusService()
const effortService = useTaskEffortService()
const priorityService = useTaskPriorityService()
const typeService = useTaskTypeService()
const tagService = useTaskTagService()
const groupService = useTaskGroupService()
const userService = useUserService()
@@ -169,7 +169,7 @@ const tasks = ref<Task[]>([])
const statuses = ref<TaskStatus[]>([])
const efforts = ref<TaskEffort[]>([])
const priorities = ref<TaskPriority[]>([])
const types = ref<TaskType[]>([])
const tags = ref<TaskTag[]>([])
const groups = ref<TaskGroup[]>([])
const users = ref<UserData[]>([])
const isLoading = ref(true)
@@ -181,12 +181,15 @@ const taskDrawerOpen = ref(false)
const selectedTask = ref<Task | null>(null)
const groupFilterOptions = computed(() =>
groups.value.map(g => ({ label: g.title, value: g.id }))
groups.value.filter(g => !g.archived).map(g => ({ label: g.title, value: g.id }))
)
const filteredTasks = computed(() => {
if (!selectedGroupId.value) return tasks.value
return tasks.value.filter(t => t.group?.id === selectedGroupId.value)
let result = tasks.value.filter(t => !t.archived)
if (selectedGroupId.value) {
result = result.filter(t => t.group?.id === selectedGroupId.value)
}
return result
})
function tasksByStatus(statusId: number): Task[] {
@@ -206,7 +209,7 @@ async function loadData() {
statusService.getAll(),
effortService.getAll(),
priorityService.getAll(),
typeService.getAll(),
tagService.getAll(),
groupService.getByProject(projectId.value),
userService.getAll(),
])
@@ -215,7 +218,7 @@ async function loadData() {
statuses.value = s
efforts.value = e
priorities.value = pr
types.value = ty
tags.value = ty
groups.value = g
users.value = u
} finally {