feat(web): theme import/export, more themable colors, hideable local/ical calendars
Theme: - Export/import themes via UI as <date>_<time>.theme (JSON, readable keys, link to THEME.md). Import is partial-aware: only present params are written (server accepts partial); prompts before importing files with unknown params. - Dynamic favicon + theme-color tinted to the primary colour on load/save. - New themable colours: general hover-highlight, day hover/selected/bg, today background, plus two unified sidebar action-icon colours (inactive/active) covering bell, hide, delete and read-only icons. - All new colours are per-setting syncable; documented in THEME.md. UX: - Styled confirm dialog (#modal-confirm) replaces window.confirm() for calendar delete and account disconnect. - Birthday/local calendars and iCal subscriptions can now be hidden from the sidebar via Settings (new sidebar_hidden column + hide toggle). Backend: additive nullable columns + idempotent migrations for user_settings colours and local_calendars/ical_subscriptions.sidebar_hidden. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -78,6 +78,27 @@ const translations = {
|
||||
settings_line_color: 'Linienfarbe',
|
||||
settings_bg_color: 'Hintergrundfarbe',
|
||||
settings_surface_color: 'Seitenleisten-/Oberflächenfarbe',
|
||||
settings_hover_highlight_color: 'Hover-Highlight (Buttons, Menüs)',
|
||||
settings_icon_inactive_color: 'Sidebar-Icons inaktiv (Ruhe/aus)',
|
||||
settings_icon_active_color: 'Sidebar-Icons aktiv (Hover/an)',
|
||||
settings_day_hover_color: 'Kalendertag Hover',
|
||||
settings_day_selected_color: 'Ausgewählter Tag',
|
||||
settings_day_bg_color: 'Tag-Hintergrund',
|
||||
settings_today_bg_color: 'Heutiger Tag Hintergrund',
|
||||
theme_export: 'Theme exportieren',
|
||||
theme_import: 'Theme importieren',
|
||||
theme_imported: 'Theme importiert – zum Übernehmen speichern',
|
||||
theme_imported_saved: '{count} Parameter importiert & gespeichert',
|
||||
theme_import_invalid: 'Ungültige Theme-Datei',
|
||||
theme_docs_hint: 'Erklärung der Theme-Parameter',
|
||||
theme_unknown_title: 'Unbekannte Parameter',
|
||||
theme_unknown_params: 'Diese Theme-Datei enthält {count} Parameter, die diese Version nicht kennt ({names}). Den Rest trotzdem importieren?',
|
||||
theme_import_rest: 'Rest importieren',
|
||||
confirm_generic_title: 'Bestätigen',
|
||||
confirm: 'OK',
|
||||
confirm_delete_cal_title: 'Kalender löschen',
|
||||
confirm_remove_ical_title: 'Abo entfernen',
|
||||
confirm_ha_disconnect: 'Home Assistant Konto wirklich trennen?',
|
||||
reset: 'Reset',
|
||||
settings_text_contrast: 'Schriftkontrast',
|
||||
settings_text_contrast_desc: 'Helligkeit der Beschriftungen und Texte',
|
||||
@@ -435,6 +456,27 @@ const translations = {
|
||||
settings_line_color: 'Line color',
|
||||
settings_bg_color: 'Background color',
|
||||
settings_surface_color: 'Sidebar / surface color',
|
||||
settings_hover_highlight_color: 'Hover highlight (buttons, menus)',
|
||||
settings_icon_inactive_color: 'Sidebar icons inactive (resting/off)',
|
||||
settings_icon_active_color: 'Sidebar icons active (hover/on)',
|
||||
settings_day_hover_color: 'Calendar day hover',
|
||||
settings_day_selected_color: 'Selected day',
|
||||
settings_day_bg_color: 'Day background',
|
||||
settings_today_bg_color: 'Today background',
|
||||
theme_export: 'Export theme',
|
||||
theme_import: 'Import theme',
|
||||
theme_imported: 'Theme imported – click Save to apply',
|
||||
theme_imported_saved: '{count} parameters imported & saved',
|
||||
theme_import_invalid: 'Invalid theme file',
|
||||
theme_docs_hint: 'Explanation of theme parameters',
|
||||
theme_unknown_title: 'Unknown parameters',
|
||||
theme_unknown_params: 'This theme file contains {count} parameters this version does not know ({names}). Import the rest anyway?',
|
||||
theme_import_rest: 'Import the rest',
|
||||
confirm_generic_title: 'Confirm',
|
||||
confirm: 'OK',
|
||||
confirm_delete_cal_title: 'Delete calendar',
|
||||
confirm_remove_ical_title: 'Remove subscription',
|
||||
confirm_ha_disconnect: 'Really disconnect the Home Assistant account?',
|
||||
reset: 'Reset',
|
||||
settings_text_contrast: 'Text contrast',
|
||||
settings_text_contrast_desc: 'Brightness of labels and text',
|
||||
|
||||
Reference in New Issue
Block a user