diff options
Diffstat (limited to 'internal/server/server.go')
| -rw-r--r-- | internal/server/server.go | 26 |
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) |