templates/monoblue/graph.tmpl
author Henrik Stuart <hg@hstuart.dk>
Mon, 04 May 2009 15:31:57 +0200
changeset 8294 48a382c23226
parent 8236 9f53e203a09b
child 8355 5ba798f339c8
permissions -rw-r--r--
transaction: refactor transaction.abort and rollback to use the same code This adds a change to the way that abort is processed, as it will not continue truncating files beyond the first failure, otherwise the respective functionality is maintained, i.e. abort will not unlink files, but rollback will. Co-contributor: Sune Foldager <cryo@cyanite.org>

#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 id="container">
    <div class="page-header">
        <h1><a href="{url}summary{sessionvars%urlparameter}">#repo|escape#</a> / graph</h1>

        <form action="{url}log">
            {sessionvars%hiddenformentry}
            <dl class="search">
                <dt><label>Search: </label></dt>
                <dd><input type="text" name="rev" /></dd>
            </dl>
        </form>

        <ul class="page-nav">
            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
            <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
            <li class="current">graph</li>
            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
            <li><a href="{url}file/#node|short#{sessionvars%urlparameter}">files</a></li>
        </ul>
    </div>

    <h2 class="no-link no-border">graph</h2>

    <div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div>
    <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

    document.getElementById('noscript').style.display = 'none';

    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 href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
    revlink += '</span>_TAGS<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-path">
        <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
        <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
        | {changenav%navgraphentry}
    </div>

#footer#