From 44b1e39faee03d3a5f496f66157a41f939e74286 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 7 Nov 2024 16:01:06 +0100 Subject: pkg/manager: wrap stats page with the common header Add common manager HTML header to the stats page as well. --- pkg/html/pages/stats.go | 89 ++++++++++++++++++++++++-------------------- pkg/html/pages/stats_test.go | 7 +--- pkg/manager/http.go | 13 ++++++- 3 files changed, 63 insertions(+), 46 deletions(-) (limited to 'pkg') diff --git a/pkg/html/pages/stats.go b/pkg/html/pages/stats.go index 2682d28e9..3bc60cc5d 100644 --- a/pkg/html/pages/stats.go +++ b/pkg/html/pages/stats.go @@ -3,48 +3,57 @@ package pages -var StatsTemplate = Create(` - - - - syzkaller stats - - + - {{/* Preserve vertical scroll position after page reloads. Otherwise it's random. */}} - window.scroll(0, window.location.hash.substring(1)); - document.onscroll = function(e) { window.location.hash = Math.round(window.scrollY); }; - }); - - {{HEAD}} - - {{range $g := .}}
{{end}} - - `) diff --git a/pkg/html/pages/stats_test.go b/pkg/html/pages/stats_test.go index a5dcce01d..141651188 100644 --- a/pkg/html/pages/stats_test.go +++ b/pkg/html/pages/stats_test.go @@ -4,14 +4,11 @@ package pages import ( - "io" "testing" - - "github.com/google/syzkaller/pkg/stat" ) -func TestStatsTemplate(t *testing.T) { - if err := StatsTemplate.Execute(io.Discard, stat.RenderGraphs()); err != nil { +func TestStatsHTML(t *testing.T) { + if _, err := StatsHTML(); err != nil { t.Fatal(err) } } diff --git a/pkg/manager/http.go b/pkg/manager/http.go index 05972ba3d..6a1ed664a 100644 --- a/pkg/manager/http.go +++ b/pkg/manager/http.go @@ -218,7 +218,16 @@ func (serv *HTTPServer) httpSyscalls(w http.ResponseWriter, r *http.Request) { } func (serv *HTTPServer) httpStats(w http.ResponseWriter, r *http.Request) { - executeTemplate(w, pages.StatsTemplate, stat.RenderGraphs()) + html, err := pages.StatsHTML() + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + data := &UITextPage{ + UIPageHeader: serv.pageHeader(r, "stats"), + HTML: html, + } + executeTemplate(w, textTemplate, data) } func (serv *HTTPServer) httpVMs(w http.ResponseWriter, r *http.Request) { @@ -1390,8 +1399,10 @@ var jobListTemplate = createPage(UIJobList{}, ` type UITextPage struct { UIPageHeader Text []byte + HTML template.HTML } var textTemplate = createPage(UITextPage{}, ` +{{.HTML}}
{{printf "%s" .Text}}
`) -- cgit mrf-deployment