fix(settings): fix screensaver toggle (add toggle-slider, correct layout)

- Replace checkbox-label with toggle-row pattern matching other toggles
- Add missing <span class="toggle-slider"></span> inside toggle-switch
- Add data-i18n attributes to card title and hint
- Add screensaver.card_title / card_hint translations in all 3 locales

feat(demo): full demo mode implementation
- _applyDemoModeUI(): set _geminiAvailable=true + call _updateGeminiButtonState()
- api(): no-op all bring_add/bring_remove/bring_set_spec calls in demo mode
- api(): return in-memory shoppingItems for bring_list in demo mode
- loadShoppingList(): show placeholder list in demo mode, skip all Bring! calls

fix(shopping): graceful Bring! missing credentials handling
- Show friendly message with link to settings instead of raw PHP error
- Add shopping.bring_not_configured i18n key in IT/EN/DE

Bump app.js cache buster to v=20260504b
This commit is contained in:
dadaloop82
2026-05-04 16:52:22 +00:00
parent 4df06b01f4
commit 874ae90afa
5 changed files with 61 additions and 10 deletions
+6 -5
View File
@@ -1089,14 +1089,15 @@
</div>
</div>
<div class="settings-card">
<h4>🌑 Salvaschermo</h4>
<p class="settings-hint">Mostra un orologio con fatti utili dopo 5 minuti di inattività. Di default è disattivato.</p>
<h4 data-i18n="settings.screensaver.card_title">🌙 Salvaschermo</h4>
<p class="settings-hint" data-i18n="settings.screensaver.card_hint">Mostra un orologio con fatti utili dopo 5 minuti di inattività. Di default è disattivato.</p>
<div class="form-group">
<label class="checkbox-label">
<label class="toggle-row">
<span data-i18n="settings.screensaver.label">Attiva salvaschermo</span>
<span class="toggle-switch">
<input type="checkbox" id="setting-screensaver-enabled">
<span class="toggle-slider"></span>
</span>
<span data-i18n="settings.screensaver.label">Attiva salvaschermo</span>
</label>
</div>
</div>
@@ -1317,6 +1318,6 @@
</div>
</div>
<script src="assets/js/app.js?v=20260504a"></script>
<script src="assets/js/app.js?v=20260504b"></script>
</body>
</html>