about summary refs log tree commit diff stats
path: root/internal/components/search.go
diff options
context:
space:
mode:
authorAlan Pearce2025-03-19 20:49:46 +0100
committerAlan Pearce2025-03-19 20:51:40 +0100
commit383ee780613116e78db9114a39a2d6127533463c (patch)
treec07e2af7ae910d5c6f80836dce8457ba44c54ceb /internal/components/search.go
parent49e3004d33bf84aa081460e4a6d89a8d84cc12b0 (diff)
downloadsearchix-383ee780613116e78db9114a39a2d6127533463c.tar.lz
searchix-383ee780613116e78db9114a39a2d6127533463c.tar.zst
searchix-383ee780613116e78db9114a39a2d6127533463c.zip
feat: show last/next/current indexing run time
Diffstat (limited to 'internal/components/search.go')
-rw-r--r--internal/components/search.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/internal/components/search.go b/internal/components/search.go
index 0a7c991..d629eef 100644
--- a/internal/components/search.go
+++ b/internal/components/search.go
@@ -1,6 +1,8 @@
 package components
 
 import (
+	"time"
+
 	g "go.alanpearce.eu/gomponents"
 	. "go.alanpearce.eu/gomponents/html"
 )
@@ -40,6 +42,40 @@ func SearchPage(tdata TemplateData, r ResultData, children ...g.Node) g.Node {
 			g.Text(" and "),
 			A(Href("https://github.com/nix-community/home-manager"), g.Text("home-manager")),
 		),
+		g.If(Indexing.InProgress,
+			P(Class("notice"),
+				g.Text("Indexing in progress, started "),
+				Time(
+					DateTime(Indexing.StartedAt.Format(time.RFC3339)),
+					Title(Indexing.StartedAt.Format(time.RFC3339)),
+					g.Text(time.Since(Indexing.StartedAt).Round(time.Second).String()),
+				),
+				g.Text(" ago. "),
+				g.If(!Indexing.FinishedAt.IsZero(),
+					g.Text("Last run took "),
+					Time(
+						DateTime(Indexing.FinishedAt.Format(time.RFC3339)),
+						Title(Indexing.FinishedAt.Format(time.RFC3339)),
+						g.Text(time.Since(Indexing.FinishedAt).Round(time.Minute).String()),
+					),
+				),
+			),
+			P(
+				g.Text("Indexing last ran "),
+				Time(
+					DateTime(Indexing.FinishedAt.Format(time.RFC3339)),
+					Title(Indexing.FinishedAt.Format(time.RFC3339)),
+					g.Text(time.Since(Indexing.FinishedAt).Round(time.Minute).String()),
+				),
+				g.Text(" ago, will run again in "),
+				Time(
+					DateTime(Indexing.NextRun.Format(time.RFC3339)),
+					Title(Indexing.NextRun.Format(time.RFC3339)),
+					g.Text(time.Until(Indexing.NextRun).Round(time.Minute).String()),
+				),
+				g.Text("."),
+			),
+		),
 		script(tdata.Assets.ByPath["/static/search.js"]),
 		Search(tdata, r),
 		Section(