6fceda46b5
fix: allow closing current week when future workdays are not yet closed
...
CloseWeek was requiring every workday in the ISO week to have a
closed_days record, including days in the future. Now only workdays
up to and including today are checked; future workdays are skipped.
Adds TestCloseWeekMidWeek regression test.
2026-04-30 17:54:38 +02:00
9d6233b116
feat: add manual interval creation and inline entry editing
...
- Service: CreateInterval() validates same-day, end>start, day not closed
- Service: Update() now rejects edits on closed-day entries (ErrDayAlreadyClosed)
- Handler: POST /api/entries creates a completed interval with explicit times
- API client: entries.createInterval(startMs, endMs, note)
- Utils: parseTimeInput / toTimeInput helpers for HH:MM <-> unix ms
- Today page: '+ Add interval' form (time pickers + optional note)
- Today page: pencil button on each entry opens inline edit row (start/end/note)
- Tests: TestCreateInterval, TestCreateIntervalEndBeforeStart,
TestCreateIntervalCrossesMidnight, TestUpdateRejectsClosedDay
2026-04-30 17:45:02 +02:00
2055a46dee
feat(m6): CSV export, Makefile, README, single-binary build
2026-04-30 16:48:44 +02:00
4a328ad6cc
feat(m5): PWA service worker, offline Dexie store, outbox, sync endpoints
2026-04-30 16:47:27 +02:00
df04d9d7a9
feat(m4): SvelteKit frontend - today, week, history, settings views
2026-04-30 16:45:00 +02:00
d0ef0387f2
feat(m3): week close, overtime/undertime delta, frozen settings snapshot
2026-04-30 16:39:42 +02:00
4a0e0c8318
feat(m2): settings history, close day, holiday/vacation/sick marking
2026-04-30 16:37:56 +02:00
3aa068efd2
feat(m1): backend scaffold - entries CRUD, start/stop, auth, migrations
2026-04-30 16:35:06 +02:00