##// END OF EJS Templates
templates: widen the graph canvas (issue2683)
Dirkjan Ochtman -
r13610:7359cb75 stable
parent child Browse files
Show More
@@ -1,122 +1,122 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Graph</title>
2 <title>{repo|escape}: Graph</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
8 </head>
8 </head>
9 <body>
9 <body>
10
10
11 <div class="page_header">
11 <div class="page_header">
12 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph
12 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph
13 </div>
13 </div>
14
14
15 <form action="{url}log">
15 <form action="{url}log">
16 {sessionvars%hiddenformentry}
16 {sessionvars%hiddenformentry}
17 <div class="search">
17 <div class="search">
18 <input type="text" name="rev" />
18 <input type="text" name="rev" />
19 </div>
19 </div>
20 </form>
20 </form>
21 <div class="page_nav">
21 <div class="page_nav">
22 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
22 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
23 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
24 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
24 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
25 graph |
25 graph |
26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
27 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
28 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
28 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
29 <a href="{url}help{sessionvars%urlparameter}">help</a>
29 <a href="{url}help{sessionvars%urlparameter}">help</a>
30 <br/>
30 <br/>
31 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
31 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
32 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
32 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
33 | {changenav%navgraph}<br/>
33 | {changenav%navgraph}<br/>
34 </div>
34 </div>
35
35
36 <div class="title">&nbsp;</div>
36 <div class="title">&nbsp;</div>
37
37
38 <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
38 <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
39
39
40 <div id="wrapper">
40 <div id="wrapper">
41 <ul id="nodebgs"></ul>
41 <ul id="nodebgs"></ul>
42 <canvas id="graph" width="224" height="{canvasheight}"></canvas>
42 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
43 <ul id="graphnodes"></ul>
43 <ul id="graphnodes"></ul>
44 </div>
44 </div>
45
45
46 <script type="text/javascript" src="{staticurl}graph.js"></script>
46 <script type="text/javascript" src="{staticurl}graph.js"></script>
47 <script>
47 <script>
48 <!-- hide script content
48 <!-- hide script content
49
49
50 var data = {jsdata|json};
50 var data = {jsdata|json};
51 var graph = new Graph();
51 var graph = new Graph();
52 graph.scale({bg_height});
52 graph.scale({bg_height});
53
53
54 graph.edge = function(x0, y0, x1, y1, color) \{
54 graph.edge = function(x0, y0, x1, y1, color) \{
55
55
56 this.setColor(color, 0.0, 0.65);
56 this.setColor(color, 0.0, 0.65);
57 this.ctx.beginPath();
57 this.ctx.beginPath();
58 this.ctx.moveTo(x0, y0);
58 this.ctx.moveTo(x0, y0);
59 this.ctx.lineTo(x1, y1);
59 this.ctx.lineTo(x1, y1);
60 this.ctx.stroke();
60 this.ctx.stroke();
61
61
62 }
62 }
63
63
64 var revlink = '<li style="_STYLE"><span class="desc">';
64 var revlink = '<li style="_STYLE"><span class="desc">';
65 revlink += '<a class="list" href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID"><b>_DESC</b></a>';
65 revlink += '<a class="list" href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID"><b>_DESC</b></a>';
66 revlink += '</span> _TAGS';
66 revlink += '</span> _TAGS';
67 revlink += '<span class="info">_DATE, by _USER</span></li>';
67 revlink += '<span class="info">_DATE, by _USER</span></li>';
68
68
69 graph.vertex = function(x, y, color, parity, cur) \{
69 graph.vertex = function(x, y, color, parity, cur) \{
70
70
71 this.ctx.beginPath();
71 this.ctx.beginPath();
72 color = this.setColor(color, 0.25, 0.75);
72 color = this.setColor(color, 0.25, 0.75);
73 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
73 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
74 this.ctx.fill();
74 this.ctx.fill();
75
75
76 var bg = '<li class="bg parity' + parity + '"></li>';
76 var bg = '<li class="bg parity' + parity + '"></li>';
77 var left = (this.columns + 1) * this.bg_height;
77 var left = (this.columns + 1) * this.bg_height;
78 var nstyle = 'padding-left: ' + left + 'px;';
78 var nstyle = 'padding-left: ' + left + 'px;';
79 var item = revlink.replace(/_STYLE/, nstyle);
79 var item = revlink.replace(/_STYLE/, nstyle);
80 item = item.replace(/_PARITY/, 'parity' + parity);
80 item = item.replace(/_PARITY/, 'parity' + parity);
81 item = item.replace(/_NODEID/, cur[0]);
81 item = item.replace(/_NODEID/, cur[0]);
82 item = item.replace(/_NODEID/, cur[0]);
82 item = item.replace(/_NODEID/, cur[0]);
83 item = item.replace(/_DESC/, cur[3]);
83 item = item.replace(/_DESC/, cur[3]);
84 item = item.replace(/_USER/, cur[4]);
84 item = item.replace(/_USER/, cur[4]);
85 item = item.replace(/_DATE/, cur[5]);
85 item = item.replace(/_DATE/, cur[5]);
86
86
87 var tagspan = '';
87 var tagspan = '';
88 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) \{
88 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) \{
89 tagspan = '<span class="logtags">';
89 tagspan = '<span class="logtags">';
90 if (cur[6][1]) \{
90 if (cur[6][1]) \{
91 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
91 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
92 tagspan += cur[6][0] + '</span> ';
92 tagspan += cur[6][0] + '</span> ';
93 } else if (!cur[6][1] && cur[6][0] != 'default') \{
93 } else if (!cur[6][1] && cur[6][0] != 'default') \{
94 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
94 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
95 tagspan += cur[6][0] + '</span> ';
95 tagspan += cur[6][0] + '</span> ';
96 }
96 }
97 if (cur[7].length) \{
97 if (cur[7].length) \{
98 for (var t in cur[7]) \{
98 for (var t in cur[7]) \{
99 var tag = cur[7][t];
99 var tag = cur[7][t];
100 tagspan += '<span class="tagtag">' + tag + '</span> ';
100 tagspan += '<span class="tagtag">' + tag + '</span> ';
101 }
101 }
102 }
102 }
103 tagspan += '</span>';
103 tagspan += '</span>';
104 }
104 }
105
105
106 item = item.replace(/_TAGS/, tagspan);
106 item = item.replace(/_TAGS/, tagspan);
107 return [bg, item];
107 return [bg, item];
108
108
109 }
109 }
110
110
111 graph.render(data);
111 graph.render(data);
112
112
113 // stop hiding script -->
113 // stop hiding script -->
114 </script>
114 </script>
115
115
116 <div class="page_nav">
116 <div class="page_nav">
117 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
117 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
118 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
118 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
119 | {changenav%navgraph}
119 | {changenav%navgraph}
120 </div>
120 </div>
121
121
122 {footer}
122 {footer}
@@ -1,119 +1,119 b''
1 {header}
1 {header}
2 <title>{repo|escape}: graph</title>
2 <title>{repo|escape}: graph</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
5 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
6 </head>
6 </head>
7
7
8 <body>
8 <body>
9 <div id="container">
9 <div id="container">
10 <div class="page-header">
10 <div class="page-header">
11 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph</h1>
11 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph</h1>
12
12
13 <form action="{url}log">
13 <form action="{url}log">
14 {sessionvars%hiddenformentry}
14 {sessionvars%hiddenformentry}
15 <dl class="search">
15 <dl class="search">
16 <dt><label>Search: </label></dt>
16 <dt><label>Search: </label></dt>
17 <dd><input type="text" name="rev" /></dd>
17 <dd><input type="text" name="rev" /></dd>
18 </dl>
18 </dl>
19 </form>
19 </form>
20
20
21 <ul class="page-nav">
21 <ul class="page-nav">
22 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
23 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
24 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
25 <li class="current">graph</li>
25 <li class="current">graph</li>
26 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <h2 class="no-link no-border">graph</h2>
33 <h2 class="no-link no-border">graph</h2>
34
34
35 <div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div>
35 <div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div>
36 <div id="wrapper">
36 <div id="wrapper">
37 <ul id="nodebgs"></ul>
37 <ul id="nodebgs"></ul>
38 <canvas id="graph" width="224" height="{canvasheight}"></canvas>
38 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
39 <ul id="graphnodes"></ul>
39 <ul id="graphnodes"></ul>
40 </div>
40 </div>
41
41
42 <script type="text/javascript" src="{staticurl}graph.js"></script>
42 <script type="text/javascript" src="{staticurl}graph.js"></script>
43 <script>
43 <script>
44 <!-- hide script content
44 <!-- hide script content
45
45
46 document.getElementById('noscript').style.display = 'none';
46 document.getElementById('noscript').style.display = 'none';
47
47
48 var data = {jsdata|json};
48 var data = {jsdata|json};
49 var graph = new Graph();
49 var graph = new Graph();
50 graph.scale({bg_height});
50 graph.scale({bg_height});
51
51
52 graph.edge = function(x0, y0, x1, y1, color) \{
52 graph.edge = function(x0, y0, x1, y1, color) \{
53
53
54 this.setColor(color, 0.0, 0.65);
54 this.setColor(color, 0.0, 0.65);
55 this.ctx.beginPath();
55 this.ctx.beginPath();
56 this.ctx.moveTo(x0, y0);
56 this.ctx.moveTo(x0, y0);
57 this.ctx.lineTo(x1, y1);
57 this.ctx.lineTo(x1, y1);
58 this.ctx.stroke();
58 this.ctx.stroke();
59
59
60 }
60 }
61
61
62 var revlink = '<li style="_STYLE"><span class="desc">';
62 var revlink = '<li style="_STYLE"><span class="desc">';
63 revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
63 revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
64 revlink += '</span>_TAGS<span class="info">_DATE, by _USER</span></li>';
64 revlink += '</span>_TAGS<span class="info">_DATE, by _USER</span></li>';
65
65
66 graph.vertex = function(x, y, color, parity, cur) \{
66 graph.vertex = function(x, y, color, parity, cur) \{
67
67
68 this.ctx.beginPath();
68 this.ctx.beginPath();
69 color = this.setColor(color, 0.25, 0.75);
69 color = this.setColor(color, 0.25, 0.75);
70 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
70 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
71 this.ctx.fill();
71 this.ctx.fill();
72
72
73 var bg = '<li class="bg parity' + parity + '"></li>';
73 var bg = '<li class="bg parity' + parity + '"></li>';
74 var left = (this.columns + 1) * this.bg_height;
74 var left = (this.columns + 1) * this.bg_height;
75 var nstyle = 'padding-left: ' + left + 'px;';
75 var nstyle = 'padding-left: ' + left + 'px;';
76 var item = revlink.replace(/_STYLE/, nstyle);
76 var item = revlink.replace(/_STYLE/, nstyle);
77 item = item.replace(/_PARITY/, 'parity' + parity);
77 item = item.replace(/_PARITY/, 'parity' + parity);
78 item = item.replace(/_NODEID/, cur[0]);
78 item = item.replace(/_NODEID/, cur[0]);
79 item = item.replace(/_NODEID/, cur[0]);
79 item = item.replace(/_NODEID/, cur[0]);
80 item = item.replace(/_DESC/, cur[3]);
80 item = item.replace(/_DESC/, cur[3]);
81 item = item.replace(/_USER/, cur[4]);
81 item = item.replace(/_USER/, cur[4]);
82 item = item.replace(/_DATE/, cur[5]);
82 item = item.replace(/_DATE/, cur[5]);
83
83
84 var tagspan = '';
84 var tagspan = '';
85 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) \{
85 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) \{
86 tagspan = '<span class="logtags">';
86 tagspan = '<span class="logtags">';
87 if (cur[6][1]) \{
87 if (cur[6][1]) \{
88 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
88 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
89 tagspan += cur[6][0] + '</span> ';
89 tagspan += cur[6][0] + '</span> ';
90 } else if (!cur[6][1] && cur[6][0] != 'default') \{
90 } else if (!cur[6][1] && cur[6][0] != 'default') \{
91 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
91 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
92 tagspan += cur[6][0] + '</span> ';
92 tagspan += cur[6][0] + '</span> ';
93 }
93 }
94 if (cur[7].length) \{
94 if (cur[7].length) \{
95 for (var t in cur[7]) \{
95 for (var t in cur[7]) \{
96 var tag = cur[7][t];
96 var tag = cur[7][t];
97 tagspan += '<span class="tagtag">' + tag + '</span> ';
97 tagspan += '<span class="tagtag">' + tag + '</span> ';
98 }
98 }
99 }
99 }
100 tagspan += '</span>';
100 tagspan += '</span>';
101 }
101 }
102
102
103 item = item.replace(/_TAGS/, tagspan);
103 item = item.replace(/_TAGS/, tagspan);
104 return [bg, item];
104 return [bg, item];
105
105
106 }
106 }
107
107
108 graph.render(data);
108 graph.render(data);
109
109
110 // stop hiding script -->
110 // stop hiding script -->
111 </script>
111 </script>
112
112
113 <div class="page-path">
113 <div class="page-path">
114 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
114 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
115 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
115 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
116 | {changenav%navgraph}
116 | {changenav%navgraph}
117 </div>
117 </div>
118
118
119 {footer}
119 {footer}
@@ -1,142 +1,142 b''
1 {header}
1 {header}
2 <title>{repo|escape}: revision graph</title>
2 <title>{repo|escape}: revision graph</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}: log" />
4 href="{url}atom-log" title="Atom feed for {repo|escape}: log" />
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}: log" />
6 href="{url}rss-log" title="RSS feed for {repo|escape}: log" />
7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
8 </head>
8 </head>
9 <body>
9 <body>
10
10
11 <div class="container">
11 <div class="container">
12 <div class="menu">
12 <div class="menu">
13 <div class="logo">
13 <div class="logo">
14 <a href="http://mercurial.selenic.com/">
14 <a href="http://mercurial.selenic.com/">
15 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
15 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
16 </div>
16 </div>
17 <ul>
17 <ul>
18 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
18 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
19 <li class="active">graph</li>
19 <li class="active">graph</li>
20 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
20 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
21 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
21 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
22 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
22 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
23 </ul>
23 </ul>
24 <ul>
24 <ul>
25 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
25 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
26 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
26 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
27 </ul>
27 </ul>
28 <ul>
28 <ul>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <div class="main">
33 <div class="main">
34 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
34 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
35 <h3>graph</h3>
35 <h3>graph</h3>
36
36
37 <form class="search" action="{url}log">
37 <form class="search" action="{url}log">
38 {sessionvars%hiddenformentry}
38 {sessionvars%hiddenformentry}
39 <p><input name="rev" id="search1" type="text" size="30" /></p>
39 <p><input name="rev" id="search1" type="text" size="30" /></p>
40 <div id="hint">find changesets by author, revision,
40 <div id="hint">find changesets by author, revision,
41 files, or words in the commit message</div>
41 files, or words in the commit message</div>
42 </form>
42 </form>
43
43
44 <div class="navigate">
44 <div class="navigate">
45 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
45 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
46 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
46 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
47 | rev {rev}: {changenav%navgraph}
47 | rev {rev}: {changenav%navgraph}
48 </div>
48 </div>
49
49
50 <noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
50 <noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
51
51
52 <div id="wrapper">
52 <div id="wrapper">
53 <ul id="nodebgs"></ul>
53 <ul id="nodebgs"></ul>
54 <canvas id="graph" width="224" height="{canvasheight}"></canvas>
54 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
55 <ul id="graphnodes"></ul>
55 <ul id="graphnodes"></ul>
56 </div>
56 </div>
57
57
58 <script type="text/javascript" src="{staticurl}graph.js"></script>
58 <script type="text/javascript" src="{staticurl}graph.js"></script>
59 <script type="text/javascript">
59 <script type="text/javascript">
60 <!-- hide script content
60 <!-- hide script content
61
61
62 var data = {jsdata|json};
62 var data = {jsdata|json};
63 var graph = new Graph();
63 var graph = new Graph();
64 graph.scale({bg_height});
64 graph.scale({bg_height});
65
65
66 graph.edge = function(x0, y0, x1, y1, color) \{
66 graph.edge = function(x0, y0, x1, y1, color) \{
67
67
68 this.setColor(color, 0.0, 0.65);
68 this.setColor(color, 0.0, 0.65);
69 this.ctx.beginPath();
69 this.ctx.beginPath();
70 this.ctx.moveTo(x0, y0);
70 this.ctx.moveTo(x0, y0);
71 this.ctx.lineTo(x1, y1);
71 this.ctx.lineTo(x1, y1);
72 this.ctx.stroke();
72 this.ctx.stroke();
73
73
74 }
74 }
75
75
76 var revlink = '<li style="_STYLE"><span class="desc">';
76 var revlink = '<li style="_STYLE"><span class="desc">';
77 revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
77 revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
78 revlink += '</span>_TAGS<span class="info">_DATE, by _USER</span></li>';
78 revlink += '</span>_TAGS<span class="info">_DATE, by _USER</span></li>';
79
79
80 graph.vertex = function(x, y, color, parity, cur) \{
80 graph.vertex = function(x, y, color, parity, cur) \{
81
81
82 this.ctx.beginPath();
82 this.ctx.beginPath();
83 color = this.setColor(color, 0.25, 0.75);
83 color = this.setColor(color, 0.25, 0.75);
84 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
84 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
85 this.ctx.fill();
85 this.ctx.fill();
86
86
87 var bg = '<li class="bg parity' + parity + '"></li>';
87 var bg = '<li class="bg parity' + parity + '"></li>';
88 var left = (this.columns + 1) * this.bg_height;
88 var left = (this.columns + 1) * this.bg_height;
89 var nstyle = 'padding-left: ' + left + 'px;';
89 var nstyle = 'padding-left: ' + left + 'px;';
90 var item = revlink.replace(/_STYLE/, nstyle);
90 var item = revlink.replace(/_STYLE/, nstyle);
91 item = item.replace(/_PARITY/, 'parity' + parity);
91 item = item.replace(/_PARITY/, 'parity' + parity);
92 item = item.replace(/_NODEID/, cur[0]);
92 item = item.replace(/_NODEID/, cur[0]);
93 item = item.replace(/_NODEID/, cur[0]);
93 item = item.replace(/_NODEID/, cur[0]);
94 item = item.replace(/_DESC/, cur[3]);
94 item = item.replace(/_DESC/, cur[3]);
95 item = item.replace(/_USER/, cur[4]);
95 item = item.replace(/_USER/, cur[4]);
96 item = item.replace(/_DATE/, cur[5]);
96 item = item.replace(/_DATE/, cur[5]);
97
97
98 var tagspan = '';
98 var tagspan = '';
99 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) \{
99 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) \{
100 tagspan = '<span class="logtags">';
100 tagspan = '<span class="logtags">';
101 if (cur[6][1]) \{
101 if (cur[6][1]) \{
102 tagspan += '<span class="branchhead" title="' + cur[6][0] + '">';
102 tagspan += '<span class="branchhead" title="' + cur[6][0] + '">';
103 tagspan += cur[6][0] + '</span> ';
103 tagspan += cur[6][0] + '</span> ';
104 } else if (!cur[6][1] && cur[6][0] != 'default') \{
104 } else if (!cur[6][1] && cur[6][0] != 'default') \{
105 tagspan += '<span class="branchname" title="' + cur[6][0] + '">';
105 tagspan += '<span class="branchname" title="' + cur[6][0] + '">';
106 tagspan += cur[6][0] + '</span> ';
106 tagspan += cur[6][0] + '</span> ';
107 }
107 }
108 if (cur[7].length) \{
108 if (cur[7].length) \{
109 for (var t in cur[7]) \{
109 for (var t in cur[7]) \{
110 var tag = cur[7][t];
110 var tag = cur[7][t];
111 tagspan += '<span class="tag">' + tag + '</span> ';
111 tagspan += '<span class="tag">' + tag + '</span> ';
112 }
112 }
113 }
113 }
114 if (cur[8].length) \{
114 if (cur[8].length) \{
115 for (var b in cur[8]) \{
115 for (var b in cur[8]) \{
116 var bookmark = cur[8][b];
116 var bookmark = cur[8][b];
117 tagspan += '<span class="tag">' + bookmark + '</span> ';
117 tagspan += '<span class="tag">' + bookmark + '</span> ';
118 }
118 }
119 }
119 }
120 tagspan += '</span>';
120 tagspan += '</span>';
121 }
121 }
122
122
123 item = item.replace(/_TAGS/, tagspan);
123 item = item.replace(/_TAGS/, tagspan);
124 return [bg, item];
124 return [bg, item];
125
125
126 }
126 }
127
127
128 graph.render(data);
128 graph.render(data);
129
129
130 // stop hiding script -->
130 // stop hiding script -->
131 </script>
131 </script>
132
132
133 <div class="navigate">
133 <div class="navigate">
134 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
134 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
135 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
135 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
136 | rev {rev}: {changenav%navgraph}
136 | rev {rev}: {changenav%navgraph}
137 </div>
137 </div>
138
138
139 </div>
139 </div>
140 </div>
140 </div>
141
141
142 {footer}
142 {footer}
@@ -1,97 +1,97 b''
1 {header}
1 {header}
2 <title>{repo|escape}: graph</title>
2 <title>{repo|escape}: graph</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-tags" title="Atom feed for {repo|escape}: tags">
4 href="{url}atom-tags" title="Atom feed for {repo|escape}: tags">
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-tags" title="RSS feed for {repo|escape}: tags">
6 href="{url}rss-tags" title="RSS feed for {repo|escape}: tags">
7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
8 </head>
8 </head>
9 <body>
9 <body>
10
10
11 <div class="buttons">
11 <div class="buttons">
12 <a href="{url}log{sessionvars%urlparameter}">changelog</a>
12 <a href="{url}log{sessionvars%urlparameter}">changelog</a>
13 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a>
13 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a>
14 <a href="{url}tags{sessionvars%urlparameter}">tags</a>
14 <a href="{url}tags{sessionvars%urlparameter}">tags</a>
15 <a href="{url}branches{sessionvars%urlparameter}">branches</a>
15 <a href="{url}branches{sessionvars%urlparameter}">branches</a>
16 <a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a>
16 <a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a>
17 <a href="{url}help{sessionvars%urlparameter}">help</a>
17 <a href="{url}help{sessionvars%urlparameter}">help</a>
18 </div>
18 </div>
19
19
20 <h2>graph</h2>
20 <h2>graph</h2>
21
21
22 <form action="{url}log">
22 <form action="{url}log">
23 {sessionvars%hiddenformentry}
23 {sessionvars%hiddenformentry}
24 <p>
24 <p>
25 <label for="search1">search:</label>
25 <label for="search1">search:</label>
26 <input name="rev" id="search1" type="text" size="30">
26 <input name="rev" id="search1" type="text" size="30">
27 navigate: <small class="navigate">{changenav%navgraph}</small>
27 navigate: <small class="navigate">{changenav%navgraph}</small>
28 </p>
28 </p>
29 </form>
29 </form>
30
30
31 <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
31 <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
32
32
33 <div id="wrapper">
33 <div id="wrapper">
34 <ul id="nodebgs"></ul>
34 <ul id="nodebgs"></ul>
35 <canvas id="graph" width="224" height="{canvasheight}"></canvas>
35 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
36 <ul id="graphnodes"></ul>
36 <ul id="graphnodes"></ul>
37 </div>
37 </div>
38
38
39 <script type="text/javascript" src="{staticurl}graph.js"></script>
39 <script type="text/javascript" src="{staticurl}graph.js"></script>
40 <script type="text/javascript">
40 <script type="text/javascript">
41 <!-- hide script content
41 <!-- hide script content
42
42
43 var data = {jsdata|json};
43 var data = {jsdata|json};
44 var graph = new Graph();
44 var graph = new Graph();
45 graph.scale({bg_height});
45 graph.scale({bg_height});
46
46
47 graph.edge = function(x0, y0, x1, y1, color) \{
47 graph.edge = function(x0, y0, x1, y1, color) \{
48
48
49 this.setColor(color, 0.0, 0.65);
49 this.setColor(color, 0.0, 0.65);
50 this.ctx.beginPath();
50 this.ctx.beginPath();
51 this.ctx.moveTo(x0, y0);
51 this.ctx.moveTo(x0, y0);
52 this.ctx.lineTo(x1, y1);
52 this.ctx.lineTo(x1, y1);
53 this.ctx.stroke();
53 this.ctx.stroke();
54
54
55 }
55 }
56
56
57 var revlink = '<li style="_STYLE"><span class="desc">';
57 var revlink = '<li style="_STYLE"><span class="desc">';
58 revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
58 revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
59 revlink += '</span><span class="info">_DATE, by _USER</span></li>';
59 revlink += '</span><span class="info">_DATE, by _USER</span></li>';
60
60
61 graph.vertex = function(x, y, color, parity, cur) \{
61 graph.vertex = function(x, y, color, parity, cur) \{
62
62
63 this.ctx.beginPath();
63 this.ctx.beginPath();
64 color = this.setColor(color, 0.25, 0.75);
64 color = this.setColor(color, 0.25, 0.75);
65 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
65 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
66 this.ctx.fill();
66 this.ctx.fill();
67
67
68 var bg = '<li class="bg parity' + parity + '"></li>';
68 var bg = '<li class="bg parity' + parity + '"></li>';
69 var left = (this.columns + 1) * this.bg_height;
69 var left = (this.columns + 1) * this.bg_height;
70 var nstyle = 'padding-left: ' + left + 'px;';
70 var nstyle = 'padding-left: ' + left + 'px;';
71 var item = revlink.replace(/_STYLE/, nstyle);
71 var item = revlink.replace(/_STYLE/, nstyle);
72 item = item.replace(/_PARITY/, 'parity' + parity);
72 item = item.replace(/_PARITY/, 'parity' + parity);
73 item = item.replace(/_NODEID/, cur[0]);
73 item = item.replace(/_NODEID/, cur[0]);
74 item = item.replace(/_NODEID/, cur[0]);
74 item = item.replace(/_NODEID/, cur[0]);
75 item = item.replace(/_DESC/, cur[3]);
75 item = item.replace(/_DESC/, cur[3]);
76 item = item.replace(/_USER/, cur[4]);
76 item = item.replace(/_USER/, cur[4]);
77 item = item.replace(/_DATE/, cur[5]);
77 item = item.replace(/_DATE/, cur[5]);
78
78
79 return [bg, item];
79 return [bg, item];
80
80
81 }
81 }
82
82
83 graph.render(data);
83 graph.render(data);
84
84
85 // stop hiding script -->
85 // stop hiding script -->
86 </script>
86 </script>
87
87
88 <form action="{url}log">
88 <form action="{url}log">
89 {sessionvars%hiddenformentry}
89 {sessionvars%hiddenformentry}
90 <p>
90 <p>
91 <label for="search1">search:</label>
91 <label for="search1">search:</label>
92 <input name="rev" id="search1" type="text" size="30">
92 <input name="rev" id="search1" type="text" size="30">
93 navigate: <small class="navigate">{changenav%navgraph}</small>
93 navigate: <small class="navigate">{changenav%navgraph}</small>
94 </p>
94 </p>
95 </form>
95 </form>
96
96
97 {footer}
97 {footer}
General Comments 0
You need to be logged in to leave comments. Login now