Go to file
aaverbitskiy 8e6c19e9a4 feat: surface photos in the map balloon + fullscreen lightbox (v0.2.7)
Photos live on disk as photos/<board_key>/<file>.{jpg,jpeg,png} (a read-only
volume). A cached directory index (60s TTL) attaches a `photos` URL list to each
surface in /api/map; a /photos StaticFiles mount serves the files. Photos are
public — shown to anonymous visitors and managers alike.

The balloon renders a gallery (main image + thumbnail strip + "1 / N" counter);
clicking a thumbnail swaps the main image, and clicking the main image / "+N"
opens a fullscreen lightbox over the map (prev/next, Esc, backdrop close).
Surfaces without photos render exactly as before.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-15 08:00:10 +00:00
frontend feat: surface photos in the map balloon + fullscreen lightbox (v0.2.7) 2026-08-15 08:00:10 +00:00
static auth: Keycloak OIDC — anonymous (truncated) vs manager (full) tiers 2026-08-14 11:05:47 +00:00
.gitignore feat: surface photos in the map balloon + fullscreen lightbox (v0.2.7) 2026-08-15 08:00:10 +00:00
auth.py auth: Keycloak OIDC — anonymous (truncated) vs manager (full) tiers 2026-08-14 11:05:47 +00:00
docker-compose.yml feat: surface photos in the map balloon + fullscreen lightbox (v0.2.7) 2026-08-15 08:00:10 +00:00
Dockerfile auth: Keycloak OIDC — anonymous (truncated) vs manager (full) tiers 2026-08-14 11:05:47 +00:00
main.py feat: surface photos in the map balloon + fullscreen lightbox (v0.2.7) 2026-08-15 08:00:10 +00:00
requirements.txt auth: Keycloak OIDC — anonymous (truncated) vs manager (full) tiers 2026-08-14 11:05:47 +00:00