- New utility module `germanDecimal.js` with parseGermanDecimal(),
sanitizeDecimalInput(), and formatGermanDecimal()
- New DecimalInput component replacing type="number" inputs
- Enables users to enter comma as decimal separator (12,50)
- Applied to: hourlyWage, weeklyHours (ContractForm)
and billingRate, travelCostRate, travelCostPerKm,
mealAllowanceRate, minimumHours, and percent surcharges (FacilityForm)
- Display formatting updated in FacilityDetailPanel to show comma decimals
Both comma and dot are accepted as decimal separators. Backend
decimal types remain unchanged (already decimal?).
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- omsorgapp: drop Electron, run as a plain Vite/React browser app; refresh
token moves to an HttpOnly cookie (omsorgCore), CORS added for the new
browser origin, document download/preview switched to Blob-based browser
APIs.
- Add Dockerfiles for omsorgCore, omsorgapp, and omsorgWeb, a docker-compose.yml
wiring Postgres/MySQL/all three apps together, and a Gitea Actions workflow
that builds and pushes images to the repo's container registry on push to
main and on version tags.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>