##// END OF EJS Templates
hgweb: update canvas.width before dynamically redrawing graph (issue2683)...
hgweb: update canvas.width before dynamically redrawing graph (issue2683) After 91ac8cb79125 graph canvas width is decided once on the initial rendering. However, after graph page gets scrolled down to load more, it might need more horizontal space to draw, so it needs to resize the canvas dynamically. The exact problem that this patch solves can be seen using: hg init testfork cd testfork echo 0 > foo hg ci -Am0 echo 1 > foo hg ci -m1 hg up 0 echo 2 > foo hg ci -m2 hg gl -T '{rev}\n' @ 2 | | o 1 |/ o 0 hg serve And then by navigating to http://127.0.0.1:8000/graph/tip?revcount=1 "revcount=1" makes sure the initial graph contains only revision 2. And because the initial canvas width takes only that one revision into count, after the (immediate) AJAX update revision 1 will be cut off from the graph. We can safely set canvas width to the new value we get from the AJAX request because every time graph is updated, it is completely redrawn using all the requested nodes (in the case above it will use /graph/2?revcount=61), so the value is guaranteed not to decrease. P.S.: Sorry for parsing HTML with regexes, but I didn't start it.

File last commit:

r25794:90214844 default
r27934:1779ff74 stable
Show More
changelog.tmpl
44 lines | 1.5 KiB | application/x-cheetah | CheetahLexer
{header}
<title>{repo|escape}: changelog</title>
<link rel="alternate" type="application/atom+xml"
href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}">
<link rel="alternate" type="application/rss+xml"
href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}">
</head>
<body>
<div class="buttons">
<a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a>
<a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a>
<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
<a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a>
{archives%archiveentry}
<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
<a type="application/rss+xml" href="{url|urlescape}rss-log">rss</a>
<a type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}">atom</a>
</div>
<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / changelog</h2>
<form action="{url|urlescape}log">
{sessionvars%hiddenformentry}
<p>
<label for="search1">search:</label>
<input name="rev" id="search1" type="text" size="30">
navigate: <small class="navigate">{changenav%nav}</small>
</p>
</form>
{entries%changelogentry}
<form action="{url|urlescape}log">
{sessionvars%hiddenformentry}
<p>
<label for="search2">search:</label>
<input name="rev" id="search2" type="text" size="30">
navigate: <small class="navigate">{changenav%nav}</small>
</p>
</form>
{footer}