Skip to content

v1.5.0 — Dashboard views, accessibility overhaul, backend hardening

Latest

Choose a tag to compare

@KrapfalAT KrapfalAT released this 06 Jul 18:24

Features

  • Dashboard collection view can now be switched between poster, thumbnail, and list layouts (persisted per device).
  • Wine entries now track who created and last edited them, shown in the detail view.

Accessibility & consistency

  • Added a shared Modal component (drawer/center/sheet variants) used by all 13 overlay dialogs, adding consistent Escape-to-close, focus trap/return, and scroll-lock behavior that was previously missing everywhere.
  • Wine cards and zoomable images are now keyboard-operable.
  • Added missing aria-labels and label/for associations across several forms; fixed a hard-coded (non-localized) label list in the library view.
  • Introduced shared .btn-primary/.btn-secondary and a --danger CSS variable, replacing duplicated per-component styling.
  • <html lang> now follows the in-app language switch; the PWA theme-color now matches the actual brand color.

Backend hardening

  • Fixed the login rate limiter, which was keyed off the reverse proxy's IP instead of the real client IP and effectively shared across all users.
  • GET /wines/{id} now respects the same visibility rule as the collection list, instead of allowing any hidden/out-of-stock entry to be read directly by ID.
  • HEIC photo uploads (common from iPhone cameras) are now properly decoded and re-encoded as JPEG instead of being mislabeled, which previously made them fail to render.
  • Search-as-you-type and barcode lookup results now include all wine fields (by-the-glass, location, audit info) instead of a hand-built subset.
  • Wine type/body/acidity are now validated server-side against the same set of values the UI offers.
  • Added an SSRF guard on remote image fetching and stricter validation on bulk import.
  • The backend container now runs as a non-root user and has a proper health check.
  • Expanded test coverage (library search, lookup, uploads incl. a real HEIC conversion test, import/export) and fixed several pre-existing test failures.