feat: add Settings tab with provider management and language preferences
CI / Test (Python 3.11) (push) Has been cancelled
CI / Test (Python 3.12) (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Type Check (push) Has been cancelled
CI / Summary (push) Has been cancelled

- Implemented AppSettings model and table using SQLModel.
- Created Settings router with endpoints for preferences and provider toggling.
- Added Settings tab to the UI with real-time health status of providers.
- Integrated language and provider filtering into anime and series search logic.
- Updated templates to respect user-defined settings.
This commit is contained in:
root
2026-03-26 16:12:29 +00:00
parent 3b405f2a42
commit 0c03f4f4a6
15 changed files with 383 additions and 25 deletions
+2 -2
View File
@@ -26,7 +26,7 @@ function switchTab(tabName) {
// Handle URL hash on page load
if (window.location.hash) {
const hash = window.location.hash.substring(1);
const validTabs = ['home', 'watchlist', 'anime', 'series', 'providers', 'downloads'];
const validTabs = ['home', 'watchlist', 'anime', 'series', 'providers', 'downloads', 'settings'];
if (validTabs.includes(hash)) {
// Short delay to ensure Alpine is ready
setTimeout(() => switchTab(hash), 100);
@@ -37,7 +37,7 @@ if (window.location.hash) {
window.addEventListener('hashchange', function() {
if (window.location.hash) {
const hash = window.location.hash.substring(1);
const validTabs = ['home', 'watchlist', 'anime', 'series', 'providers', 'downloads'];
const validTabs = ['home', 'watchlist', 'anime', 'series', 'providers', 'downloads', 'settings'];
if (validTabs.includes(hash)) {
switchTab(hash);
}