view templates/gitweb/graph.tmpl @ 9287:53fdf18fd63b

mq: Parse commit message after we find start of changeset patch patch.extract extracts just the message below HG changeset patch. So to not parse comments above the patch, we reset the message if we find a changeset patch as we know the commit message comes after the changeset patch data. This is similar to the behavior of patch.extract. The drawback of this approach, after a qref -e the comment above HG changeset patch is gone. Without this patch the message would become part of the commit message in the HG changset patch part.
author David Soria Parra <dsp@php.net>
date Tue, 28 Jul 2009 15:36:28 +0200
parents 1de6e7e1bb9f
children 17c6d5eab25d
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="http://mercurial.selenic.com/" 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}branches{sessionvars%urlparameter}">branches</a> |
<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
<br/>
<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
<a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
| {changenav%navgraphentry}<br/>
</div>

<div class="title">&nbsp;</div>

<noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>

<div id="wrapper">
<ul id="nodebgs"></ul>
<canvas id="graph" width="224" height="{canvasheight}"></canvas>
<ul id="graphnodes"></ul>
</div>

<script type="text/javascript" src="{staticurl}graph.js"></script>
<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 ago, 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[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> ';
			}
		}
		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%navgraphentry}
</div>

{footer}