From bd1b2c36d160c04d00af3e54f7fa29e085f7072f Mon Sep 17 00:00:00 2001 From: lashman Date: Wed, 18 Feb 2026 10:39:08 +0200 Subject: [PATCH] add Calendar, Timesheet, and MiniTimer views --- src/components/NavRail.vue | 10 +- src/router/index.ts | 15 ++ src/views/CalendarView.vue | 364 ++++++++++++++++++++++++++++++++ src/views/MiniTimer.vue | 27 +++ src/views/TimesheetView.vue | 407 ++++++++++++++++++++++++++++++++++++ 5 files changed, 822 insertions(+), 1 deletion(-) create mode 100644 src/views/CalendarView.vue create mode 100644 src/views/MiniTimer.vue create mode 100644 src/views/TimesheetView.vue diff --git a/src/components/NavRail.vue b/src/components/NavRail.vue index 643b783..524a541 100644 --- a/src/components/NavRail.vue +++ b/src/components/NavRail.vue @@ -8,6 +8,8 @@ import { Users, FolderKanban, List, + CalendarDays, + Grid3X3, BarChart3, FileText, Settings @@ -23,6 +25,8 @@ const navItems = [ { name: 'Clients', path: '/clients', icon: Users }, { name: 'Projects', path: '/projects', icon: FolderKanban }, { name: 'Entries', path: '/entries', icon: List }, + { name: 'Calendar', path: '/calendar', icon: CalendarDays }, + { name: 'Timesheet', path: '/timesheet', icon: Grid3X3 }, { name: 'Invoices', path: '/invoices', icon: FileText }, { name: 'Reports', path: '/reports', icon: BarChart3 }, { name: 'Settings', path: '/settings', icon: Settings } @@ -65,12 +69,16 @@ function navigate(path: string) { - +
+
diff --git a/src/router/index.ts b/src/router/index.ts index 659428c..32c0773 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -28,11 +28,26 @@ const router = createRouter({ name: 'Entries', component: () => import('../views/Entries.vue') }, + { + path: '/calendar', + name: 'Calendar', + component: () => import('../views/CalendarView.vue') + }, + { + path: '/timesheet', + name: 'Timesheet', + component: () => import('../views/TimesheetView.vue') + }, { path: '/reports', name: 'Reports', component: () => import('../views/Reports.vue') }, + { + path: '/mini-timer', + name: 'MiniTimer', + component: () => import('../views/MiniTimer.vue') + }, { path: '/invoices', name: 'Invoices', diff --git a/src/views/CalendarView.vue b/src/views/CalendarView.vue new file mode 100644 index 0000000..4d01e24 --- /dev/null +++ b/src/views/CalendarView.vue @@ -0,0 +1,364 @@ + + + diff --git a/src/views/MiniTimer.vue b/src/views/MiniTimer.vue new file mode 100644 index 0000000..a51df3c --- /dev/null +++ b/src/views/MiniTimer.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/views/TimesheetView.vue b/src/views/TimesheetView.vue new file mode 100644 index 0000000..5dbf8fa --- /dev/null +++ b/src/views/TimesheetView.vue @@ -0,0 +1,407 @@ + + +