15 Commits

Author SHA1 Message Date
elpatron 0e9dbf1735 Fix PWA install hint dismiss after cached HTML/JS mismatch.
Restore button id, bind dismiss at document level, force hide inline, and fetch pwa.js/style.css network-first.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-20 15:37:30 +02:00
elpatron 6ba4cf447f Make PWA install hint dismiss reliable across reloads.
Use delegated clicks, explicit hide state, and init before service worker registration.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-20 11:34:46 +02:00
elpatron 562a229fa0 Add PWA manifest, service worker, and install hint.
Enables home-screen installation with per-viewer scope and platform-specific guidance in EN/DE.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-20 11:08:32 +02:00
elpatron 6df10e5498 Add favicon matching the crossed-swords brand icon.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-20 11:06:38 +02:00
elpatron dc42727f34 Move viewer export/import into a dedicated Backup tab.
Keeps game save import in the sidebar while grouping viewer database
backup actions with their explanation in the main navigation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-20 10:03:04 +02:00
elpatron 7656578b72 Add viewer database import and clarify backup actions.
Pairs export with validated .db restore, documents the difference from game
save imports, and renames the JSON upload button to Import game backup.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 23:06:59 +02:00
elpatron 64820cefc1 Add relative/skill goals, import diffs, and history tooling.
Extends the goals system and viewer UX so players can track item and skill
targets with groups, ETAs, global search, snapshot management, and DB export.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 22:59:01 +02:00
elpatron f5b5541555 Add grouped inventory goals with import completion notifications.
Players can create named goal groups, set absolute item targets from inventory, track progress in a new Goals tab, and get banners when uploads complete goals or entire groups.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 22:25:42 +02:00
elpatron 810ad67ab6 Add Plausible analytics with JSON Upload custom event.
Load tagged-events from plausible.elpatron.me on all pages, allow it in CSP, and track successful save uploads with import status.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 16:58:58 +02:00
elpatron e79fe34643 Fix viewer API routing under Content-Security-Policy.
Pass the viewer id via a body data attribute instead of a blocked inline script so personal links still load saved data after restart.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 16:33:59 +02:00
elpatron fdeaf04280 Add site footer and fix proxy-aware viewer URLs.
Build public links from host_url netloc behind reverse proxies so generated viewer URLs do not include the internal upstream port.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 16:27:20 +02:00
elpatron 58b9e0bb0a Harden app for production behind nginx Proxy Manager.
Remove path-based import, add rate limits and upload caps, security headers, proxy trust, bundled Chart.js, non-root Docker, and NPM deployment docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 16:23:27 +02:00
elpatron f51f166fa1 Add Docker deployment and per-player secret-link viewers.
Each player gets an isolated SQLite viewer via a unique URL without login, with landing page warnings to save the link and compose-based hosting for sharing with others.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 16:06:13 +02:00
elpatron fbc2deec45 Add i18n, save validation, and tolerant import handling.
Prepare the UI for English (default/fallback) and German with auto or manual locale selection, and report import issues with client-translated warnings instead of failing on minor save format changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 15:59:57 +02:00
elpatron 4b8b921e02 Add Idle Fantasy save viewer with local Flask dashboard and SQLite history tracking.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 15:41:58 +02:00