From d07992d12a3d3cd14a3d2fcaba63659cad84e46d Mon Sep 17 00:00:00 2001
From: Yaniv Zalach
Date: Sun, 16 Aug 2026 16:19:47 +0300
Subject: [PATCH] Adding link of action to timeline
---
frontend/src/pages/DocsPage.jsx | 7 +++++
frontend/src/pages/TimelinePage.jsx | 44 +++++++++++++++++++++++++++++
2 files changed, 51 insertions(+)
diff --git a/frontend/src/pages/DocsPage.jsx b/frontend/src/pages/DocsPage.jsx
index f4924d4..0b633b3 100644
--- a/frontend/src/pages/DocsPage.jsx
+++ b/frontend/src/pages/DocsPage.jsx
@@ -355,6 +355,13 @@ const SECTIONS = [
expanded or collapsed with ▼{" "}
/ ▲.
+
+ When the event's snapshot points at the job that wrote it, an{" "}
+
+ action_link
+ {" "}
+ row links out to it, opening in a new tab.
+
),
diff --git a/frontend/src/pages/TimelinePage.jsx b/frontend/src/pages/TimelinePage.jsx
index 13bd660..9c18768 100644
--- a/frontend/src/pages/TimelinePage.jsx
+++ b/frontend/src/pages/TimelinePage.jsx
@@ -405,6 +405,35 @@ function DiffRow({ label, before, after }) {
);
}
+function SnapOperationDescription({ operation, operationDescription }) {
+ if (!operationDescription || operationDescription === operation) return null;
+ return (
+
+ );
+}
+
+function SnapActionLink({ actionLink }) {
+ if (!actionLink) return null;
+ return (
+
+ );
+}
+
function SnapSummary({ summary }) {
const entries = summary ? Object.entries(summary) : [];
if (entries.length === 0) return null;
@@ -996,6 +1025,11 @@ export default function TimelinePage() {
label="Operation"
value={selectedSnap.operation}
/>
+
+
>
)}
@@ -1018,6 +1052,11 @@ export default function TimelinePage() {
label="Operation"
value={selectedSnap.operation}
/>
+
+
>
)}
@@ -1056,6 +1095,11 @@ export default function TimelinePage() {
label="Operation"
value={selectedSnap.operation}
/>
+
+
>
)}