This stops pages from refreshing and losing the scroll position while one is inspecting a log file, looking at old job results, etc.
Signed-off-by: Francois Gouget fgouget@codeweavers.com --- testbot/lib/WineTestBot/CGI/PageBase.pm | 33 ++++++++++++++++++------- 1 file changed, 24 insertions(+), 9 deletions(-)
diff --git a/testbot/lib/WineTestBot/CGI/PageBase.pm b/testbot/lib/WineTestBot/CGI/PageBase.pm index 55e015d58..477a2ff15 100644 --- a/testbot/lib/WineTestBot/CGI/PageBase.pm +++ b/testbot/lib/WineTestBot/CGI/PageBase.pm @@ -416,11 +416,6 @@ sub GenerateHttpHeaders($) # HTTP/1.0 $Request->headers_out->add("Pragma", "no-cache");
- if ($self->{Refresh}) - { - $self->{Request}->headers_out->add("Refresh", $self->{Refresh}); - } - # Force char set $Request->content_type("text/html; charset=UTF-8");
@@ -462,12 +457,32 @@ EOF } print ">\n";
- print <<EOF; + print "<div id='logo_blurb'>${ProjectName} Test Bot</div>\n"; + if ($self->{Refresh}) + { + print <<EOF; +<script type='text/javascript'> +<!-- +var Reloader; +var Observer = new IntersectionObserver(function(entries) { + if (Reloader) + { + clearTimeout(Reloader); + Reloader = undefined; + } + if (entries[0].isIntersecting === true) + { + Reloader = setTimeout(function() { location.reload(); }, $self->{Refresh} * 1000); + } +}, { threshold: [0] });
-<div id="logo_blurb"> -${ProjectName} Test Bot -</div> +Observer.observe(document.querySelector("#logo_blurb")); +//--> +</script> +EOF + }
+ print <<EOF; <div id='tabs'> <ul> <li><a href='//www.winehq.org/'>WineHQ</a></li>