|
|
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 |
|
|
|
245edf1534
|
chore: add mise.toml for tool versions and tasks, thin Makefile shim
|
2026-04-30 17:35:28 +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 |
|
|
|
4905c6f570
|
docs: add implementation plan
|
2026-04-30 16:24:39 +02:00 |
|