From 190daaa8a0bb79e750894b83e31b9d99f7d900a4 Mon Sep 17 00:00:00 2001 From: erdgeist Date: Thu, 16 Jul 2026 03:30:01 +0200 Subject: Add a reader for the action log at admin/log NodeActionsController#index lists entries newest-first, filterable by node_id or user_id -- the two zoom shapes the log was designed around. Rendering goes through NodeActionsHelper.action_summary, which builds one sentence per entry from metadata alone, so entries referencing deleted users or nodes render from their snapshots; live associations only upgrade names to links. Unknown verbs degrade to a generic sentence rather than an error, since the log outlives its vocabulary. The helper is the escaping boundary: every metadata value passes through h() before assembly. Actor names link to the log's own user zoom rather than the unused users page -- inspecting a suspicious user's other actions is the intended workflow. Publish entries with a translation_diff expose a collapsed per-locale change table linking out to the revision itself. Sentences live in en.yml/de.yml following the existing widget-string convention. nodes#show links to its node's zoomed log. --- config/locales/de.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'config/locales/de.yml') diff --git a/config/locales/de.yml b/config/locales/de.yml index 74cd1832..4e7b11d7 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -82,3 +82,23 @@ de: page_gap: "…" container_aria_label: "Seitennavigation" page_aria_label: "Seite %{page}" + + node_actions: + heading: "Letzte Änderungen" + show_all: "Alle Einträge zeigen" + backfilled: "rekonstruiert" + show_changes: "Änderungen an Übersetzungen" + view_revision: "Diese Revision ansehen" + actor_self: "du" + unknown: "%{actor} hat %{action} auf %{subject} aus" + publish: "%{actor} hat %{subject} veröffentlicht, (vorher: %{from})" + publish_first: "%{actor} hat %{subject} zum ersten Mal veröffentlicht" + publish_rollback: "%{actor} hat %{subject} auf eine frühere Revision zurückgesetzt (vorher: %{from})" + create: "%{actor} hat %{subject} unter %{path} angelegt" + move: "%{actor} hat %{subject} von %{from} nach %{to} verschoben" + discard_autosave: "%{actor} hat ungespeicherte Änderungen an %{subject} verschoben" + destroy_draft: "%{actor} hat den Entwurf von %{subject} verworfen" + locale_added: "Übersetzung angelegt, Titel \"%{title}\"" + locale_removed: "Übersetzung entfernt, letzter Titel \"%{title}\"" + abstract_changed: "Abstract geändert" + body_changed: "Text geändert" -- cgit v1.3