From 068f9d88b39df549a435166d5252c953577ee66f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Tr=C3=A1vn=C3=ADk?= Date: Mon, 22 Dec 2025 14:17:34 +0100 Subject: [PATCH] feat: display backup schedule and volume information in snapshot details --- .../repositories/routes/snapshot-details.tsx | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/app/client/modules/repositories/routes/snapshot-details.tsx b/app/client/modules/repositories/routes/snapshot-details.tsx index cc9ed363..9333012d 100644 --- a/app/client/modules/repositories/routes/snapshot-details.tsx +++ b/app/client/modules/repositories/routes/snapshot-details.tsx @@ -1,6 +1,6 @@ import { useQuery } from "@tanstack/react-query"; -import { redirect, useParams } from "react-router"; -import { listSnapshotFilesOptions } from "~/client/api-client/@tanstack/react-query.gen"; +import { redirect, useParams, Link } from "react-router"; +import { listBackupSchedulesOptions, listSnapshotFilesOptions } from "~/client/api-client/@tanstack/react-query.gen"; import { Card, CardContent, CardHeader, CardTitle } from "~/client/components/ui/card"; import { SnapshotFileBrowser } from "~/client/modules/backups/components/snapshot-file-browser"; import { getSnapshotDetails } from "~/client/api-client"; @@ -47,6 +47,13 @@ export default function SnapshotDetailsPage({ loaderData }: Route.ComponentProps enabled: !!name && !!snapshotId, }); + const schedules = useQuery({ + ...listBackupSchedulesOptions(), + }); + + const backupIds = loaderData.tags.map(Number).filter((tag) => !Number.isNaN(tag)); + const backup = schedules.data?.find((b) => backupIds.includes(b.id)); + if (!name || !snapshotId) { return (
@@ -89,6 +96,26 @@ export default function SnapshotDetailsPage({ loaderData }: Route.ComponentProps Time:

{new Date(data.snapshot.time).toLocaleString()}

+ {backup && ( + <> +
+ Backup Schedule: +

+ + {backup.name} + +

+
+
+ Volume: +

+ + {backup.volume.name} + +

+
+ + )}
Paths: