refactor timeentries queries and mutations, improve activitygraph, add dashboard reporting table

This commit is contained in:
Gregor Vostrak
2026-01-14 17:01:45 +01:00
parent 47c2d8e6de
commit 6f68bbbd48
31 changed files with 723 additions and 437 deletions

View File

@@ -1,6 +1,6 @@
import type { QueryClient } from '@tanstack/vue-query';
import { api } from '@/packages/api/src';
import { getCurrentOrganizationId } from '@/utils/useUser';
import { getCurrentOrganizationId, getCurrentMembershipId } from '@/utils/useUser';
import { canViewClients, canViewMembers } from '@/utils/permissions';
/**
@@ -21,6 +21,7 @@ const routePrefetchers: Record<string, (queryClient: QueryClient) => void> = {
prefetchTasks(queryClient);
prefetchTags(queryClient);
prefetchClients(queryClient);
prefetchTimeEntries(queryClient);
},
'/calendar': (queryClient) => {
@@ -221,6 +222,28 @@ function prefetchReports(queryClient: QueryClient) {
});
}
function prefetchTimeEntries(queryClient: QueryClient) {
const organizationId = getCurrentOrganizationId();
const memberId = getCurrentMembershipId();
if (!organizationId) return;
queryClient.prefetchInfiniteQuery({
queryKey: ['timeEntries', 'infinite', { organizationId, memberId }],
queryFn: async () => {
const response = await api.getTimeEntries({
params: { organization: organizationId },
queries: {
only_full_dates: 'true',
member_id: memberId,
},
});
return response;
},
initialPageParam: undefined,
staleTime: 30000,
});
}
function prefetchProjectMembers(queryClient: QueryClient, projectId: string) {
const organizationId = getCurrentOrganizationId();
if (!organizationId || !canViewMembers()) return;