feat(time-tracking) : add calendar page, timer sidebar, and all UI components

- SidebarTimer widget with play/stop button
- TimeEntryBlock with drag-to-move and resize
- TimeEntryDrawer for create/edit entries
- TimeEntryContextMenu for copy/paste/delete
- TimeTrackingCalendar grid with week/day view
- Time tracking page with filters and navigation
- Sidebar link and timer integration in layout
- TaskCard play button connected to timer store

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-10 22:22:48 +01:00
parent cf021d6136
commit 74116506db
9 changed files with 885 additions and 3 deletions

View File

@@ -63,6 +63,12 @@
label="Clients"
:collapsed="ui.sidebarCollapsed"
/>
<SidebarLink
to="/time-tracking"
icon="mdi:clock-outline"
label="Suivi de temps"
:collapsed="ui.sidebarCollapsed"
/>
<SidebarLink
to="/admin"
icon="mdi:cog-outline"
@@ -71,6 +77,10 @@
/>
</nav>
<div class="px-4 py-3 border-t border-secondary-500">
<SidebarTimer :collapsed="ui.sidebarCollapsed" />
</div>
<div class="flex flex-col gap-2 items-center p-4">
<p v-if="!ui.sidebarCollapsed" class="font-bold">v {{ version }}</p>
<button
@@ -109,6 +119,12 @@ const currentProjectId = computed(() => {
return match ? match[1] : null
})
const timerStore = useTimerStore()
onMounted(() => {
timerStore.fetchActive()
})
const handleLogout = async () => {
await auth.logout()
await navigateTo('/login')