diff --git a/frontend/src/routes/admin/+page.svelte b/frontend/src/routes/admin/+page.svelte index ad8cd71..aa5c10f 100644 --- a/frontend/src/routes/admin/+page.svelte +++ b/frontend/src/routes/admin/+page.svelte @@ -9,6 +9,18 @@ let feedback = $state([]); let error = $state(''); + // Analytics window (days). Windowed metrics — visitors, retention, funnel, + // sharing, daily trend, top lists — rescale to this; corpus totals don't. + let range = $state(30); + async function loadStats() { + stats = await getJSON('/api/admin/stats?days=' + range); + } + async function setRange(n) { + if (n === range) return; + range = n; + try { await loadStats(); } catch { error = "Couldn't load stats."; } + } + onMount(async () => { if (!auth.ready) await refresh(); if (!auth.user || !auth.user.is_admin) { @@ -16,7 +28,7 @@ return; } try { - stats = await getJSON('/api/admin/stats'); + await loadStats(); feedback = await getJSON('/api/admin/feedback'); } catch { error = "Couldn't load stats."; @@ -151,6 +163,15 @@ {/each} + {#if section === 'overview' || section === 'content' || section === 'audience'} +