diff --git a/.gitignore b/.gitignore index da1f875..25215dc 100644 --- a/.gitignore +++ b/.gitignore @@ -23,5 +23,6 @@ __pycache__/ .DS_Store Thumbs.db -# Local config (uncomment if you want to ignore local changes) -# config.json +# Local config — contains the admin password hash and session secret. +# Fresh installs start from config.json.example (see CONFIG.md). +config.json diff --git a/CLAUDE.md b/CLAUDE.md index 5806c6c..ee5587f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -48,11 +48,15 @@ Access at http://localhost:{web_port} (configured in config.json) - **admin/** - Admin panel (login + tabbed settings UI) - Theme management: rename display names, upload per-direction background PNGs, create new themes - Display names stored in `config.json` `theme_names` map (folder name -> display name) + - Receivers tab: live per-receiver health (via `GET /api/admin/receiver-status` and `POST /api/admin/test-receivers`), a select → SAVE & APPLY → auto-test flow, selectable scan results, and a per-interface scan selector + - Version (from `server.py` `VERSION`) is surfaced via public `GET /api/config` and shown in the admin header - **pixel-editor.js** - In-app Canvas2D pixel editor (Sprites tab "EDIT" button) - - Edits sprites at native 500x333; tools: pencil, eraser, color picker, fill bucket, pan - - Zoom/pan, undo/redo (snapshot-per-stroke), grid overlay, retro palette + native color input + - Edits sprites at native 500x333; tools: pencil, eraser, color picker, fill bucket, pan, line, rectangle, ellipse (outline/filled), rectangular select + - Select & move: marquee + floating layer, drag/arrow-nudge, Ctrl+C/X/V clipboard, Delete, Enter/Esc commit + - Zoom/pan, undo/redo (snapshot-per-stroke), grid overlay, brush size & opacity, retro + custom (localStorage) + recent palettes, adjustable reference-image overlay - Exports a 500x333 PNG via `srcCanvas.toBlob` and POSTs to the existing `/api/admin/sprites/{type}` upload endpoint (no new server route) - - Keyboard: B/E/I/F tools, Space=pan, +/-/0 zoom, Ctrl+Z/Y undo/redo, G grid, Esc close + - Keyboard: B/E/I/F/L/R/O/M tools, Space=pan, +/-/0 zoom, Ctrl+Z/Y undo/redo, Ctrl+C/X/V, arrows nudge, G grid, Esc close + - **Asset cache-busting:** `admin.html` references `admin.css`/`admin.js`/`pixel-editor.js` with a `?v=YYYYMMDD[x]` query — bump it whenever those files change so browsers reload them - **setup/** - First-run setup wizard (multi-step configuration) diff --git a/README.md b/README.md index 8230430..97720a1 100644 --- a/README.md +++ b/README.md @@ -7,14 +7,16 @@ A retro SNES-style side-view flight tracker that displays ADS-B aircraft data wi ## Features - Real-time aircraft tracking via ADS-B receivers -- Custom pixel art sprites for 6 aircraft types (small prop, regional jet, narrow body, wide body, heavy, helicopter) +- Custom pixel art sprites for 9 aircraft types (small prop, regional jet, narrow body, wide body, heavy, helicopter, balloon, glider, UAV) - Animated sun and moon with accurate astronomical positions - Dynamic sky colors based on time of day - Weather visualization with cloud sprites - Directional view (N/E/S/W) with themed backgrounds -- Auto-discovery of ADS-B receivers on your network +- Auto-discovery of ADS-B receivers on your network, with per-interface scanning - Canvas-based 10 FPS retro rendering - Admin panel with password authentication +- **In-app pixel editor** — draw and edit sprites in the browser (pencil, shapes, fill, select & move, reference overlay, custom palettes) +- **Receiver health dashboard** — live per-receiver status (receiving / no data / unreachable), connection testing, and select → save → apply flow - First-run setup wizard ## Quick Start diff --git a/admin/admin.css b/admin/admin.css index 7e02dc8..08ca465 100644 --- a/admin/admin.css +++ b/admin/admin.css @@ -169,6 +169,15 @@ textarea { margin: 0; } +.admin-version { + font-family: 'Courier New', monospace; + font-size: 11px; + color: #54fc54; + text-shadow: none; + margin-left: 6px; + vertical-align: middle; +} + .header-actions { display: flex; gap: 8px; diff --git a/admin/admin.html b/admin/admin.html index b867ea6..73646a8 100644 --- a/admin/admin.html +++ b/admin/admin.html @@ -7,7 +7,7 @@ - +
@@ -27,7 +27,7 @@