Mercurial > hg-stable
view mercurial/templates/gitweb/graph.tmpl @ 14046:b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
This allow safe caching of the pages by the browser and still display the right
amount of elapsed time upon page refresh.
If javascript is disabled, absolute time is displayed, leaving it readable.
All the templates have been updated.
author | Benoit Allard <benoit@aeteurope.nl> |
---|---|
date | Thu, 28 Apr 2011 17:02:39 +0200 |
parents | 616ad3f6fd33 |
children | 8fd18eb8aab7 |
line wrap: on
line source
{header} <title>{repo|escape}: Graph</title> <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]--> </head> <body> <div class="page_header"> <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph </div> <form action="{url}log"> {sessionvars%hiddenformentry} <div class="search"> <input type="text" name="rev" /> </div> </form> <div class="page_nav"> <a href="{url}summary{sessionvars%urlparameter}">summary</a> | <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> | graph | <a href="{url}tags{sessionvars%urlparameter}">tags</a> | <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> | <a href="{url}branches{sessionvars%urlparameter}">branches</a> | <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> | <a href="{url}help{sessionvars%urlparameter}">help</a> <br/> <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a> <a href="{url}graph/{rev}{morevars%urlparameter}">more</a> | {changenav%navgraph}<br/> </div> <div class="title"> </div> <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript> <div id="wrapper"> <ul id="nodebgs"></ul> <canvas id="graph" width="480" height="{canvasheight}"></canvas> <ul id="graphnodes"></ul> </div> <script> <!-- hide script content var data = {jsdata|json}; var graph = new Graph(); graph.scale({bg_height}); graph.edge = function(x0, y0, x1, y1, color) \{ this.setColor(color, 0.0, 0.65); this.ctx.beginPath(); this.ctx.moveTo(x0, y0); this.ctx.lineTo(x1, y1); this.ctx.stroke(); } var revlink = '<li style="_STYLE"><span class="desc">'; revlink += '<a class="list" href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID"><b>_DESC</b></a>'; revlink += '</span> _TAGS'; revlink += '<span class="info">_DATE, by _USER</span></li>'; graph.vertex = function(x, y, color, parity, cur) \{ this.ctx.beginPath(); color = this.setColor(color, 0.25, 0.75); this.ctx.arc(x, y, radius, 0, Math.PI * 2, true); this.ctx.fill(); var bg = '<li class="bg parity' + parity + '"></li>'; var left = (this.columns + 1) * this.bg_height; var nstyle = 'padding-left: ' + left + 'px;'; var item = revlink.replace(/_STYLE/, nstyle); item = item.replace(/_PARITY/, 'parity' + parity); item = item.replace(/_NODEID/, cur[0]); item = item.replace(/_NODEID/, cur[0]); item = item.replace(/_DESC/, cur[3]); item = item.replace(/_USER/, cur[4]); item = item.replace(/_DATE/, cur[5]); var tagspan = ''; if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{ tagspan = '<span class="logtags">'; if (cur[6][1]) \{ tagspan += '<span class="branchtag" title="' + cur[6][0] + '">'; tagspan += cur[6][0] + '</span> '; } else if (!cur[6][1] && cur[6][0] != 'default') \{ tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">'; tagspan += cur[6][0] + '</span> '; } if (cur[7].length) \{ for (var t in cur[7]) \{ var tag = cur[7][t]; tagspan += '<span class="tagtag">' + tag + '</span> '; } } if (cur[8].length) \{ for (var t in cur[8]) \{ var bookmark = cur[8][t]; tagspan += '<span class="bookmarktag">' + bookmark + '</span> '; } } tagspan += '</span>'; } item = item.replace(/_TAGS/, tagspan); return [bg, item]; } graph.render(data); // stop hiding script --> </script> <div class="page_nav"> <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a> <a href="{url}graph/{rev}{morevars%urlparameter}">more</a> | {changenav%navgraph} </div> {footer}