Commit Graph
28 Commits
Author SHA1 Message Date
simon.franken 685a311001 Add break time feature to time entries
- Add breakMinutes field to TimeEntry model and database migration
- Users can now add break duration (minutes) to time entries
- Break time is subtracted from total tracked duration
- Validation ensures break time cannot exceed total entry duration
- Statistics and client target balance calculations account for breaks
- Frontend UI includes break time input in TimeEntryFormModal
- Duration displays show break time deduction (e.g., '7h (−1h break)')
- Both project/client statistics and weekly balance calculations updated
2026-02-23 14:39:30 +01:00
simon.franken 078dc8c304 Add Prisma session store for persistent sessions 2026-02-23 11:39:09 +01:00
simon.franken 59eda58ee6 update agents.md 2026-02-23 10:59:17 +01:00
simon.franken 3fa13e1428 Use icon.svg in Navbar and LoginPage instead of Clock icon 2026-02-23 10:55:33 +01:00
simon.franken 2e629d8017 Merge branch 'main' into feature/adjust-timer-start-time 2026-02-23 10:53:54 +01:00
simon.franken 6e0567d021 icon update 2026-02-23 10:53:39 +01:00
simon.franken 3ab39643dd Disable Stop button when no project is selected 2026-02-23 10:47:07 +01:00
simon.franken e01e5e59df Remove cancel confirmation — discard timer immediately on click 2026-02-23 10:44:34 +01:00
simon.franken 06596dcee9 Add cancel (discard) timer feature
Allows users to discard a running timer without creating a time entry.
A trash icon in the timer widget reveals a confirmation step ('Discard / Keep')
to prevent accidental data loss. Backend exposes a new DELETE /api/timer
endpoint that simply deletes the ongoingTimer row.
2026-02-23 10:41:50 +01:00
simon.franken 7358fa6256 Add ability to manually adjust the running timer's start time
Allows users to retroactively correct the start time of an ongoing timer
without stopping it. A pencil icon in the timer widget opens an inline
time input pre-filled with the current start time; confirming sends the
new time to the backend which validates it is in the past before persisting.
2026-02-23 10:32:38 +01:00
simon.franken c99bdf56e6 Merge branch 'ios-rebuild' into feature/ios-time-entries-rework 2026-02-23 10:12:12 +01:00
simon.franken 15abfe0511 Merge branch 'main' into ios-rebuild 2026-02-23 10:12:01 +01:00
simon.franken c9f5bbb25a adds agents md 2026-02-23 10:11:51 +01:00
simon.franken 544b86c948 fix(ios): replace 2001-page TabView with 3-page recycling carousel
Eliminates the eager instantiation of 2001 view bodies by keeping only
three pages (previous, current, next) alive at all times. After each
swipe settles, dayOffset is shifted and tabSelection is silently reset
to the middle page, preserving the native paging animation.
2026-02-23 10:09:51 +01:00
simon.franken b971569983 feat(ios): replace week strip with native DatePicker and TabView paging 2026-02-23 10:02:24 +01:00
simon.franken 408f49ba10 update 2026-02-18 16:23:44 +01:00
simon.franken 0f6e55302a update 2026-02-18 16:08:42 +01:00
simon.franken f5c0a0b2f7 improvements 2026-02-18 15:26:36 +01:00
simon.franken 4cce62934e adds targets 2026-02-18 14:27:44 +01:00
simon.franken a352318e8a adapts time format 2026-02-18 12:43:17 +01:00
simon.franken f77e94f7b7 update time visualization 2026-02-18 10:53:15 +01:00
simon.franken 6a6a3ba00b refactoring 2026-02-18 10:26:15 +01:00
simon.franken fc06dac40e update 2026-02-16 17:12:47 +01:00
simon.franken a9228d19c8 fix 2026-02-16 16:09:07 +01:00
simon.franken d200254783 fix infinite redirect 2026-02-16 15:41:59 +01:00
simon.franken d3b8df3deb fix 2026-02-16 11:01:07 +01:00
simon.franken 7d678c1c4d creates application 2026-02-16 10:15:27 +01:00
simon.franken 791c661395 init 2026-02-16 09:37:06 +01:00