aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-07-24 13:34:52 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-07-24 14:39:45 +0000
commitbd8900c38af45bfa8f8e451267d0e3548b68e295 (patch)
tree95e5a7f686335b89e64dca4e8f4060995cdfed77 /pkg
parent339edef584b68d656e2c5202d85eb705ee88874e (diff)
pkg/stat: preserve vertical scroll position on page reloads
The stats page is frequently reloaded to observe live data. Currently vertical scroll jumps to random positions after reload, it's super inconvinient. Preserve the position.
Diffstat (limited to 'pkg')
-rw-r--r--pkg/stat/set.go16
1 files changed, 11 insertions, 5 deletions
diff --git a/pkg/stat/set.go b/pkg/stat/set.go
index 4bcf2d2c6..4f8f75375 100644
--- a/pkg/stat/set.go
+++ b/pkg/stat/set.go
@@ -467,14 +467,10 @@ var htmlTemplate = pages.Create(`
<head>
<title>syzkaller stats</title>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
- {{HEAD}}
-</head>
-<body>
-{{range $g := .}}
- <div id="div_{{$g.ID}}"></div>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(function() {
+ {{range $g := .}}
new google.visualization. {{if $g.Stacked}} AreaChart {{else}} LineChart {{end}} (
document.getElementById('div_{{$g.ID}}')).
draw(google.visualization.arrayToDataTable([
@@ -494,8 +490,18 @@ var htmlTemplate = pages.Create(`
hAxis: {minValue: 1, textPosition: 'out', maxAlternation: 1, gridlines: {multiple: 1},
minorGridlines: {multiple: 1}},
})
+ {{end}}
+
+ {{/* 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); };
});
</script>
+ {{HEAD}}
+</head>
+<body>
+{{range $g := .}}
+ <div id="div_{{$g.ID}}"></div>
{{end}}
</body>
</html>