diff --git a/frontend/src/components/project/ProjectWrapper.vue b/frontend/src/components/project/ProjectWrapper.vue index 255124b19..b4d178a92 100644 --- a/frontend/src/components/project/ProjectWrapper.vue +++ b/frontend/src/components/project/ProjectWrapper.vue @@ -6,47 +6,19 @@

{{ getProjectTitle(currentProject) }}

- +
- {{ $t('project.list.title') }} - - - {{ $t('project.gantt.title') }} - - - {{ $t('project.table.title') }} - - - {{ $t('project.kanban.title') }} + {{ getViewTitle(v) }}
- +
- + \ No newline at end of file diff --git a/frontend/src/views/project/helpers/useGanttFilters.ts b/frontend/src/views/project/helpers/useGanttFilters.ts index dfe8ccd8b..caf4df18d 100644 --- a/frontend/src/views/project/helpers/useGanttFilters.ts +++ b/frontend/src/views/project/helpers/useGanttFilters.ts @@ -12,6 +12,7 @@ import type {TaskFilterParams} from '@/services/taskCollection' import type {DateISO} from '@/types/DateISO' import type {DateKebab} from '@/types/DateKebab' +import type {IProjectView} from '@/modelTypes/IProjectView' // convenient internal filter object export interface GanttFilters { @@ -88,7 +89,7 @@ export type UseGanttFiltersReturn = ReturnType> & ReturnType> -export function useGanttFilters(route: Ref): UseGanttFiltersReturn { +export function useGanttFilters(route: Ref, view: IProjectView): UseGanttFiltersReturn { const { filters, hasDefaultFilters, @@ -108,7 +109,7 @@ export function useGanttFilters(route: Ref): UseGanttFi isLoading, addTask, updateTask, - } = useGanttTaskList(filters, ganttFiltersToApiParams) + } = useGanttTaskList(filters, ganttFiltersToApiParams, view) return { filters, diff --git a/frontend/src/views/project/helpers/useGanttTaskList.ts b/frontend/src/views/project/helpers/useGanttTaskList.ts index f2a76c8d6..8349b3c7c 100644 --- a/frontend/src/views/project/helpers/useGanttTaskList.ts +++ b/frontend/src/views/project/helpers/useGanttTaskList.ts @@ -1,4 +1,4 @@ -import {computed, ref, shallowReactive, watch, type Ref} from 'vue' +import {computed, ref, type Ref, shallowReactive, watch} from 'vue' import {klona} from 'klona/lite' import type {Filters} from '@/composables/useRouteFilters' @@ -10,16 +10,15 @@ import TaskService from '@/services/task' import TaskModel from '@/models/task' import {error, success} from '@/message' import {useAuthStore} from '@/stores/auth' +import type {IProjectView} from '@/modelTypes/IProjectView' // FIXME: unify with general `useTaskList` export function useGanttTaskList( filters: Ref, filterToApiParams: (filters: F) => TaskFilterParams, - options: { - loadAll?: boolean, - } = { - loadAll: true, - }) { + view: IProjectView, + loadAll: boolean = true, +) { const taskCollectionService = shallowReactive(new TaskCollectionService()) const taskService = shallowReactive(new TaskService()) const authStore = useAuthStore() @@ -29,13 +28,13 @@ export function useGanttTaskList( const tasks = ref>(new Map()) async function fetchTasks(params: TaskFilterParams, page = 1): Promise { - - if(params.filter_timezone === '') { + + if (params.filter_timezone === '') { params.filter_timezone = authStore.settings.timezone } const tasks = await taskCollectionService.getAll({projectId: filters.value.projectId}, params, page) as ITask[] - if (options.loadAll && page < taskCollectionService.totalPages) { + if (loadAll && page < taskCollectionService.totalPages) { const nextTasks = await fetchTasks(params, page + 1) return tasks.concat(nextTasks) }