Files @ bbaab7501c1a
Branch filter:

Location: kallithea/pylons_app/templates/monoblue_plain/graph.tmpl

Marcin Kuzminski
Added custom templates, did over check of code to make it work.
Added templating for add repository, and styling. App globals now handles our custom static files. (logo etc can be changed)
{header}
<!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
<div id="container">
    <div class="page-header">
        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph</h1>

        <ul class="object-tools">
            <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"><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></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>


    <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>
    </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}