aboutsummaryrefslogtreecommitdiff
path: root/internal/server/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/server/server.go')
-rw-r--r--internal/server/server.go26
1 files changed, 22 insertions, 4 deletions
diff --git a/internal/server/server.go b/internal/server/server.go
index 6b7fbfb..35eb6fb 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -1495,24 +1495,42 @@ func formatUptimeTooltip(uptimePercent float64, totalChecks int64, lastFailure *
// formatVersionTooltip creates JSON data for version tooltip
func (s *Server) formatVersionTooltip() string {
+ timezone := s.config.Display.Timezone
+ useBrowserTz := timezone == "Browser"
+
rows := []map[string]string{
{"label": "Version", "value": s.version.Version, "class": ""},
{"label": "Commit", "value": s.version.Commit, "class": ""},
}
+ data := map[string]interface{}{
+ "header": "Kaze",
+ }
+
// Parse and format build date if available
if s.version.Date != "" && s.version.Date != "unknown" {
if t, err := time.Parse(time.RFC3339, s.version.Date); err == nil {
+ // Include raw timestamp for browser timezone conversion
+ if useBrowserTz {
+ data["timestamp"] = t.Format(time.RFC3339)
+ data["timestampLabel"] = "Built"
+ }
+
+ // Convert to configured timezone for server-side rendering
+ loc := time.Local
+ if timezone != "" && timezone != "Local" && timezone != "Browser" {
+ if l, err := time.LoadLocation(timezone); err == nil {
+ loc = l
+ }
+ }
+ t = t.In(loc)
rows = append(rows, map[string]string{"label": "Built", "value": t.Format("Jan 2, 2006 15:04"), "class": ""})
} else {
rows = append(rows, map[string]string{"label": "Built", "value": s.version.Date, "class": ""})
}
}
- data := map[string]interface{}{
- "header": "Kaze",
- "rows": rows,
- }
+ data["rows"] = rows
b, _ := json.Marshal(data)
return string(b)