diff --git a/public/pages/settings.js b/public/pages/settings.js index cbe4479..f80ae97 100644 --- a/public/pages/settings.js +++ b/public/pages/settings.js @@ -53,25 +53,28 @@ export async function render(container, { user }) { const syncErr = params.get('sync_error'); // State für Familienmitglieder + Sync-Status - let users = []; - let googleStatus = { configured: false, connected: false, lastSync: null }; - let appleStatus = { configured: false, lastSync: null }; - let prefs = { visible_meal_types: ['breakfast', 'lunch', 'dinner', 'snack'], currency: 'EUR' }; - let categories = []; + let users = []; + let googleStatus = { configured: false, connected: false, lastSync: null }; + let appleStatus = { configured: false, lastSync: null }; + let prefs = { visible_meal_types: ['breakfast', 'lunch', 'dinner', 'snack'], currency: 'EUR' }; + let categories = []; + let icsSubscriptions = []; try { - const [usersRes, gStatus, aStatus, prefsRes, catsRes] = await Promise.allSettled([ + const [usersRes, gStatus, aStatus, prefsRes, catsRes, icsRes] = await Promise.allSettled([ user.role === 'admin' ? auth.getUsers() : Promise.resolve({ data: [] }), api.get('/calendar/google/status'), api.get('/calendar/apple/status'), api.get('/preferences'), api.get('/shopping/categories'), + api.get('/calendar/subscriptions'), ]); - if (usersRes.status === 'fulfilled') users = usersRes.value.data ?? []; - if (gStatus.status === 'fulfilled') googleStatus = gStatus.value; - if (aStatus.status === 'fulfilled') appleStatus = aStatus.value; - if (prefsRes.status === 'fulfilled') prefs = prefsRes.value.data ?? prefs; - if (catsRes.status === 'fulfilled') categories = catsRes.value.data ?? []; + if (usersRes.status === 'fulfilled') users = usersRes.value.data ?? []; + if (gStatus.status === 'fulfilled') googleStatus = gStatus.value; + if (aStatus.status === 'fulfilled') appleStatus = aStatus.value; + if (prefsRes.status === 'fulfilled') prefs = prefsRes.value.data ?? prefs; + if (catsRes.status === 'fulfilled') categories = catsRes.value.data ?? []; + if (icsRes.status === 'fulfilled') icsSubscriptions = icsRes.value.data ?? []; } catch (_) { /* non-critical */ } const googleStatusText = googleStatus.connected @@ -239,6 +242,46 @@ export async function render(container, { user }) { ` : ''} + +