Refactor settings system and improve context initialization
Backend: - Add type validation and coercion for settings API - Implement SettingStorage and SettingType in registry - Improve CRUD operations for settings Frontend: - Refactor Theme, Language, Sidebar, ViewMode contexts - Simplify admin components (GeneralTab, SettingsTab, UsersTab) - Add new settings endpoints to API client - Improve App initialization flow Infrastructure: - Update Dockerfile and docker-compose.yml - Add .dockerignore - Update Makefile and README 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -328,15 +328,16 @@ register_setting(SettingDefinition(
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# USER-SPECIFIC SETTINGS (Per-user, Database)
|
||||
# These settings can be different for each user
|
||||
# USER-SPECIFIC SETTINGS (Frontend localStorage)
|
||||
# These settings are managed by the frontend per-browser/user-session.
|
||||
# If you need cross-device persistence, implement a per-user DB table + API.
|
||||
# =============================================================================
|
||||
|
||||
register_setting(SettingDefinition(
|
||||
key="user_theme_mode",
|
||||
type=SettingType.STRING,
|
||||
scope=SettingScope.USER_SPECIFIC,
|
||||
storage=SettingStorage.DATABASE,
|
||||
storage=SettingStorage.LOCAL_STORAGE,
|
||||
default="system",
|
||||
description="User's preferred theme mode (light/dark/system)",
|
||||
category="user_preferences",
|
||||
@@ -348,7 +349,7 @@ register_setting(SettingDefinition(
|
||||
key="user_language",
|
||||
type=SettingType.STRING,
|
||||
scope=SettingScope.USER_SPECIFIC,
|
||||
storage=SettingStorage.DATABASE,
|
||||
storage=SettingStorage.LOCAL_STORAGE,
|
||||
default="en",
|
||||
description="User's preferred language",
|
||||
category="user_preferences",
|
||||
@@ -360,7 +361,7 @@ register_setting(SettingDefinition(
|
||||
key="user_sidebar_collapsed",
|
||||
type=SettingType.BOOLEAN,
|
||||
scope=SettingScope.USER_SPECIFIC,
|
||||
storage=SettingStorage.DATABASE,
|
||||
storage=SettingStorage.LOCAL_STORAGE,
|
||||
default=False,
|
||||
description="User's sidebar collapsed state preference",
|
||||
category="user_preferences",
|
||||
@@ -371,7 +372,7 @@ register_setting(SettingDefinition(
|
||||
key="user_view_mode",
|
||||
type=SettingType.STRING,
|
||||
scope=SettingScope.USER_SPECIFIC,
|
||||
storage=SettingStorage.DATABASE,
|
||||
storage=SettingStorage.LOCAL_STORAGE,
|
||||
default="admin",
|
||||
description="User's current view mode (admin/user)",
|
||||
category="user_preferences",
|
||||
|
||||
Reference in New Issue
Block a user