From fd93f1a4da58a93079f841049b32061d0390d7d1 Mon Sep 17 00:00:00 2001 From: Marcel Date: Wed, 22 Apr 2026 09:28:09 +0200 Subject: [PATCH] =?UTF-8?q?feat(chronik):=20rename=20route=20and=20heading?= =?UTF-8?q?=20to=20Aktivit=C3=A4ten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /chronik → /aktivitaeten; heading updated in all three locales. Component folder (lib/components/chronik/) stays unchanged — internal implementation detail, not user-facing. Co-Authored-By: Claude Sonnet 4.6 --- frontend/e2e/accessibility.spec.ts | 2 +- frontend/messages/de.json | 6 +++--- frontend/messages/en.json | 6 +++--- frontend/messages/es.json | 6 +++--- frontend/src/lib/components/DashboardActivityFeed.svelte | 2 +- .../src/lib/components/DashboardActivityFeed.svelte.spec.ts | 4 ++-- frontend/src/lib/components/NotificationDropdown.svelte | 2 +- .../src/lib/components/chronik/ChronikFuerDichBox.svelte | 2 +- .../components/chronik/ChronikFuerDichBox.svelte.spec.ts | 2 +- .../src/routes/{chronik => aktivitaeten}/+page.server.ts | 0 frontend/src/routes/{chronik => aktivitaeten}/+page.svelte | 0 .../routes/{chronik => aktivitaeten}/clientFilter.test.ts | 0 .../src/routes/{chronik => aktivitaeten}/clientFilter.ts | 0 .../routes/{chronik => aktivitaeten}/page.server.spec.ts | 6 +++--- frontend/src/routes/profile/+page.svelte | 5 ++++- 15 files changed, 23 insertions(+), 20 deletions(-) rename frontend/src/routes/{chronik => aktivitaeten}/+page.server.ts (100%) rename frontend/src/routes/{chronik => aktivitaeten}/+page.svelte (100%) rename frontend/src/routes/{chronik => aktivitaeten}/clientFilter.test.ts (100%) rename frontend/src/routes/{chronik => aktivitaeten}/clientFilter.ts (100%) rename frontend/src/routes/{chronik => aktivitaeten}/page.server.spec.ts (96%) diff --git a/frontend/e2e/accessibility.spec.ts b/frontend/e2e/accessibility.spec.ts index 5722390d..7f6c5921 100644 --- a/frontend/e2e/accessibility.spec.ts +++ b/frontend/e2e/accessibility.spec.ts @@ -10,7 +10,7 @@ import { test, expect } from '@playwright/test'; const AUTHENTICATED_PAGES = [ { name: 'home', path: '/' }, { name: 'persons', path: '/persons' }, - { name: 'chronik', path: '/chronik' }, + { name: 'aktivitaeten', path: '/aktivitaeten' }, { name: 'admin', path: '/admin' } ]; diff --git a/frontend/messages/de.json b/frontend/messages/de.json index bf1e64f1..f2e1feab 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -758,7 +758,7 @@ "dropzone_release": "Loslassen zum Hochladen", - "chronik_page_title": "Chronik", + "chronik_page_title": "Aktivitäten", "chronik_for_you_caption": "Für dich", "chronik_for_you_count": "{count} neu", "chronik_mark_read_aria": "Als gelesen markieren", @@ -790,10 +790,10 @@ "chronik_empty_first_run_body": "Sobald jemand aus der Familie Dokumente hochlädt oder transkribiert, erscheint hier die Aktivität.", "chronik_empty_filter_title": "Nichts in dieser Ansicht", "chronik_empty_filter_body": "In diesem Filter gibt es keine Einträge.", - "chronik_error_title": "Die Chronik konnte nicht geladen werden.", + "chronik_error_title": "Die Aktivitäten konnten nicht geladen werden.", "chronik_error_retry": "Erneut versuchen", "chronik_load_more": "Mehr laden", "chronik_loading": "Lädt …", "chronik_load_more_announcement": "{count} weitere Einträge geladen", - "chronik_view_all": "Zur Chronik →" + "chronik_view_all": "Alle Aktivitäten →" } diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 107080f2..4a4080d0 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -758,7 +758,7 @@ "dropzone_release": "Release to upload", - "chronik_page_title": "Chronicle", + "chronik_page_title": "Activity", "chronik_for_you_caption": "For you", "chronik_for_you_count": "{count} new", "chronik_mark_read_aria": "Mark as read", @@ -790,10 +790,10 @@ "chronik_empty_first_run_body": "As soon as someone in the family uploads or transcribes a document, the activity will show up here.", "chronik_empty_filter_title": "Nothing in this view", "chronik_empty_filter_body": "There are no entries for this filter.", - "chronik_error_title": "The chronicle could not be loaded.", + "chronik_error_title": "Activity could not be loaded.", "chronik_error_retry": "Try again", "chronik_load_more": "Load more", "chronik_loading": "Loading …", "chronik_load_more_announcement": "{count} more entries loaded", - "chronik_view_all": "Open chronicle →" + "chronik_view_all": "All activity →" } diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 5963883d..08effdff 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -758,7 +758,7 @@ "dropzone_release": "Suelta para subir", - "chronik_page_title": "Crónica", + "chronik_page_title": "Actividades", "chronik_for_you_caption": "Para ti", "chronik_for_you_count": "{count} nuevas", "chronik_mark_read_aria": "Marcar como leído", @@ -790,10 +790,10 @@ "chronik_empty_first_run_body": "En cuanto alguien de la familia suba o transcriba un documento, la actividad aparecerá aquí.", "chronik_empty_filter_title": "Nada en esta vista", "chronik_empty_filter_body": "No hay entradas para este filtro.", - "chronik_error_title": "No se pudo cargar la crónica.", + "chronik_error_title": "No se pudieron cargar las actividades.", "chronik_error_retry": "Reintentar", "chronik_load_more": "Cargar más", "chronik_loading": "Cargando …", "chronik_load_more_announcement": "{count} entradas más cargadas", - "chronik_view_all": "Abrir crónica →" + "chronik_view_all": "Todas las actividades →" } diff --git a/frontend/src/lib/components/DashboardActivityFeed.svelte b/frontend/src/lib/components/DashboardActivityFeed.svelte index 2595fd3e..c1d0ef29 100644 --- a/frontend/src/lib/components/DashboardActivityFeed.svelte +++ b/frontend/src/lib/components/DashboardActivityFeed.svelte @@ -56,7 +56,7 @@ function timestamp(item: ActivityFeedItemDTO): string { {m.feed_caption()} {m.feed_show_all()} diff --git a/frontend/src/lib/components/DashboardActivityFeed.svelte.spec.ts b/frontend/src/lib/components/DashboardActivityFeed.svelte.spec.ts index 51bfd384..b32aa838 100644 --- a/frontend/src/lib/components/DashboardActivityFeed.svelte.spec.ts +++ b/frontend/src/lib/components/DashboardActivityFeed.svelte.spec.ts @@ -61,9 +61,9 @@ describe('DashboardActivityFeed', () => { await expect.element(badge).not.toBeInTheDocument(); }); - it('links the "show all" footer to /chronik, not /documents', async () => { + it('links the "show all" footer to /aktivitaeten, not /documents', async () => { render(DashboardActivityFeed, { feed: [] }); const link = page.getByRole('link', { name: /alle anzeigen/i }); - await expect.element(link).toHaveAttribute('href', '/chronik'); + await expect.element(link).toHaveAttribute('href', '/aktivitaeten'); }); }); diff --git a/frontend/src/lib/components/NotificationDropdown.svelte b/frontend/src/lib/components/NotificationDropdown.svelte index 4cf775dd..3b92c13d 100644 --- a/frontend/src/lib/components/NotificationDropdown.svelte +++ b/frontend/src/lib/components/NotificationDropdown.svelte @@ -128,7 +128,7 @@ let { notifications, onMarkRead, onMarkAllRead, onClose }: Props = $props();
diff --git a/frontend/src/lib/components/chronik/ChronikFuerDichBox.svelte b/frontend/src/lib/components/chronik/ChronikFuerDichBox.svelte index 82f9a6e6..05d58e56 100644 --- a/frontend/src/lib/components/chronik/ChronikFuerDichBox.svelte +++ b/frontend/src/lib/components/chronik/ChronikFuerDichBox.svelte @@ -45,7 +45,7 @@ function href(n: NotificationItem): string { {m.chronik_inbox_zero_title()}

{m.chronik_inbox_zero_link()} diff --git a/frontend/src/lib/components/chronik/ChronikFuerDichBox.svelte.spec.ts b/frontend/src/lib/components/chronik/ChronikFuerDichBox.svelte.spec.ts index 3bea1aae..c5f2f592 100644 --- a/frontend/src/lib/components/chronik/ChronikFuerDichBox.svelte.spec.ts +++ b/frontend/src/lib/components/chronik/ChronikFuerDichBox.svelte.spec.ts @@ -40,7 +40,7 @@ describe('ChronikFuerDichBox', () => { onMarkRead: vi.fn(), onMarkAllRead: vi.fn() }); - const link = document.querySelector('a[href="/chronik?filter=fuer-dich"]'); + const link = document.querySelector('a[href="/aktivitaeten?filter=fuer-dich"]'); expect(link).not.toBeNull(); }); diff --git a/frontend/src/routes/chronik/+page.server.ts b/frontend/src/routes/aktivitaeten/+page.server.ts similarity index 100% rename from frontend/src/routes/chronik/+page.server.ts rename to frontend/src/routes/aktivitaeten/+page.server.ts diff --git a/frontend/src/routes/chronik/+page.svelte b/frontend/src/routes/aktivitaeten/+page.svelte similarity index 100% rename from frontend/src/routes/chronik/+page.svelte rename to frontend/src/routes/aktivitaeten/+page.svelte diff --git a/frontend/src/routes/chronik/clientFilter.test.ts b/frontend/src/routes/aktivitaeten/clientFilter.test.ts similarity index 100% rename from frontend/src/routes/chronik/clientFilter.test.ts rename to frontend/src/routes/aktivitaeten/clientFilter.test.ts diff --git a/frontend/src/routes/chronik/clientFilter.ts b/frontend/src/routes/aktivitaeten/clientFilter.ts similarity index 100% rename from frontend/src/routes/chronik/clientFilter.ts rename to frontend/src/routes/aktivitaeten/clientFilter.ts diff --git a/frontend/src/routes/chronik/page.server.spec.ts b/frontend/src/routes/aktivitaeten/page.server.spec.ts similarity index 96% rename from frontend/src/routes/chronik/page.server.spec.ts rename to frontend/src/routes/aktivitaeten/page.server.spec.ts index 08c3694d..fe4809d8 100644 --- a/frontend/src/routes/chronik/page.server.spec.ts +++ b/frontend/src/routes/aktivitaeten/page.server.spec.ts @@ -10,7 +10,7 @@ vi.mock('$lib/api.server', () => ({ })); function buildUrl(search = ''): URL { - return new URL(`http://localhost/chronik${search}`); + return new URL(`http://localhost/aktivitaeten${search}`); } function mockSuccess() { @@ -26,7 +26,7 @@ beforeEach(() => { vi.clearAllMocks(); }); -describe('chronik/load — core', () => { +describe('aktivitaeten/load — core', () => { it('requests only unread notifications for Für-dich', async () => { mockSuccess(); await load({ fetch, url: buildUrl() } as never); @@ -78,7 +78,7 @@ describe('chronik/load — core', () => { }); }); -describe('chronik/load — kinds param per filter', () => { +describe('aktivitaeten/load — kinds param per filter', () => { it('omits kinds for filter=alle (server defaults to ROLLUP_ELIGIBLE)', async () => { mockSuccess(); await load({ fetch, url: buildUrl() } as never); diff --git a/frontend/src/routes/profile/+page.svelte b/frontend/src/routes/profile/+page.svelte index 24d25c12..188344a0 100644 --- a/frontend/src/routes/profile/+page.svelte +++ b/frontend/src/routes/profile/+page.svelte @@ -102,7 +102,10 @@ const hasEmail = $derived(!!data.user?.email);