From c4657134180412a29581fe79af1b87360a89f4eb Mon Sep 17 00:00:00 2001 From: Ulas Kalayci Date: Wed, 6 May 2026 07:22:39 +0200 Subject: [PATCH 1/2] refactor(settings): prioritize CalDAV/CardDAV in sync tab, fix heading hierarchy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Open standards (CalDAV, CardDAV, ICS) now appear first in the Sync tab under a dedicated "CalDAV & CardDAV" section, making self-hosted sync options prominent. Cloud services (Google, Apple) move to a secondary "Cloud-Dienste" section. Fixes raw

heading in CalDAV card — now uses consistent settings-card__title like all other cards. Co-Authored-By: Claude Sonnet 4.6 --- public/locales/de.json | 2 + public/pages/settings.js | 158 +++++++++++++++++++-------------------- 2 files changed, 80 insertions(+), 80 deletions(-) diff --git a/public/locales/de.json b/public/locales/de.json index 358976a..36b7830 100644 --- a/public/locales/de.json +++ b/public/locales/de.json @@ -773,6 +773,8 @@ "tabSyncCalendar": "Kalender", "tabSyncContacts": "Kontakte", "sectionContactSync": "Kontakt-Synchronisation", + "sectionOpenStandards": "CalDAV & CardDAV", + "sectionCloudServices": "Cloud-Dienste", "cardavTitle": "CardDAV Kontakte", "tabFamily": "Familie", "tabApiTokens": "API-Tokens", diff --git a/public/pages/settings.js b/public/pages/settings.js index 900c2f7..eb52b6f 100644 --- a/public/pages/settings.js +++ b/public/pages/settings.js @@ -456,9 +456,85 @@ export async function render(container, { user }) {
- + +
-

${t('settings.sectionCalendarSync')}

+

${t('settings.sectionOpenStandards')}

+ + +
+

${t('settings.caldavTitle')}

+

${t('settings.caldavDescription')}

+ +
+ + + ${user?.role === 'admin' ? ` + + ` : ''} +
+ + +
+

${t('settings.cardavTitle')}

+

${t('settings.cardavDescription')}

+ +
+ + + ${user?.role === 'admin' ? ` + + ` : ''} +
+ + +
+

${t('settings.ics.title')}

+
+ +
+ +
+
+
+ + +
+

${t('settings.sectionCloudServices')}

@@ -530,84 +606,6 @@ export async function render(container, { user }) { ` : `${t('settings.appleOnlyAdmin')}`}
- - -
-

${t('settings.caldavTitle')}

-

${t('settings.caldavDescription')}

- -
- - - ${user?.role === 'admin' ? ` - - ` : ''} -
- - -
-
-
-
${t('settings.ics.title')}
-
-
-
- -
- -
-
-
- - -
-

${t('settings.sectionContactSync')}

- -
-

${t('settings.cardavTitle')}

-

${t('settings.cardavDescription')}

- -
- - - ${user?.role === 'admin' ? ` - - ` : ''} -
From c4cb52d04298318f5fca71f6a6233ba6c3735f7c Mon Sep 17 00:00:00 2001 From: Ulas Kalayci Date: Wed, 6 May 2026 07:33:54 +0200 Subject: [PATCH 2/2] feat(nav): shared sub-tabs component for settings and kitchen Extracts the tab-bar UI into a reusable renderSubTabs() utility (public/utils/sub-tabs.js + public/styles/sub-tabs.css) so all sub-module navigation shares one implementation and visual style. - Settings: replaces template-literal