Commit Graph

29 Commits

Author SHA1 Message Date
RicoUHD
4b0eca0d38 style(flask): use dynamic url_for query parameters and optimize context processor imports
- Refactored all cache-busting v arguments in base.html to pass directly through the Flask url_for Jinja function (v=app_version) rather than string concatenation.
- Moved the os import in context_processors.py to the top level scope to avoid redundant runtime overhead on every request.
2026-05-25 17:52:19 +02:00
RicoUHD
a33d79dd45 fix(assets): implement deterministic build lifecycle and dynamic cache busting
- Added dynamic ?v={{ app_version }} cache-busting query strings to all core stylesheet and script references in base.html.
- Created and registered the inject_app_version context processor in app/context_processors.py and app/__init__.py to inject the APP_VERSION environment variable into all templates dynamically.
- Refactored copy-assets.js to detect production context (NODE_ENV=production or DOCKER_BUILD=true) and fail loudly (process.exit(1)) if assets are missing, avoiding silent failures in the build pipeline.
- Set DOCKER_BUILD=true during the Dockerfile asset compilation step to enforce deterministic production build verification.
2026-05-25 17:33:29 +02:00
RicoUHD
123a967190 fix(pwa): improve Service Worker update strategy and cache management
- Set updateViaCache to 'none' in SW registration to bypass HTTP cache for the worker script.
- Implemented periodic update checks every hour and update listeners.
- Integrated immediate activation (self.skipWaiting) and adoption (self.clients.claim) in sw.js to resolve cache lock-in instantly.
- Optimized stale-while-revalidate strategy in sw.js to use event.waitUntil to guarantee background fetches complete.
- Removed duplicate css/main.css stylesheet load in base.html template.
- Added app/static/js/vendor/ and app/static/css/vendor/ to .dockerignore to keep Docker daemon build contexts clean.
2026-05-25 14:36:33 +02:00
RicoUHD
a378d76683 fix: resolve White Screen of Death (WSOD) by serving external assets from clean vendor directories
- Relocated Alpine.js, HTMX, Flowbite, Bowser, Inapp-spy, and Animate.css assets out of node_modules into safe vendor folders during build.
- Created cross-platform Node.js copy-assets.js script to copy required front-end packages.
- Updated base.html template to serve assets from secure vendor folders instead of node_modules and fixed Alpine plugin loading order.
- Modified .gitignore to ignore portable local development tools and compiled vendor assets.
2026-05-25 14:14:59 +02:00
Matthieu B
b7916658a3 refactor: enhance modal accessibility and styling, add safe area insets for PWA support closes #871 #873 2025-10-23 19:18:28 +02:00
Matthieu B
187b8758c1 Refactor wizard templates and JavaScript controller
- Updated title block in frame.html for clarity.
- Improved localization for the "Next" button in steps.html.
- Refactored the WizardController JavaScript for better readability and organization.
- Added detailed comments to the wizard architecture for future reference.
- Enhanced button visibility and state management based on interaction requirements.
- Implemented swipe gesture handling for mobile navigation.
- Updated subproject commit to indicate a dirty state.
2025-10-07 14:01:16 +02:00
Matthieu B
d1ed08d9c2 Add .djlintrc configuration file for Jinja linting 2025-10-07 11:04:58 +02:00
Matthieu B
65fd09e622 feat: add in-app browser escape functionality with Bowser and InAppSpy support 2025-10-06 11:23:45 +02:00
Matthieu B
6f28f7dbb0 feat: UI speedup 2025-09-09 22:12:17 +02:00
Matthieu B
c7bad49599 fix: Add fallback clipboard support for HTTP contexts
- Add copyToClipboard() utility function in base.html with fallback support
- Replace direct navigator.clipboard.writeText() calls with new utility
- Support both HTTPS (modern clipboard API) and HTTP contexts (document.execCommand fallback)
- Add manual copy alert as last resort for complete compatibility
- Update all clipboard usage locations (invite modal, admin invites, invite cards)

Fixes #711

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 16:37:21 +02:00
Matthieu B
1634a5b928 Added PWA 2025-07-13 14:54:27 +02:00
Matthieu B
9ac933ac26 Add wizard step management and enhance asset building 2025-06-25 23:17:46 +02:00
fireph
3c3a342111 cleaner way to do it with dark class 2025-06-04 06:03:32 -07:00
i18n-bot
1f0accd2f4 fix and close #555 2025-06-02 17:26:28 +01:00
Matthieu B
d326984fc7 added migrations 2025-05-21 17:15:36 +01:00
nimbleghost
ab26e6742f Add title and opengraph meta tags
This adds page titles, as well as link preview titles and descriptions (e.g. iMessage, Signal, WhatsApp previews)

Cleaned up the user injection / template tag naming since it was missing in some places and duplicated in others
2023-05-07 15:10:20 +02:00
Matthieu B
78aeaf2a63 Experimental edit user features 2023-02-26 17:59:33 +00:00
Matthieu B
4db5c9d547 Dark mode switch 2023-02-23 12:02:43 +00:00
Matthieu B
62276721a1 stopped using cdn 2023-02-21 16:42:29 +00:00
Matthieu B
2cd53ef8ff Custom HTML
- Added Interactive Wizard
- Custom HTML
2023-02-15 14:16:19 +00:00
Matthieu B
c812ad7ae9 Remade WIzard 2023-02-15 13:42:24 +00:00
Matthieu B
6f4ca8f64e Preparation for new wizard 2023-02-14 14:42:30 +00:00
Matthieu B
ec748d374e Huge improvement
Uses Plex Oauth
2023-02-13 20:26:55 +00:00
Matthieu B
f249613e60 Redesigned Admin Panel 2023-02-12 17:57:34 +00:00
Matthieu B
645f63f001 Added Custom Banner Name 2023-01-14 14:22:33 +01:00
Matthieu B
a824b4cde8 Fixed Favicon 2022-10-09 16:03:53 +01:00
Matthieu B
b661e1ffb1 Base for translations 2022-09-18 14:04:00 +01:00
Matthieu B
c9eb714864 Fixed Dark Mode 2022-09-13 13:54:33 +01:00
Matthieu B
28d4f438c9 Created git 2022-09-12 17:19:47 +01:00