fix: resolve infinite loading on Settings tab and synchronize database
- Manually triggered database table creation for AppSettingsTable. - Refactored HTMX triggers in index.html to prevent redundant loading. - Improved provider toggle mechanism with explicit refresh-settings event. - Simplified router responses for better HTMX integration.
This commit is contained in:
@@ -67,11 +67,7 @@ async def update_settings(
|
|||||||
|
|
||||||
response.headers["HX-Trigger"] = json.dumps({"show-toast": {"message": "Paramètres enregistrés", "type": "success"}})
|
response.headers["HX-Trigger"] = json.dumps({"show-toast": {"message": "Paramètres enregistrés", "type": "success"}})
|
||||||
|
|
||||||
return AppSettings(
|
return settings_obj
|
||||||
default_lang=settings_obj.default_lang,
|
|
||||||
theme=settings_obj.theme,
|
|
||||||
disabled_providers=settings_obj.disabled_providers
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@router.get("/providers/availability")
|
@router.get("/providers/availability")
|
||||||
|
|||||||
@@ -58,9 +58,8 @@
|
|||||||
|
|
||||||
<button class="btn {% if provider.enabled %}btn-secondary{% else %}btn-accent{% endif %} btn-sm"
|
<button class="btn {% if provider.enabled %}btn-secondary{% else %}btn-accent{% endif %} btn-sm"
|
||||||
hx-post="/api/settings/providers/{{ provider.id }}/toggle"
|
hx-post="/api/settings/providers/{{ provider.id }}/toggle"
|
||||||
hx-target="closest .settings-container"
|
hx-swap="none"
|
||||||
hx-get="/api/settings/ui"
|
hx-on::after-request="htmx.trigger('#tab-settings > div', 'refresh-settings')"
|
||||||
hx-trigger="click delay:200ms"
|
|
||||||
style="min-width: 100px;">
|
style="min-width: 100px;">
|
||||||
{% if provider.enabled %}Désactiver{% else %}Activer{% endif %}
|
{% if provider.enabled %}Désactiver{% else %}Activer{% endif %}
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -143,7 +143,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="tab-settings" class="tab-content" x-show="activeTab === 'settings'">
|
<div id="tab-settings" class="tab-content" x-show="activeTab === 'settings'">
|
||||||
<div hx-get="/api/settings/ui" hx-trigger="load, set-tab[detail.tab === 'settings'] from:window" hx-swap="innerHTML">
|
<div hx-get="/api/settings/ui" hx-trigger="set-tab[detail.tab === 'settings'] from:window, refresh-settings" hx-swap="innerHTML">
|
||||||
<div class="loading-placeholder">
|
<div class="loading-placeholder">
|
||||||
<div class="spinner"></div> Chargement des paramètres...
|
<div class="spinner"></div> Chargement des paramètres...
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user