hub v0.3.2: Show Hub version in page footers

Add hubVersion template function via closure in web.New(). Version is
passed from main.go (set via ldflags at build time) and displayed in
the footer of all 6 page templates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-20 19:39:52 +01:00
parent 11428659d1
commit 6bcbaa1574
10 changed files with 20 additions and 10 deletions
+5 -2
View File
@@ -21,6 +21,7 @@ type Server struct {
store *store.Store
passwordHash string
apiKey string // report API key — used for controller callbacks
version string
logger *log.Logger
templates *template.Template
staleThreshold time.Duration
@@ -29,7 +30,7 @@ type Server struct {
}
// New creates a new web server.
func New(store *store.Store, passwordHash, apiKey string, staleThreshold time.Duration, logger *log.Logger) *Server {
func New(store *store.Store, passwordHash, apiKey, version string, staleThreshold time.Duration, logger *log.Logger) *Server {
funcMap := template.FuncMap{
"timeAgo": timeAgo,
"statusColor": statusColor,
@@ -40,7 +41,8 @@ func New(store *store.Store, passwordHash, apiKey string, staleThreshold time.Du
b, _ := json.Marshal(v)
return template.JS(b)
},
"add": func(a, b int) int { return a + b },
"hubVersion": func() string { return version },
"add": func(a, b int) int { return a + b },
"mapGet": func(m map[string]int, key string) int {
if m == nil {
return 0
@@ -55,6 +57,7 @@ func New(store *store.Store, passwordHash, apiKey string, staleThreshold time.Du
store: store,
passwordHash: passwordHash,
apiKey: apiKey,
version: version,
logger: logger,
templates: tmpl,
staleThreshold: staleThreshold,
@@ -123,7 +123,7 @@
</div>
<footer>
<p>Felhom Hub — Customer Management</p>
<p>Felhom Hub {{hubVersion}} — Customer Management</p>
</footer>
</div>
+1 -1
View File
@@ -142,7 +142,7 @@
</form>
<footer>
<p>Felhom Hub — Configuration Management</p>
<p>Felhom Hub {{hubVersion}} — Configuration Management</p>
</footer>
</div>
</body>
+1 -1
View File
@@ -76,7 +76,7 @@
{{end}}
<footer>
<p>Felhom Hub — Customer Management</p>
<p>Felhom Hub {{hubVersion}} — Customer Management</p>
</footer>
</div>
</body>
+1 -1
View File
@@ -337,7 +337,7 @@
{{end}}
<footer>
<p>Auto-refreshes every 60 seconds &middot; <a href="/">Felhom Hub</a></p>
<p>Auto-refreshes every 60 seconds &middot; <a href="/">Felhom Hub</a> {{hubVersion}}</p>
</footer>
</div>
</body>
@@ -537,7 +537,7 @@
{{end}}
<footer>
{{if .HasReports}}<p>Auto-refreshes every 60 seconds &middot; {{end}}<a href="/">Felhom Hub</a>{{if .HasReports}}</p>{{end}}
{{if .HasReports}}<p>Auto-refreshes every 60 seconds &middot; {{end}}<a href="/">Felhom Hub</a> {{hubVersion}}{{if .HasReports}}</p>{{end}}
</footer>
</div>
+1 -1
View File
@@ -65,7 +65,7 @@
{{end}}
<footer>
<p>Auto-refreshes every 60 seconds &middot; Felhom Hub</p>
<p>Auto-refreshes every 60 seconds &middot; Felhom Hub {{hubVersion}}</p>
</footer>
</div>
</body>