diff --git a/frontend/pages/my-tasks.vue b/frontend/pages/my-tasks.vue index 6259ade..ce36c08 100644 --- a/frontend/pages/my-tasks.vue +++ b/frontend/pages/my-tasks.vue @@ -51,8 +51,9 @@ const selectedEffortId = ref(null) const selectedAssigneeId = ref(auth.user?.id ?? null) // Sort -type SortOption = 'default' | 'deadline' | 'scheduledStart' -const sortBy = ref('default') +const SORT_DEADLINE = 1 +const SORT_SCHEDULED = 2 +const sortById = ref(null) // View toggle const viewMode = ref<'kanban' | 'list'>('kanban') @@ -106,6 +107,11 @@ const assigneeOptions = computed(() => users.value.map(u => ({ label: u.username, value: u.id })) ) +const sortOptions = computed(() => [ + { label: t('myTasks.sortDeadline'), value: SORT_DEADLINE }, + { label: t('myTasks.sortScheduledStart'), value: SORT_SCHEDULED }, +]) + // Kanban helpers const sortedStatuses = computed(() => [...statuses.value].sort((a, b) => a.position - b.position) @@ -158,9 +164,9 @@ async function loadTasks() { if (selectedTagId.value) { baseParams['tags[]'] = `/api/task_tags/${selectedTagId.value}` } - if (sortBy.value === 'deadline') { + if (sortById.value === SORT_DEADLINE) { baseParams['order[deadline]'] = 'asc' - } else if (sortBy.value === 'scheduledStart') { + } else if (sortById.value === SORT_SCHEDULED) { baseParams['order[scheduledStart]'] = 'asc' } @@ -190,7 +196,7 @@ async function loadAll() { // Watch filters and sort to reload tasks watch( - [selectedProjectId, selectedGroupId, selectedTagId, selectedPriorityId, selectedEffortId, selectedAssigneeId, sortBy], + [selectedProjectId, selectedGroupId, selectedTagId, selectedPriorityId, selectedEffortId, selectedAssigneeId, sortById], () => { loadTasks() }, ) @@ -410,17 +416,15 @@ onMounted(async () => { text-field="text-sm" text-value="text-sm" /> -
- {{ $t('myTasks.sortBy') }} - -
+