##// END OF EJS Templates
Added custom templates, did over check of code to make it work....
Marcin Kuzminski -
r20:bbaab750 default
parent child Browse files
Show More
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
@@ -0,0 +1,19 b''
1 if(!window.CanvasRenderingContext2D){(function(){var I=Math,i=I.round,L=I.sin,M=I.cos,m=10,A=m/2,Q={init:function(a){var b=a||document;if(/MSIE/.test(navigator.userAgent)&&!window.opera){var c=this;b.attachEvent("onreadystatechange",function(){c.r(b)})}},r:function(a){if(a.readyState=="complete"){if(!a.namespaces["s"]){a.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml")}var b=a.createStyleSheet();b.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\:*{behavior:url(#default#VML)}";
2 var c=a.getElementsByTagName("canvas");for(var d=0;d<c.length;d++){if(!c[d].getContext){this.initElement(c[d])}}}},q:function(a){var b=a.outerHTML,c=a.ownerDocument.createElement(b);if(b.slice(-2)!="/>"){var d="/"+a.tagName,e;while((e=a.nextSibling)&&e.tagName!=d){e.removeNode()}if(e){e.removeNode()}}a.parentNode.replaceChild(c,a);return c},initElement:function(a){a=this.q(a);a.getContext=function(){if(this.l){return this.l}return this.l=new K(this)};a.attachEvent("onpropertychange",V);a.attachEvent("onresize",
3 W);var b=a.attributes;if(b.width&&b.width.specified){a.style.width=b.width.nodeValue+"px"}else{a.width=a.clientWidth}if(b.height&&b.height.specified){a.style.height=b.height.nodeValue+"px"}else{a.height=a.clientHeight}return a}};function V(a){var b=a.srcElement;switch(a.propertyName){case "width":b.style.width=b.attributes.width.nodeValue+"px";b.getContext().clearRect();break;case "height":b.style.height=b.attributes.height.nodeValue+"px";b.getContext().clearRect();break}}function W(a){var b=a.srcElement;
4 if(b.firstChild){b.firstChild.style.width=b.clientWidth+"px";b.firstChild.style.height=b.clientHeight+"px"}}Q.init();var R=[];for(var E=0;E<16;E++){for(var F=0;F<16;F++){R[E*16+F]=E.toString(16)+F.toString(16)}}function J(){return[[1,0,0],[0,1,0],[0,0,1]]}function G(a,b){var c=J();for(var d=0;d<3;d++){for(var e=0;e<3;e++){var g=0;for(var h=0;h<3;h++){g+=a[d][h]*b[h][e]}c[d][e]=g}}return c}function N(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=
5 a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX=a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.d=a.d;b.e=a.e}function O(a){var b,c=1;a=String(a);if(a.substring(0,3)=="rgb"){var d=a.indexOf("(",3),e=a.indexOf(")",d+1),g=a.substring(d+1,e).split(",");b="#";for(var h=0;h<3;h++){b+=R[Number(g[h])]}if(g.length==4&&a.substr(3,1)=="a"){c=g[3]}}else{b=a}return[b,c]}function S(a){switch(a){case "butt":return"flat";case "round":return"round";
6 case "square":default:return"square"}}function K(a){this.a=J();this.m=[];this.k=[];this.c=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=m*1;this.globalAlpha=1;this.canvas=a;var b=a.ownerDocument.createElement("div");b.style.width=a.clientWidth+"px";b.style.height=a.clientHeight+"px";b.style.overflow="hidden";b.style.position="absolute";a.appendChild(b);this.j=b;this.d=1;this.e=1}var j=K.prototype;j.clearRect=function(){this.j.innerHTML=
7 "";this.c=[]};j.beginPath=function(){this.c=[]};j.moveTo=function(a,b){this.c.push({type:"moveTo",x:a,y:b});this.f=a;this.g=b};j.lineTo=function(a,b){this.c.push({type:"lineTo",x:a,y:b});this.f=a;this.g=b};j.bezierCurveTo=function(a,b,c,d,e,g){this.c.push({type:"bezierCurveTo",cp1x:a,cp1y:b,cp2x:c,cp2y:d,x:e,y:g});this.f=e;this.g=g};j.quadraticCurveTo=function(a,b,c,d){var e=this.f+0.6666666666666666*(a-this.f),g=this.g+0.6666666666666666*(b-this.g),h=e+(c-this.f)/3,l=g+(d-this.g)/3;this.bezierCurveTo(e,
8 g,h,l,c,d)};j.arc=function(a,b,c,d,e,g){c*=m;var h=g?"at":"wa",l=a+M(d)*c-A,n=b+L(d)*c-A,o=a+M(e)*c-A,f=b+L(e)*c-A;if(l==o&&!g){l+=0.125}this.c.push({type:h,x:a,y:b,radius:c,xStart:l,yStart:n,xEnd:o,yEnd:f})};j.rect=function(a,b,c,d){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath()};j.strokeRect=function(a,b,c,d){this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath();this.stroke()};j.fillRect=function(a,
9 b,c,d){this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath();this.fill()};j.createLinearGradient=function(a,b,c,d){var e=new H("gradient");return e};j.createRadialGradient=function(a,b,c,d,e,g){var h=new H("gradientradial");h.n=c;h.o=g;h.i.x=a;h.i.y=b;return h};j.drawImage=function(a,b){var c,d,e,g,h,l,n,o,f=a.runtimeStyle.width,k=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var q=a.width,r=a.height;a.runtimeStyle.width=
10 f;a.runtimeStyle.height=k;if(arguments.length==3){c=arguments[1];d=arguments[2];h=(l=0);n=(e=q);o=(g=r)}else if(arguments.length==5){c=arguments[1];d=arguments[2];e=arguments[3];g=arguments[4];h=(l=0);n=q;o=r}else if(arguments.length==9){h=arguments[1];l=arguments[2];n=arguments[3];o=arguments[4];c=arguments[5];d=arguments[6];e=arguments[7];g=arguments[8]}else{throw"Invalid number of arguments";}var s=this.b(c,d),t=[],v=10,w=10;t.push(" <g_vml_:group",' coordsize="',m*v,",",m*w,'"',' coordorigin="0,0"',
11 ' style="width:',v,";height:",w,";position:absolute;");if(this.a[0][0]!=1||this.a[0][1]){var x=[];x.push("M11='",this.a[0][0],"',","M12='",this.a[1][0],"',","M21='",this.a[0][1],"',","M22='",this.a[1][1],"',","Dx='",i(s.x/m),"',","Dy='",i(s.y/m),"'");var p=s,y=this.b(c+e,d),z=this.b(c,d+g),B=this.b(c+e,d+g);p.x=Math.max(p.x,y.x,z.x,B.x);p.y=Math.max(p.y,y.y,z.y,B.y);t.push("padding:0 ",i(p.x/m),"px ",i(p.y/m),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",x.join(""),", sizingmethod='clip');")}else{t.push("top:",
12 i(s.y/m),"px;left:",i(s.x/m),"px;")}t.push(' ">','<g_vml_:image src="',a.src,'"',' style="width:',m*e,";"," height:",m*g,';"',' cropleft="',h/q,'"',' croptop="',l/r,'"',' cropright="',(q-h-n)/q,'"',' cropbottom="',(r-l-o)/r,'"'," />","</g_vml_:group>");this.j.insertAdjacentHTML("BeforeEnd",t.join(""))};j.stroke=function(a){var b=[],c=O(a?this.fillStyle:this.strokeStyle),d=c[0],e=c[1]*this.globalAlpha,g=10,h=10;b.push("<g_vml_:shape",' fillcolor="',d,'"',' filled="',Boolean(a),'"',' style="position:absolute;width:',
13 g,";height:",h,';"',' coordorigin="0 0" coordsize="',m*g," ",m*h,'"',' stroked="',!a,'"',' strokeweight="',this.lineWidth,'"',' strokecolor="',d,'"',' path="');var l={x:null,y:null},n={x:null,y:null};for(var o=0;o<this.c.length;o++){var f=this.c[o];if(f.type=="moveTo"){b.push(" m ");var k=this.b(f.x,f.y);b.push(i(k.x),",",i(k.y))}else if(f.type=="lineTo"){b.push(" l ");var k=this.b(f.x,f.y);b.push(i(k.x),",",i(k.y))}else if(f.type=="close"){b.push(" x ")}else if(f.type=="bezierCurveTo"){b.push(" c ");
14 var k=this.b(f.x,f.y),q=this.b(f.cp1x,f.cp1y),r=this.b(f.cp2x,f.cp2y);b.push(i(q.x),",",i(q.y),",",i(r.x),",",i(r.y),",",i(k.x),",",i(k.y))}else if(f.type=="at"||f.type=="wa"){b.push(" ",f.type," ");var k=this.b(f.x,f.y),s=this.b(f.xStart,f.yStart),t=this.b(f.xEnd,f.yEnd);b.push(i(k.x-this.d*f.radius),",",i(k.y-this.e*f.radius)," ",i(k.x+this.d*f.radius),",",i(k.y+this.e*f.radius)," ",i(s.x),",",i(s.y)," ",i(t.x),",",i(t.y))}if(k){if(l.x==null||k.x<l.x){l.x=k.x}if(n.x==null||k.x>n.x){n.x=k.x}if(l.y==
15 null||k.y<l.y){l.y=k.y}if(n.y==null||k.y>n.y){n.y=k.y}}}b.push(' ">');if(typeof this.fillStyle=="object"){var v={x:"50%",y:"50%"},w=n.x-l.x,x=n.y-l.y,p=w>x?w:x;v.x=i(this.fillStyle.i.x/w*100+50)+"%";v.y=i(this.fillStyle.i.y/x*100+50)+"%";var y=[];if(this.fillStyle.p=="gradientradial"){var z=this.fillStyle.n/p*100,B=this.fillStyle.o/p*100-z}else{var z=0,B=100}var C={offset:null,color:null},D={offset:null,color:null};this.fillStyle.h.sort(function(T,U){return T.offset-U.offset});for(var o=0;o<this.fillStyle.h.length;o++){var u=
16 this.fillStyle.h[o];y.push(u.offset*B+z,"% ",u.color,",");if(u.offset>C.offset||C.offset==null){C.offset=u.offset;C.color=u.color}if(u.offset<D.offset||D.offset==null){D.offset=u.offset;D.color=u.color}}y.pop();b.push("<g_vml_:fill",' color="',D.color,'"',' color2="',C.color,'"',' type="',this.fillStyle.p,'"',' focusposition="',v.x,", ",v.y,'"',' colors="',y.join(""),'"',' opacity="',e,'" />')}else if(a){b.push('<g_vml_:fill color="',d,'" opacity="',e,'" />')}else{b.push("<g_vml_:stroke",' opacity="',
17 e,'"',' joinstyle="',this.lineJoin,'"',' miterlimit="',this.miterLimit,'"',' endcap="',S(this.lineCap),'"',' weight="',this.lineWidth,'px"',' color="',d,'" />')}b.push("</g_vml_:shape>");this.j.insertAdjacentHTML("beforeEnd",b.join(""));this.c=[]};j.fill=function(){this.stroke(true)};j.closePath=function(){this.c.push({type:"close"})};j.b=function(a,b){return{x:m*(a*this.a[0][0]+b*this.a[1][0]+this.a[2][0])-A,y:m*(a*this.a[0][1]+b*this.a[1][1]+this.a[2][1])-A}};j.save=function(){var a={};N(this,a);
18 this.k.push(a);this.m.push(this.a);this.a=G(J(),this.a)};j.restore=function(){N(this.k.pop(),this);this.a=this.m.pop()};j.translate=function(a,b){var c=[[1,0,0],[0,1,0],[a,b,1]];this.a=G(c,this.a)};j.rotate=function(a){var b=M(a),c=L(a),d=[[b,c,0],[-c,b,0],[0,0,1]];this.a=G(d,this.a)};j.scale=function(a,b){this.d*=a;this.e*=b;var c=[[a,0,0],[0,b,0],[0,0,1]];this.a=G(c,this.a)};j.clip=function(){};j.arcTo=function(){};j.createPattern=function(){return new P};function H(a){this.p=a;this.n=0;this.o=
19 0;this.h=[];this.i={x:0,y:0}}H.prototype.addColorStop=function(a,b){b=O(b);this.h.push({offset:1-a,color:b})};function P(){}G_vmlCanvasManager=Q;CanvasRenderingContext2D=K;CanvasGradient=H;CanvasPattern=P})()};
@@ -0,0 +1,137 b''
1 // branch_renderer.js - Rendering of branch DAGs on the client side
2 //
3 // Copyright 2008 Dirkjan Ochtman <dirkjan AT ochtman DOT nl>
4 // Copyright 2006 Alexander Schremmer <alex AT alexanderweb DOT de>
5 //
6 // derived from code written by Scott James Remnant <scott@ubuntu.com>
7 // Copyright 2005 Canonical Ltd.
8 //
9 // This software may be used and distributed according to the terms
10 // of the GNU General Public License, incorporated herein by reference.
11
12 var colors = [
13 [ 1.0, 0.0, 0.0 ],
14 [ 1.0, 1.0, 0.0 ],
15 [ 0.0, 1.0, 0.0 ],
16 [ 0.0, 1.0, 1.0 ],
17 [ 0.0, 0.0, 1.0 ],
18 [ 1.0, 0.0, 1.0 ]
19 ];
20
21 function Graph() {
22
23 this.canvas = document.getElementById('graph');
24 if (navigator.userAgent.indexOf('MSIE') >= 0) this.canvas = window.G_vmlCanvasManager.initElement(this.canvas);
25 this.ctx = this.canvas.getContext('2d');
26 this.ctx.strokeStyle = 'rgb(0, 0, 0)';
27 this.ctx.fillStyle = 'rgb(0, 0, 0)';
28 this.cur = [0, 0];
29 this.line_width = 3;
30 this.bg = [0, 4];
31 this.cell = [2, 0];
32 this.columns = 0;
33 this.revlink = '';
34
35 this.scale = function(height) {
36 this.bg_height = height;
37 this.box_size = Math.floor(this.bg_height / 1.2);
38 this.cell_height = this.box_size;
39 }
40
41 function colorPart(num) {
42 num *= 255
43 num = num < 0 ? 0 : num;
44 num = num > 255 ? 255 : num;
45 var digits = Math.round(num).toString(16);
46 if (num < 16) {
47 return '0' + digits;
48 } else {
49 return digits;
50 }
51 }
52
53 this.setColor = function(color, bg, fg) {
54
55 // Set the colour.
56 //
57 // Picks a distinct colour based on an internal wheel; the bg
58 // parameter provides the value that should be assigned to the 'zero'
59 // colours and the fg parameter provides the multiplier that should be
60 // applied to the foreground colours.
61
62 color %= colors.length;
63 var red = (colors[color][0] * fg) || bg;
64 var green = (colors[color][1] * fg) || bg;
65 var blue = (colors[color][2] * fg) || bg;
66 red = Math.round(red * 255);
67 green = Math.round(green * 255);
68 blue = Math.round(blue * 255);
69 var s = 'rgb(' + red + ', ' + green + ', ' + blue + ')';
70 this.ctx.strokeStyle = s;
71 this.ctx.fillStyle = s;
72 return s;
73
74 }
75
76 this.render = function(data) {
77
78 var backgrounds = '';
79 var nodedata = '';
80
81 for (var i in data) {
82
83 var parity = i % 2;
84 this.cell[1] += this.bg_height;
85 this.bg[1] += this.bg_height;
86
87 var cur = data[i];
88 var node = cur[1];
89 var edges = cur[2];
90 var fold = false;
91
92 for (var j in edges) {
93
94 line = edges[j];
95 start = line[0];
96 end = line[1];
97 color = line[2];
98
99 if (end > this.columns || start > this.columns) {
100 this.columns += 1;
101 }
102
103 if (start == this.columns && start > end) {
104 var fold = true;
105 }
106
107 x0 = this.cell[0] + this.box_size * start + this.box_size / 2;
108 y0 = this.bg[1] - this.bg_height / 2;
109 x1 = this.cell[0] + this.box_size * end + this.box_size / 2;
110 y1 = this.bg[1] + this.bg_height / 2;
111
112 this.edge(x0, y0, x1, y1, color);
113
114 }
115
116 // Draw the revision node in the right column
117
118 column = node[0]
119 color = node[1]
120
121 radius = this.box_size / 8;
122 x = this.cell[0] + this.box_size * column + this.box_size / 2;
123 y = this.bg[1] - this.bg_height / 2;
124 var add = this.vertex(x, y, color, parity, cur);
125 backgrounds += add[0];
126 nodedata += add[1];
127
128 if (fold) this.columns -= 1;
129
130 }
131
132 document.getElementById('nodebgs').innerHTML += backgrounds;
133 document.getElementById('graphnodes').innerHTML += nodedata;
134
135 }
136
137 }
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
@@ -0,0 +1,265 b''
1 body {
2 margin: 0;
3 padding: 0;
4 background: black url(background.png) repeat-x;
5 font-family: sans-serif;
6 }
7
8 .container {
9 padding-right: 150px;
10 }
11
12 .main {
13 position: relative;
14 background: white;
15 padding: 2em;
16 border-right: 15px solid black;
17 border-bottom: 15px solid black;
18 }
19
20 #.main {
21 width: 98%;
22 }
23
24 .overflow {
25 width: 100%;
26 overflow: auto;
27 }
28
29 .menu {
30 background: #999;
31 padding: 10px;
32 width: 75px;
33 margin: 0;
34 font-size: 80%;
35 text-align: left;
36 position: fixed;
37 top: 27px;
38 left: auto;
39 right: 27px;
40 }
41
42 #.menu {
43 position: absolute !important;
44 top:expression(eval(document.body.scrollTop + 27));
45 }
46
47 .menu ul {
48 list-style: none;
49 padding: 0;
50 margin: 10px 0 0 0;
51 }
52
53 .menu li {
54 margin-bottom: 3px;
55 padding: 2px 4px;
56 background: white;
57 color: black;
58 font-weight: normal;
59 }
60
61 .menu li.active {
62 background: black;
63 color: white;
64 }
65
66 .menu img {
67 width: 75px;
68 height: 90px;
69 border: 0;
70 }
71
72 .menu a { color: black; display: block; }
73
74 .search {
75 position: absolute;
76 top: .7em;
77 right: 2em;
78 }
79
80 form.search div#hint {
81 display: none;
82 position: absolute;
83 top: 40px;
84 right: 0px;
85 width: 190px;
86 padding: 5px;
87 background: #ffc;
88 font-size: 70%;
89 border: 1px solid yellow;
90 -moz-border-radius: 5px; /* this works only in camino/firefox */
91 -webkit-border-radius: 5px; /* this is just for Safari */
92 }
93
94 form.search:hover div#hint { display: block; }
95
96 a { text-decoration:none; }
97 .age { white-space:nowrap; }
98 .date { white-space:nowrap; }
99 .indexlinks { white-space:nowrap; }
100 .parity0 { background-color: #f0f0f0; }
101 .parity1 { background-color: white; }
102 .plusline { color: green; }
103 .minusline { color: #dc143c; } /* crimson */
104 .atline { color: purple; }
105
106 .navigate {
107 text-align: right;
108 font-size: 60%;
109 margin: 1em 0;
110 }
111
112 .tag {
113 color: #999;
114 font-size: 70%;
115 font-weight: normal;
116 margin-left: .5em;
117 vertical-align: baseline;
118 }
119
120 .branchhead {
121 color: #000;
122 font-size: 80%;
123 font-weight: normal;
124 margin-left: .5em;
125 vertical-align: baseline;
126 }
127
128 ul#graphnodes .branchhead {
129 font-size: 75%;
130 }
131
132 .branchname {
133 color: #000;
134 font-size: 60%;
135 font-weight: normal;
136 margin-left: .5em;
137 vertical-align: baseline;
138 }
139
140 h3 .branchname {
141 font-size: 80%;
142 }
143
144 /* Common */
145 pre { margin: 0; }
146
147 h2 { font-size: 120%; border-bottom: 1px solid #999; }
148 h2 a { color: #000; }
149 h3 {
150 margin-top: -.7em;
151 font-size: 100%;
152 }
153
154 /* log and tags tables */
155 .bigtable {
156 border-bottom: 1px solid #999;
157 border-collapse: collapse;
158 font-size: 90%;
159 width: 100%;
160 font-weight: normal;
161 text-align: left;
162 }
163
164 .bigtable td {
165 vertical-align: top;
166 }
167
168 .bigtable th {
169 padding: 1px 4px;
170 border-bottom: 1px solid #999;
171 }
172 .bigtable tr { border: none; }
173 .bigtable .age { width: 6em; }
174 .bigtable .author { width: 12em; }
175 .bigtable .description { }
176 .bigtable .node { width: 5em; font-family: monospace;}
177 .bigtable .lineno { width: 2em; text-align: right;}
178 .bigtable .lineno a { color: #999; font-size: smaller; font-family: monospace;}
179 .bigtable .permissions { width: 8em; text-align: left;}
180 .bigtable .size { width: 5em; text-align: right; }
181 .bigtable .annotate { text-align: right; }
182 .bigtable td.annotate { font-size: smaller; }
183 .bigtable td.source { font-size: inherit; }
184
185 .source, .sourcefirst, .sourcelast {
186 font-family: monospace;
187 white-space: pre;
188 padding: 1px 4px;
189 font-size: 90%;
190 }
191 .sourcefirst { border-bottom: 1px solid #999; font-weight: bold; }
192 .sourcelast { border-top: 1px solid #999; }
193 .source a { color: #999; font-size: smaller; font-family: monospace;}
194 .bottomline { border-bottom: 1px solid #999; }
195
196 .fileline { font-family: monospace; }
197 .fileline img { border: 0; }
198
199 .tagEntry .closed { color: #99f; }
200
201 /* Changeset entry */
202 #changesetEntry {
203 border-collapse: collapse;
204 font-size: 90%;
205 width: 100%;
206 margin-bottom: 1em;
207 }
208
209 #changesetEntry th {
210 padding: 1px 4px;
211 width: 4em;
212 text-align: right;
213 font-weight: normal;
214 color: #999;
215 margin-right: .5em;
216 vertical-align: top;
217 }
218
219 div.description {
220 border-left: 3px solid #999;
221 margin: 1em 0 1em 0;
222 padding: .3em;
223 }
224
225 /* Graph */
226 div#wrapper {
227 position: relative;
228 border-top: 1px solid black;
229 border-bottom: 1px solid black;
230 margin: 0;
231 padding: 0;
232 }
233
234 canvas {
235 position: absolute;
236 z-index: 5;
237 top: -0.7em;
238 margin: 0;
239 }
240
241 ul#graphnodes {
242 position: absolute;
243 z-index: 10;
244 top: -1.0em;
245 list-style: none inside none;
246 padding: 0;
247 }
248
249 ul#nodebgs {
250 list-style: none inside none;
251 padding: 0;
252 margin: 0;
253 top: -0.7em;
254 }
255
256 ul#graphnodes li, ul#nodebgs li {
257 height: 39px;
258 }
259
260 ul#graphnodes li .info {
261 display: block;
262 font-size: 70%;
263 position: relative;
264 top: -3px;
265 }
@@ -0,0 +1,123 b''
1 body { font-family: sans-serif; font-size: 12px; margin:0px; border:solid #d9d8d1; border-width:1px; margin:10px; }
2 a { color:#0000cc; }
3 a:hover, a:visited, a:active { color:#880000; }
4 div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; }
5 div.page_header a:visited { color:#0000cc; }
6 div.page_header a:hover { color:#880000; }
7 div.page_nav { padding:8px; }
8 div.page_nav a:visited { color:#0000cc; }
9 div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px}
10 div.page_footer { padding:4px 8px; background-color: #d9d8d1; }
11 div.page_footer_text { float:left; color:#555555; font-style:italic; }
12 div.page_body { padding:8px; }
13 div.title, a.title {
14 display:block; padding:6px 8px;
15 font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000;
16 }
17 a.title:hover { background-color: #d9d8d1; }
18 div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; }
19 div.log_body { padding:8px 8px 8px 150px; }
20 .age { white-space:nowrap; }
21 span.age { position:relative; float:left; width:142px; font-style:italic; }
22 div.log_link {
23 padding:0px 8px;
24 font-size:10px; font-family:sans-serif; font-style:normal;
25 position:relative; float:left; width:136px;
26 }
27 div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; }
28 a.list { text-decoration:none; color:#000000; }
29 a.list:hover { text-decoration:underline; color:#880000; }
30 table { padding:8px 4px; }
31 th { padding:2px 5px; font-size:12px; text-align:left; }
32 tr.light:hover, .parity0:hover { background-color:#edece6; }
33 tr.dark, .parity1 { background-color:#f6f6f0; }
34 tr.dark:hover, .parity1:hover { background-color:#edece6; }
35 td { padding:2px 5px; font-size:12px; vertical-align:top; }
36 td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; }
37 td.indexlinks { white-space: nowrap; }
38 td.indexlinks a {
39 padding: 2px 5px; line-height: 10px;
40 border: 1px solid;
41 color: #ffffff; background-color: #7777bb;
42 border-color: #aaaadd #333366 #333366 #aaaadd;
43 font-weight: bold; text-align: center; text-decoration: none;
44 font-size: 10px;
45 }
46 td.indexlinks a:hover { background-color: #6666aa; }
47 div.pre { font-family:monospace; font-size:12px; white-space:pre; }
48 div.diff_info { font-family:monospace; color:#000099; background-color:#edece6; font-style:italic; }
49 div.index_include { border:solid #d9d8d1; border-width:0px 0px 1px; padding:12px 8px; }
50 div.search { margin:4px 8px; position:absolute; top:56px; right:12px }
51 .linenr { color:#999999; text-decoration:none }
52 div.rss_logo { float: right; white-space: nowrap; }
53 div.rss_logo a {
54 padding:3px 6px; line-height:10px;
55 border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
56 color:#ffffff; background-color:#ff6600;
57 font-weight:bold; font-family:sans-serif; font-size:10px;
58 text-align:center; text-decoration:none;
59 }
60 div.rss_logo a:hover { background-color:#ee5500; }
61 pre { margin: 0; }
62 span.logtags span {
63 padding: 0px 4px;
64 font-size: 10px;
65 font-weight: normal;
66 border: 1px solid;
67 background-color: #ffaaff;
68 border-color: #ffccff #ff00ee #ff00ee #ffccff;
69 }
70 span.logtags span.tagtag {
71 background-color: #ffffaa;
72 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
73 }
74 span.logtags span.branchtag {
75 background-color: #aaffaa;
76 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
77 }
78 span.logtags span.inbranchtag {
79 background-color: #d5dde6;
80 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
81 }
82
83 /* Graph */
84 div#wrapper {
85 position: relative;
86 margin: 0;
87 padding: 0;
88 margin-top: 3px;
89 }
90
91 canvas {
92 position: absolute;
93 z-index: 5;
94 top: -0.9em;
95 margin: 0;
96 }
97
98 ul#nodebgs {
99 list-style: none inside none;
100 padding: 0;
101 margin: 0;
102 top: -0.7em;
103 }
104
105 ul#graphnodes li, ul#nodebgs li {
106 height: 39px;
107 }
108
109 ul#graphnodes {
110 position: absolute;
111 z-index: 10;
112 top: -0.8em;
113 list-style: none inside none;
114 padding: 0;
115 }
116
117 ul#graphnodes li .info {
118 display: block;
119 font-size: 100%;
120 position: relative;
121 top: -3px;
122 font-style: italic;
123 }
@@ -0,0 +1,472 b''
1 /*** Initial Settings ***/
2 * {
3 margin: 0;
4 padding: 0;
5 font-weight: normal;
6 font-style: normal;
7 }
8
9 html {
10 font-size: 100%;
11 font-family: sans-serif;
12 }
13
14 body {
15 font-size: 77%;
16 margin: 15px 50px;
17 background: #4B4B4C;
18 }
19
20 a {
21 color:#0000cc;
22 text-decoration: none;
23 }
24 /*** end of Initial Settings ***/
25
26
27 /** common settings **/
28 div#container {
29 background: #FFFFFF;
30 position: relative;
31 color: #666;
32 }
33
34 div.page-header {
35 padding: 50px 20px 0;
36 background: #006699 top left repeat-x;
37 position: relative;
38 }
39 div.page-header h1 {
40 margin: 10px 0 30px;
41 font-size: 1.8em;
42 font-weight: bold;
43 font-family: osaka,'MS P Gothic', Georgia, serif;
44 letter-spacing: 1px;
45 color: #DDD;
46 }
47 div.page-header h1 a {
48 font-weight: bold;
49 color: #FFF;
50 }
51 div.page-header a {
52 text-decoration: none;
53 }
54
55 div.page-header form {
56 position: absolute;
57 margin-bottom: 2px;
58 bottom: 0;
59 right: 20px;
60 }
61 div.page-header form label {
62 color: #DDD;
63 }
64 div.page-header form input {
65 padding: 2px;
66 border: solid 1px #DDD;
67 }
68 div.page-header form dl {
69 overflow: hidden;
70 }
71 div.page-header form dl dt {
72 font-size: 1.2em;
73 }
74 div.page-header form dl dt,
75 div.page-header form dl dd {
76 margin: 0 0 0 5px;
77 float: left;
78 height: 24px;
79 line-height: 20px;
80 }
81
82 ul.page-nav {
83 margin: 10px 0 0 0;
84 list-style-type: none;
85 overflow: hidden;
86 width: 800px;
87 }
88 ul.page-nav li {
89 margin: 0 2px 0 0;
90 float: left;
91 width: 80px;
92 height: 24px;
93 font-size: 1.1em;
94 line-height: 24px;
95 text-align: center;
96 }
97 ul.page-nav li.current {
98 background: #FFF;
99 }
100 ul.page-nav li a {
101 height: 24px;
102 color: #666;
103 background: #DDD;
104 display: block;
105 text-decoration: none;
106 }
107 ul.page-nav li a:hover {
108 color:#333;
109 background: #FFF;
110 }
111
112 ul.submenu {
113 margin: 10px 0 -10px 20px;
114 list-style-type: none;
115 }
116 ul.submenu li {
117 margin: 0 10px 0 0;
118 font-size: 1.2em;
119 display: inline;
120 }
121
122 h2 {
123 margin: 20px 0 10px;
124 height: 30px;
125 line-height: 30px;
126 text-indent: 20px;
127 background: #FFF;
128 font-size: 1.2em;
129 border-top: dotted 1px #D5E1E6;
130 font-weight: bold;
131 }
132 h2.no-link {
133 color:#006699;
134 }
135 h2.no-border {
136 color: #FFF;
137 background: #006699;
138 border: 0;
139 }
140 h2 a {
141 font-weight:bold;
142 color:#006699;
143 }
144
145 div.page-path {
146 text-align: right;
147 padding: 20px 30px 10px 0;
148 border:solid #d9d8d1;
149 border-width:0px 0px 1px;
150 font-size: 1.2em;
151 }
152
153 div.page-footer {
154 margin: 50px 0 0;
155 position: relative;
156 }
157 div.page-footer p {
158 position: relative;
159 left: 20px;
160 bottom: 5px;
161 font-size: 1.2em;
162 }
163
164 ul.rss-logo {
165 position: absolute;
166 top: -10px;
167 right: 20px;
168 height: 20px;
169 list-style-type: none;
170 }
171 ul.rss-logo li {
172 display: inline;
173 }
174 ul.rss-logo li a {
175 padding: 3px 6px;
176 line-height: 10px;
177 border:1px solid;
178 border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
179 color:#ffffff;
180 background-color:#ff6600;
181 font-weight:bold;
182 font-family:sans-serif;
183 font-size:10px;
184 text-align:center;
185 text-decoration:none;
186 }
187 div.rss-logo li a:hover {
188 background-color:#ee5500;
189 }
190
191 p.normal {
192 margin: 20px 0 20px 30px;
193 font-size: 1.2em;
194 }
195
196 table {
197 margin: 10px 0 0 20px;
198 width: 95%;
199 border-collapse: collapse;
200 }
201 table tr td {
202 font-size: 1.1em;
203 }
204 table tr td.nowrap {
205 white-space: nowrap;
206 }
207 /*
208 table tr.parity0:hover,
209 table tr.parity1:hover {
210 background: #D5E1E6;
211 }
212 */
213 table tr.parity0 {
214 background: #F1F6F7;
215 }
216 table tr.parity1 {
217 background: #FFFFFF;
218 }
219 table tr td {
220 padding: 5px 5px;
221 }
222 table.annotated tr td {
223 padding: 0px 5px;
224 }
225
226 span.logtags span {
227 padding: 2px 6px;
228 font-weight: normal;
229 font-size: 11px;
230 border: 1px solid;
231 background-color: #ffaaff;
232 border-color: #ffccff #ff00ee #ff00ee #ffccff;
233 }
234 span.logtags span.tagtag {
235 background-color: #ffffaa;
236 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
237 }
238 span.logtags span.branchtag {
239 background-color: #aaffaa;
240 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
241 }
242 span.logtags span.inbranchtag {
243 background-color: #d5dde6;
244 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
245 }
246
247 div.diff pre {
248 margin: 10px 0 0 0;
249 }
250 div.diff pre span {
251 font-family: monospace;
252 white-space: pre;
253 font-size: 1.2em;
254 padding: 3px 0;
255 }
256 td.source {
257 white-space: pre;
258 font-family: monospace;
259 margin: 10px 30px 0;
260 font-size: 1.2em;
261 font-family: monospace;
262 }
263 div.source div.parity0,
264 div.source div.parity1 {
265 padding: 1px;
266 font-size: 1.2em;
267 }
268 div.source div.parity0 {
269 background: #F1F6F7;
270 }
271 div.source div.parity1 {
272 background: #FFFFFF;
273 }
274 div.parity0:hover,
275 div.parity1:hover {
276 background: #D5E1E6;
277 }
278 .linenr {
279 color: #999;
280 text-align: right;
281 }
282 .lineno {
283 text-align: right;
284 }
285 .lineno a {
286 color: #999;
287 }
288 td.linenr {
289 width: 60px;
290 }
291
292 div#powered-by {
293 position: absolute;
294 width: 75px;
295 top: 15px;
296 right: 20px;
297 font-size: 1.2em;
298 }
299 div#powered-by a {
300 color: #EEE;
301 text-decoration: none;
302 }
303 div#powered-by a:hover {
304 text-decoration: underline;
305 }
306 /*
307 div#monoblue-corner-top-left {
308 position: absolute;
309 top: 0;
310 left: 0;
311 width: 10px;
312 height: 10px;
313 background: url(./monoblue-corner.png) top left no-repeat !important;
314 background: none;
315 }
316 div#monoblue-corner-top-right {
317 position: absolute;
318 top: 0;
319 right: 0;
320 width: 10px;
321 height: 10px;
322 background: url(./monoblue-corner.png) top right no-repeat !important;
323 background: none;
324 }
325 div#monoblue-corner-bottom-left {
326 position: absolute;
327 bottom: 0;
328 left: 0;
329 width: 10px;
330 height: 10px;
331 background: url(./monoblue-corner.png) bottom left no-repeat !important;
332 background: none;
333 }
334 div#monoblue-corner-bottom-right {
335 position: absolute;
336 bottom: 0;
337 right: 0;
338 width: 10px;
339 height: 10px;
340 background: url(./monoblue-corner.png) bottom right no-repeat !important;
341 background: none;
342 }
343 */
344 /** end of common settings **/
345
346 /** summary **/
347 dl.overview {
348 margin: 0 0 0 30px;
349 font-size: 1.1em;
350 overflow: hidden;
351 }
352 dl.overview dt,
353 dl.overview dd {
354 margin: 5px 0;
355 float: left;
356 }
357 dl.overview dt {
358 clear: left;
359 font-weight: bold;
360 width: 150px;
361 }
362 /** end of summary **/
363
364 /** chagelog **/
365 h3.changelog {
366 margin: 20px 0 5px 30px;
367 padding: 0 0 2px;
368 font-size: 1.4em;
369 border-bottom: dotted 1px #D5E1E6;
370 }
371 ul.changelog-entry {
372 margin: 0 0 10px 30px;
373 list-style-type: none;
374 position: relative;
375 }
376 ul.changelog-entry li span.revdate {
377 font-size: 1.1em;
378 }
379 ul.changelog-entry li.age {
380 position: absolute;
381 top: -25px;
382 right: 10px;
383 font-size: 1.4em;
384 color: #CCC;
385 font-weight: bold;
386 font-style: italic;
387 }
388 ul.changelog-entry li span.name {
389 font-size: 1.2em;
390 font-weight: bold;
391 }
392 ul.changelog-entry li.description {
393 margin: 10px 0 0;
394 font-size: 1.1em;
395 }
396 /** end of changelog **/
397
398 /** file **/
399 p.files {
400 margin: 0 0 0 20px;
401 font-size: 2.0em;
402 font-weight: bold;
403 }
404 /** end of file **/
405
406 /** changeset **/
407 h3.changeset {
408 margin: 20px 0 5px 20px;
409 padding: 0 0 2px;
410 font-size: 1.6em;
411 border-bottom: dotted 1px #D5E1E6;
412 }
413 p.changeset-age {
414 position: relative;
415 }
416 p.changeset-age span {
417 position: absolute;
418 top: -25px;
419 right: 10px;
420 font-size: 1.4em;
421 color: #CCC;
422 font-weight: bold;
423 font-style: italic;
424 }
425 p.description {
426 margin: 10px 30px 0 30px;
427 padding: 10px;
428 border: solid 1px #CCC;
429 font-size: 1.2em;
430 }
431 /** end of changeset **/
432
433 /** canvas **/
434 div#wrapper {
435 position: relative;
436 font-size: 1.2em;
437 }
438
439 canvas {
440 position: absolute;
441 z-index: 5;
442 top: -0.7em;
443 }
444
445 ul#nodebgs li.parity0 {
446 background: #F1F6F7;
447 }
448
449 ul#nodebgs li.parity1 {
450 background: #FFFFFF;
451 }
452
453 ul#graphnodes {
454 position: absolute;
455 z-index: 10;
456 top: 7px;
457 list-style: none inside none;
458 }
459
460 ul#nodebgs {
461 list-style: none inside none;
462 }
463
464 ul#graphnodes li, ul#nodebgs li {
465 height: 39px;
466 }
467
468 ul#graphnodes li .info {
469 display: block;
470 position: relative;
471 }
472 /** end of canvas **/
@@ -0,0 +1,472 b''
1 /*** Initial Settings ***/
2 * {
3 margin: 0;
4 padding: 0;
5 font-weight: normal;
6 font-style: normal;
7 }
8
9 html {
10 font-size: 100%;
11 font-family: sans-serif;
12 }
13
14 body {
15 font-size: 77%;
16 margin: 15px 50px;
17 background: #4B4B4C;
18 }
19
20 a {
21 color:#0000cc;
22 text-decoration: none;
23 }
24 /*** end of Initial Settings ***/
25
26
27 /** common settings **/
28 div#container {
29 background: #FFFFFF;
30 position: relative;
31 color: #666;
32 }
33
34 div.page-header {
35 padding: 50px 20px 0;
36 background: #006699 top left repeat-x;
37 position: relative;
38 }
39 div.page-header h1 {
40 margin: 10px 0 30px;
41 font-size: 1.8em;
42 font-weight: bold;
43 font-family: osaka,'MS P Gothic', Georgia, serif;
44 letter-spacing: 1px;
45 color: #DDD;
46 }
47 div.page-header h1 a {
48 font-weight: bold;
49 color: #FFF;
50 }
51 div.page-header a {
52 text-decoration: none;
53 }
54
55 div.page-header form {
56 position: absolute;
57 margin-bottom: 2px;
58 bottom: 0;
59 right: 20px;
60 }
61 div.page-header form label {
62 color: #DDD;
63 }
64 div.page-header form input {
65 padding: 2px;
66 border: solid 1px #DDD;
67 }
68 div.page-header form dl {
69 overflow: hidden;
70 }
71 div.page-header form dl dt {
72 font-size: 1.2em;
73 }
74 div.page-header form dl dt,
75 div.page-header form dl dd {
76 margin: 0 0 0 5px;
77 float: left;
78 height: 24px;
79 line-height: 20px;
80 }
81
82 ul.page-nav {
83 margin: 10px 0 0 0;
84 list-style-type: none;
85 overflow: hidden;
86 width: 800px;
87 }
88 ul.page-nav li {
89 margin: 0 2px 0 0;
90 float: left;
91 width: 80px;
92 height: 24px;
93 font-size: 1.1em;
94 line-height: 24px;
95 text-align: center;
96 }
97 ul.page-nav li.current {
98 background: #FFF;
99 }
100 ul.page-nav li a {
101 height: 24px;
102 color: #666;
103 background: #DDD;
104 display: block;
105 text-decoration: none;
106 }
107 ul.page-nav li a:hover {
108 color:#333;
109 background: #FFF;
110 }
111
112 ul.submenu {
113 margin: 10px 0 -10px 20px;
114 list-style-type: none;
115 }
116 ul.submenu li {
117 margin: 0 10px 0 0;
118 font-size: 1.2em;
119 display: inline;
120 }
121
122 h2 {
123 margin: 20px 0 10px;
124 height: 30px;
125 line-height: 30px;
126 text-indent: 20px;
127 background: #FFF;
128 font-size: 1.2em;
129 border-top: dotted 1px #D5E1E6;
130 font-weight: bold;
131 }
132 h2.no-link {
133 color:#006699;
134 }
135 h2.no-border {
136 color: #FFF;
137 background: #006699;
138 border: 0;
139 }
140 h2 a {
141 font-weight:bold;
142 color:#006699;
143 }
144
145 div.page-path {
146 text-align: right;
147 padding: 20px 30px 10px 0;
148 border:solid #d9d8d1;
149 border-width:0px 0px 1px;
150 font-size: 1.2em;
151 }
152
153 div.page-footer {
154 margin: 50px 0 0;
155 position: relative;
156 }
157 div.page-footer p {
158 position: relative;
159 left: 20px;
160 bottom: 5px;
161 font-size: 1.2em;
162 }
163
164 ul.rss-logo {
165 position: absolute;
166 top: -10px;
167 right: 20px;
168 height: 20px;
169 list-style-type: none;
170 }
171 ul.rss-logo li {
172 display: inline;
173 }
174 ul.rss-logo li a {
175 padding: 3px 6px;
176 line-height: 10px;
177 border:1px solid;
178 border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
179 color:#ffffff;
180 background-color:#ff6600;
181 font-weight:bold;
182 font-family:sans-serif;
183 font-size:10px;
184 text-align:center;
185 text-decoration:none;
186 }
187 div.rss-logo li a:hover {
188 background-color:#ee5500;
189 }
190
191 p.normal {
192 margin: 20px 0 20px 30px;
193 font-size: 1.2em;
194 }
195
196 table {
197 margin: 10px 0 0 20px;
198 width: 95%;
199 border-collapse: collapse;
200 }
201 table tr td {
202 font-size: 1.1em;
203 }
204 table tr td.nowrap {
205 white-space: nowrap;
206 }
207 /*
208 table tr.parity0:hover,
209 table tr.parity1:hover {
210 background: #D5E1E6;
211 }
212 */
213 table tr.parity0 {
214 background: #F1F6F7;
215 }
216 table tr.parity1 {
217 background: #FFFFFF;
218 }
219 table tr td {
220 padding: 5px 5px;
221 }
222 table.annotated tr td {
223 padding: 0px 5px;
224 }
225
226 span.logtags span {
227 padding: 2px 6px;
228 font-weight: normal;
229 font-size: 11px;
230 border: 1px solid;
231 background-color: #ffaaff;
232 border-color: #ffccff #ff00ee #ff00ee #ffccff;
233 }
234 span.logtags span.tagtag {
235 background-color: #ffffaa;
236 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
237 }
238 span.logtags span.branchtag {
239 background-color: #aaffaa;
240 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
241 }
242 span.logtags span.inbranchtag {
243 background-color: #d5dde6;
244 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
245 }
246
247 div.diff pre {
248 margin: 10px 0 0 0;
249 }
250 div.diff pre span {
251 font-family: monospace;
252 white-space: pre;
253 font-size: 1.2em;
254 padding: 3px 0;
255 }
256 td.source {
257 white-space: pre;
258 font-family: monospace;
259 margin: 10px 30px 0;
260 font-size: 1.2em;
261 font-family: monospace;
262 }
263 div.source div.parity0,
264 div.source div.parity1 {
265 padding: 1px;
266 font-size: 1.2em;
267 }
268 div.source div.parity0 {
269 background: #F1F6F7;
270 }
271 div.source div.parity1 {
272 background: #FFFFFF;
273 }
274 div.parity0:hover,
275 div.parity1:hover {
276 background: #D5E1E6;
277 }
278 .linenr {
279 color: #999;
280 text-align: right;
281 }
282 .lineno {
283 text-align: right;
284 }
285 .lineno a {
286 color: #999;
287 }
288 td.linenr {
289 width: 60px;
290 }
291
292 div#powered-by {
293 position: absolute;
294 width: 75px;
295 top: 15px;
296 right: 20px;
297 font-size: 1.2em;
298 }
299 div#powered-by a {
300 color: #EEE;
301 text-decoration: none;
302 }
303 div#powered-by a:hover {
304 text-decoration: underline;
305 }
306 /*
307 div#monoblue-corner-top-left {
308 position: absolute;
309 top: 0;
310 left: 0;
311 width: 10px;
312 height: 10px;
313 background: url(./monoblue-corner.png) top left no-repeat !important;
314 background: none;
315 }
316 div#monoblue-corner-top-right {
317 position: absolute;
318 top: 0;
319 right: 0;
320 width: 10px;
321 height: 10px;
322 background: url(./monoblue-corner.png) top right no-repeat !important;
323 background: none;
324 }
325 div#monoblue-corner-bottom-left {
326 position: absolute;
327 bottom: 0;
328 left: 0;
329 width: 10px;
330 height: 10px;
331 background: url(./monoblue-corner.png) bottom left no-repeat !important;
332 background: none;
333 }
334 div#monoblue-corner-bottom-right {
335 position: absolute;
336 bottom: 0;
337 right: 0;
338 width: 10px;
339 height: 10px;
340 background: url(./monoblue-corner.png) bottom right no-repeat !important;
341 background: none;
342 }
343 */
344 /** end of common settings **/
345
346 /** summary **/
347 dl.overview {
348 margin: 0 0 0 30px;
349 font-size: 1.1em;
350 overflow: hidden;
351 }
352 dl.overview dt,
353 dl.overview dd {
354 margin: 5px 0;
355 float: left;
356 }
357 dl.overview dt {
358 clear: left;
359 font-weight: bold;
360 width: 150px;
361 }
362 /** end of summary **/
363
364 /** chagelog **/
365 h3.changelog {
366 margin: 20px 0 5px 30px;
367 padding: 0 0 2px;
368 font-size: 1.4em;
369 border-bottom: dotted 1px #D5E1E6;
370 }
371 ul.changelog-entry {
372 margin: 0 0 10px 30px;
373 list-style-type: none;
374 position: relative;
375 }
376 ul.changelog-entry li span.revdate {
377 font-size: 1.1em;
378 }
379 ul.changelog-entry li.age {
380 position: absolute;
381 top: -25px;
382 right: 10px;
383 font-size: 1.4em;
384 color: #CCC;
385 font-weight: bold;
386 font-style: italic;
387 }
388 ul.changelog-entry li span.name {
389 font-size: 1.2em;
390 font-weight: bold;
391 }
392 ul.changelog-entry li.description {
393 margin: 10px 0 0;
394 font-size: 1.1em;
395 }
396 /** end of changelog **/
397
398 /** file **/
399 p.files {
400 margin: 0 0 0 20px;
401 font-size: 2.0em;
402 font-weight: bold;
403 }
404 /** end of file **/
405
406 /** changeset **/
407 h3.changeset {
408 margin: 20px 0 5px 20px;
409 padding: 0 0 2px;
410 font-size: 1.6em;
411 border-bottom: dotted 1px #D5E1E6;
412 }
413 p.changeset-age {
414 position: relative;
415 }
416 p.changeset-age span {
417 position: absolute;
418 top: -25px;
419 right: 10px;
420 font-size: 1.4em;
421 color: #CCC;
422 font-weight: bold;
423 font-style: italic;
424 }
425 p.description {
426 margin: 10px 30px 0 30px;
427 padding: 10px;
428 border: solid 1px #CCC;
429 font-size: 1.2em;
430 }
431 /** end of changeset **/
432
433 /** canvas **/
434 div#wrapper {
435 position: relative;
436 font-size: 1.2em;
437 }
438
439 canvas {
440 position: absolute;
441 z-index: 5;
442 top: -0.7em;
443 }
444
445 ul#nodebgs li.parity0 {
446 background: #F1F6F7;
447 }
448
449 ul#nodebgs li.parity1 {
450 background: #FFFFFF;
451 }
452
453 ul#graphnodes {
454 position: absolute;
455 z-index: 10;
456 top: 7px;
457 list-style: none inside none;
458 }
459
460 ul#nodebgs {
461 list-style: none inside none;
462 }
463
464 ul#graphnodes li, ul#nodebgs li {
465 height: 39px;
466 }
467
468 ul#graphnodes li .info {
469 display: block;
470 position: relative;
471 }
472 /** end of canvas **/
@@ -0,0 +1,254 b''
1 body {
2 margin: 0;
3 padding: 0;
4 background: white;
5 font-family: sans-serif;
6 }
7
8 .container {
9 padding-left: 115px;
10 }
11
12 .main {
13 position: relative;
14 background: white;
15 padding: 2em 2em 2em 0;
16 }
17
18 #.main {
19 width: 98%;
20 }
21
22 .overflow {
23 width: 100%;
24 overflow: auto;
25 }
26
27 .menu {
28 width: 90px;
29 margin: 0;
30 font-size: 80%;
31 text-align: left;
32 position: absolute;
33 top: 20px;
34 left: 20px;
35 right: auto;
36 }
37
38 .menu ul {
39 list-style: none;
40 padding: 0;
41 margin: 10px 0 0 0;
42 border-left: 2px solid #999;
43 }
44
45 .menu li {
46 margin-bottom: 3px;
47 padding: 2px 4px;
48 background: white;
49 color: black;
50 font-weight: normal;
51 }
52
53 .menu li.active {
54 font-weight: bold;
55 }
56
57 .menu img {
58 width: 75px;
59 height: 90px;
60 border: 0;
61 }
62
63 .menu a { color: black; display: block; }
64
65 .search {
66 position: absolute;
67 top: .7em;
68 right: 2em;
69 }
70
71 form.search div#hint {
72 display: none;
73 position: absolute;
74 top: 40px;
75 right: 0px;
76 width: 190px;
77 padding: 5px;
78 background: #ffc;
79 font-size: 70%;
80 border: 1px solid yellow;
81 -moz-border-radius: 5px; /* this works only in camino/firefox */
82 -webkit-border-radius: 5px; /* this is just for Safari */
83 }
84
85 form.search:hover div#hint { display: block; }
86
87 a { text-decoration:none; }
88 .age { white-space:nowrap; }
89 .date { white-space:nowrap; }
90 .indexlinks { white-space:nowrap; }
91 .parity0 { background-color: #f0f0f0; }
92 .parity1 { background-color: white; }
93 .plusline { color: green; }
94 .minusline { color: #dc143c; } /* crimson */
95 .atline { color: purple; }
96
97 .navigate {
98 text-align: right;
99 font-size: 60%;
100 margin: 1em 0;
101 }
102
103 .tag {
104 color: #999;
105 font-size: 70%;
106 font-weight: normal;
107 margin-left: .5em;
108 vertical-align: baseline;
109 }
110
111 .branchhead {
112 color: #000;
113 font-size: 80%;
114 font-weight: normal;
115 margin-left: .5em;
116 vertical-align: baseline;
117 }
118
119 ul#graphnodes .branchhead {
120 font-size: 75%;
121 }
122
123 .branchname {
124 color: #000;
125 font-size: 60%;
126 font-weight: normal;
127 margin-left: .5em;
128 vertical-align: baseline;
129 }
130
131 h3 .branchname {
132 font-size: 80%;
133 }
134
135 /* Common */
136 pre { margin: 0; }
137
138 h2 { font-size: 120%; border-bottom: 1px solid #999; }
139 h2 a { color: #000; }
140 h3 {
141 margin-top: -.7em;
142 font-size: 100%;
143 }
144
145 /* log and tags tables */
146 .bigtable {
147 border-bottom: 1px solid #999;
148 border-collapse: collapse;
149 font-size: 90%;
150 width: 100%;
151 font-weight: normal;
152 text-align: left;
153 }
154
155 .bigtable td {
156 vertical-align: top;
157 }
158
159 .bigtable th {
160 padding: 1px 4px;
161 border-bottom: 1px solid #999;
162 }
163 .bigtable tr { border: none; }
164 .bigtable .age { width: 7em; }
165 .bigtable .author { width: 12em; }
166 .bigtable .description { }
167 .bigtable .node { width: 5em; font-family: monospace;}
168 .bigtable .permissions { width: 8em; text-align: left;}
169 .bigtable .size { width: 5em; text-align: right; }
170 .bigtable .annotate { text-align: right; }
171 .bigtable td.annotate { font-size: smaller; }
172 .bigtable td.source { font-size: inherit; }
173
174 .source, .sourcefirst, .sourcelast {
175 font-family: monospace;
176 white-space: pre;
177 padding: 1px 4px;
178 font-size: 90%;
179 }
180 .sourcefirst { border-bottom: 1px solid #999; font-weight: bold; }
181 .sourcelast { border-top: 1px solid #999; }
182 .source a { color: #999; font-size: smaller; font-family: monospace;}
183 .bottomline { border-bottom: 1px solid #999; }
184
185 .fileline { font-family: monospace; }
186 .fileline img { border: 0; }
187
188 .tagEntry .closed { color: #99f; }
189
190 /* Changeset entry */
191 #changesetEntry {
192 border-collapse: collapse;
193 font-size: 90%;
194 width: 100%;
195 margin-bottom: 1em;
196 }
197
198 #changesetEntry th {
199 padding: 1px 4px;
200 width: 4em;
201 text-align: right;
202 font-weight: normal;
203 color: #999;
204 margin-right: .5em;
205 vertical-align: top;
206 }
207
208 div.description {
209 border-left: 2px solid #999;
210 margin: 1em 0 1em 0;
211 padding: .3em;
212 }
213
214 /* Graph */
215 div#wrapper {
216 position: relative;
217 border-top: 1px solid black;
218 border-bottom: 1px solid black;
219 margin: 0;
220 padding: 0;
221 }
222
223 canvas {
224 position: absolute;
225 z-index: 5;
226 top: -0.7em;
227 margin: 0;
228 }
229
230 ul#graphnodes {
231 position: absolute;
232 z-index: 10;
233 top: -1.0em;
234 list-style: none inside none;
235 padding: 0;
236 }
237
238 ul#nodebgs {
239 list-style: none inside none;
240 padding: 0;
241 margin: 0;
242 top: -0.7em;
243 }
244
245 ul#graphnodes li, ul#nodebgs li {
246 height: 39px;
247 }
248
249 ul#graphnodes li .info {
250 display: block;
251 font-size: 70%;
252 position: relative;
253 top: -3px;
254 }
@@ -0,0 +1,105 b''
1 a { text-decoration:none; }
2 .age { white-space:nowrap; }
3 .date { white-space:nowrap; }
4 .indexlinks { white-space:nowrap; }
5 .parity0 { background-color: #ddd; }
6 .parity1 { background-color: #eee; }
7 .lineno { width: 60px; color: #aaa; font-size: smaller;
8 text-align: right; }
9 .plusline { color: green; }
10 .minusline { color: red; }
11 .atline { color: purple; }
12 .annotate { font-size: smaller; text-align: right; padding-right: 1em; }
13 .buttons a {
14 background-color: #666;
15 padding: 2pt;
16 color: white;
17 font-family: sans;
18 font-weight: bold;
19 }
20 .navigate a {
21 background-color: #ccc;
22 padding: 2pt;
23 font-family: sans;
24 color: black;
25 }
26
27 .metatag {
28 background-color: #888;
29 color: white;
30 text-align: right;
31 }
32
33 /* Common */
34 pre { margin: 0; }
35
36 .logo {
37 float: right;
38 clear: right;
39 }
40
41 /* Changelog/Filelog entries */
42 .logEntry { width: 100%; }
43 .logEntry .age { width: 15%; }
44 .logEntry th { font-weight: normal; text-align: right; vertical-align: top; }
45 .logEntry th.age, .logEntry th.firstline { font-weight: bold; }
46 .logEntry th.firstline { text-align: left; width: inherit; }
47
48 /* Shortlog entries */
49 .slogEntry { width: 100%; }
50 .slogEntry .age { width: 8em; }
51 .slogEntry td { font-weight: normal; text-align: left; vertical-align: top; }
52 .slogEntry td.author { width: 15em; }
53
54 /* Tag entries */
55 #tagEntries { list-style: none; margin: 0; padding: 0; }
56 #tagEntries .tagEntry { list-style: none; margin: 0; padding: 0; }
57
58 /* Changeset entry */
59 #changesetEntry { }
60 #changesetEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
61 #changesetEntry th.files, #changesetEntry th.description { vertical-align: top; }
62
63 /* File diff view */
64 #filediffEntry { }
65 #filediffEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
66
67 /* Graph */
68 div#wrapper {
69 position: relative;
70 margin: 0;
71 padding: 0;
72 }
73
74 canvas {
75 position: absolute;
76 z-index: 5;
77 top: -0.6em;
78 margin: 0;
79 }
80
81 ul#nodebgs {
82 list-style: none inside none;
83 padding: 0;
84 margin: 0;
85 top: -0.7em;
86 }
87
88 ul#graphnodes li, ul#nodebgs li {
89 height: 39px;
90 }
91
92 ul#graphnodes {
93 position: absolute;
94 z-index: 10;
95 top: -0.85em;
96 list-style: none inside none;
97 padding: 0;
98 }
99
100 ul#graphnodes li .info {
101 display: block;
102 font-size: 70%;
103 position: relative;
104 top: -1px;
105 }
@@ -0,0 +1,45 b''
1 ## -*- coding: utf-8 -*-
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <link rel="icon" href="${c.staticurl}hgicon.png" type="image/png" />
6 <meta name="robots" content="index, nofollow"/>
7 <link rel="stylesheet" href="${c.staticurl}style-monoblue.css" type="text/css" />
8 <title> Mercurial repositories add</title>
9 </head>
10
11 <body>
12 <div id="container">
13 <div class="page-header">
14 <h1><a href="/">Home</a> / Admin</h1>
15 <ul class="page-nav">
16 </ul>
17 </div>
18 <table cellspacing="0">
19 <tr>
20 <td><h1>${c.msg}</h1></td>
21 </tr>
22 <tr>
23 <td><h2>${c.new_repo}</h2></td>
24 </tr>
25 </table>
26 <div class="page-footer">
27 Mercurial Repository: admin
28 </div>
29
30 <div id="powered-by">
31 <p>
32 <a href="http://mercurial.selenic.com/" title="Mercurial">
33 <img src="${c.staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
34 </p>
35 </div>
36
37 <div id="corner-top-left"></div>
38 <div id="corner-top-right"></div>
39 <div id="corner-bottom-left"></div>
40 <div id="corner-bottom-right"></div>
41
42 </div>
43 </body>
44 </html>
45 No newline at end of file
@@ -0,0 +1,30 b''
1 {header}
2 <title>{repo|escape}: Branches</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / branches
12 </div>
13
14 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 branches |
21 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
22 <br/>
23 </div>
24
25 <div class="title">&nbsp;</div>
26 <table cellspacing="0">
27 {entries%branchentry}
28 </table>
29
30 {footer}
@@ -0,0 +1,39 b''
1 {header}
2 <title>{repo|escape}: Changelog</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog
12 </div>
13
14 <form action="{url}log">
15 {sessionvars%hiddenformentry}
16 <div class="search">
17 <input type="text" name="rev" />
18 </div>
19 </form>
20
21 <div class="page_nav">
22 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 <a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> |
24 changelog |
25 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
28 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
29 <br/>
30 {changenav%naventry}<br/>
31 </div>
32
33 {entries%changelogentry}
34
35 <div class="page_nav">
36 {changenav%naventry}<br/>
37 </div>
38
39 {footer}
@@ -0,0 +1,14 b''
1 <div>
2 <a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}"><span class="age">{date|age}</span>{desc|strip|firstline|escape|nonempty}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a>
3 </div>
4 <div class="title_text">
5 <div class="log_link">
6 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a><br/>
7 </div>
8 <i>{author|obfuscate} [{date|rfc822date}] rev {rev}</i><br/>
9 </div>
10 <div class="log_body">
11 {desc|strip|escape|addbreaks|nonempty}
12 <br/>
13 <br/>
14 </div>
@@ -0,0 +1,50 b''
1 {header}
2 <title>{repo|escape}: changeset {rev}:{node|short}</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changeset
12 </div>
13
14 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
21 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
22 changeset |
23 <a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry}<br/>
24 </div>
25
26 <div>
27 <a class="title" href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a>
28 </div>
29 <div class="title_text">
30 <table cellspacing="0">
31 <tr><td>author</td><td>{author|obfuscate}</td></tr>
32 <tr><td></td><td>{date|date} ({date|age})</td></tr>
33 {branch%changesetbranch}
34 <tr><td>changeset {rev}</td><td style="font-family:monospace">{node|short}</td></tr>
35 {parent%changesetparent}
36 {child%changesetchild}
37 </table></div>
38
39 <div class="page_body">
40 {desc|strip|escape|addbreaks|nonempty}
41 </div>
42 <div class="list_head"></div>
43 <div class="title_text">
44 <table cellspacing="0">
45 {files}
46 </table></div>
47
48 <div class="page_body">{diff}</div>
49
50 {footer}
@@ -0,0 +1,25 b''
1 {header}
2 <title>{repo|escape}: Error</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / error
12 </div>
13
14 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> | <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | <a href="{url}log{sessionvars%urlparameter}">changelog</a> | <a href="{url}tags{sessionvars%urlparameter}">tags</a> | <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a><br/>
16 </div>
17
18 <div class="page_body">
19 <br/>
20 <i>An error occurred while processing your request</i><br/>
21 <br/>
22 {error|escape}
23 </div>
24
25 {footer}
@@ -0,0 +1,61 b''
1 {header}
2 <title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate
12 </div>
13
14 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
21 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
22 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
23 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
24 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
25 annotate |
26 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
27 <a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a><br/>
28 </div>
29
30 <div class="title">{file|escape}</div>
31
32 <div class="title_text">
33 <table cellspacing="0">
34 <tr>
35 <td>author</td>
36 <td>{author|obfuscate}</td></tr>
37 <tr>
38 <td></td>
39 <td>{date|date} ({date|age})</td></tr>
40 {branch%filerevbranch}
41 <tr>
42 <td>changeset {rev}</td>
43 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
44 {parent%fileannotateparent}
45 {child%fileannotatechild}
46 <tr>
47 <td>permissions</td>
48 <td style="font-family:monospace">{permissions|permissions}</td></tr>
49 </table>
50 </div>
51
52 <div class="page_path">
53 {desc|strip|escape|addbreaks|nonempty}
54 </div>
55 <div class="page_body">
56 <table>
57 {annotate%annotateline}
58 </table>
59 </div>
60
61 {footer}
@@ -0,0 +1,47 b''
1 {header}
2 <title>{repo|escape}: diff {file|escape}</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / diff
12 </div>
13
14 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
21 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
22 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
23 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
24 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
25 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
26 diff |
27 <a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a><br/>
28 </div>
29
30 <div class="title">{file|escape}</div>
31
32 <table>
33 {branch%filerevbranch}
34 <tr>
35 <td>changeset {rev}</td>
36 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
37 {parent%filediffparent}
38 {child%filediffchild}
39 </table>
40
41 <div class="list_head"></div>
42
43 <div class="page_body">
44 {diff}
45 </div>
46
47 {footer}
@@ -0,0 +1,40 b''
1 {header}
2 <title>{repo|escape}: File revisions</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions
12 </div>
13
14 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
21 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
22 revisions |
23 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
24 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
25 <a href="{url}rss-log/{node|short}/{file|urlescape}">rss</a>
26 <br/>
27 {nav%filenaventry}
28 </div>
29
30 <div class="title" >{file|urlescape}</div>
31
32 <table>
33 {entries%filelogentry}
34 </table>
35
36 <div class="page_nav">
37 {nav%filenaventry}
38 </div>
39
40 {footer}
@@ -0,0 +1,60 b''
1 {header}
2 <title>{repo|escape}: {file|escape}@{node|short}</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision
12 </div>
13
14 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
21 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
22 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
23 file |
24 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
25 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
26 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
27 <a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a><br/>
28 </div>
29
30 <div class="title">{file|escape}</div>
31
32 <div class="title_text">
33 <table cellspacing="0">
34 <tr>
35 <td>author</td>
36 <td>{author|obfuscate}</td></tr>
37 <tr>
38 <td></td>
39 <td>{date|date} ({date|age})</td></tr>
40 {branch%filerevbranch}
41 <tr>
42 <td>changeset {rev}</td>
43 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
44 {parent%filerevparent}
45 {child%filerevchild}
46 <tr>
47 <td>permissions</td>
48 <td style="font-family:monospace">{permissions|permissions}</td></tr>
49 </table>
50 </div>
51
52 <div class="page_path">
53 {desc|strip|escape|addbreaks|nonempty}
54 </div>
55
56 <div class="page_body">
57 {text%fileline}
58 </div>
59
60 {footer}
@@ -0,0 +1,11 b''
1 <div class="page_footer">
2 <div class="page_footer_text">{repo|escape}</div>
3 <div class="rss_logo">
4 <a href="{url}rss-log">RSS</a>
5 <a href="{url}atom-log">Atom</a>
6 </div>
7 <br />
8 {motd}
9 </div>
10 </body>
11 </html>
@@ -0,0 +1,121 b''
1 {header}
2 <title>{repo|escape}: Graph</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
8 </head>
9 <body>
10
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
13 </div>
14
15 <form action="{url}log">
16 {sessionvars%hiddenformentry}
17 <div class="search">
18 <input type="text" name="rev" />
19 </div>
20 </form>
21 <div class="page_nav">
22 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
24 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
25 graph |
26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
28 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
29 <br/>
30 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
31 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
32 | {changenav%navgraphentry}<br/>
33 </div>
34
35 <div class="title">&nbsp;</div>
36
37 <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
38
39 <div id="wrapper">
40 <ul id="nodebgs"></ul>
41 <canvas id="graph" width="224" height="{canvasheight}"></canvas>
42 <ul id="graphnodes"></ul>
43 </div>
44
45 <script type="text/javascript" src="{staticurl}graph.js"></script>
46 <script>
47 <!-- hide script content
48
49 var data = {jsdata|json};
50 var graph = new Graph();
51 graph.scale({bg_height});
52
53 graph.edge = function(x0, y0, x1, y1, color) {
54
55 this.setColor(color, 0.0, 0.65);
56 this.ctx.beginPath();
57 this.ctx.moveTo(x0, y0);
58 this.ctx.lineTo(x1, y1);
59 this.ctx.stroke();
60
61 }
62
63 var revlink = '<li style="_STYLE"><span class="desc">';
64 revlink += '<a class="list" href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID"><b>_DESC</b></a>';
65 revlink += '</span> _TAGS';
66 revlink += '<span class="info">_DATE, by _USER</span></li>';
67
68 graph.vertex = function(x, y, color, parity, cur) {
69
70 this.ctx.beginPath();
71 color = this.setColor(color, 0.25, 0.75);
72 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
73 this.ctx.fill();
74
75 var bg = '<li class="bg parity' + parity + '"></li>';
76 var left = (this.columns + 1) * this.bg_height;
77 var nstyle = 'padding-left: ' + left + 'px;';
78 var item = revlink.replace(/_STYLE/, nstyle);
79 item = item.replace(/_PARITY/, 'parity' + parity);
80 item = item.replace(/_NODEID/, cur[0]);
81 item = item.replace(/_NODEID/, cur[0]);
82 item = item.replace(/_DESC/, cur[3]);
83 item = item.replace(/_USER/, cur[4]);
84 item = item.replace(/_DATE/, cur[5]);
85
86 var tagspan = '';
87 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) {
88 tagspan = '<span class="logtags">';
89 if (cur[6][1]) {
90 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
91 tagspan += cur[6][0] + '</span> ';
92 } else if (!cur[6][1] && cur[6][0] != 'default') {
93 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
94 tagspan += cur[6][0] + '</span> ';
95 }
96 if (cur[7].length) {
97 for (var t in cur[7]) {
98 var tag = cur[7][t];
99 tagspan += '<span class="tagtag">' + tag + '</span> ';
100 }
101 }
102 tagspan += '</span>';
103 }
104
105 item = item.replace(/_TAGS/, tagspan);
106 return [bg, item];
107
108 }
109
110 graph.render(data);
111
112 // stop hiding script -->
113 </script>
114
115 <div class="page_nav">
116 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
117 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
118 | {changenav%navgraphentry}
119 </div>
120
121 {footer}
@@ -0,0 +1,8 b''
1 <?xml version="1.0" encoding="{encoding}"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
4 <head>
5 <link rel="icon" href="{staticurl}hgicon.png" type="image/png" />
6 <meta name="robots" content="index, nofollow"/>
7 <link rel="stylesheet" href="{staticurl}style-gitweb.css" type="text/css" />
8
@@ -0,0 +1,26 b''
1 {header}
2 <title>Mercurial repositories index</title>
3 </head>
4 <body>
5
6 <div class="page_header">
7 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a>
8 Repositories list
9 </div>
10
11 <table cellspacing="0">
12 <tr>
13 <td><a href="?sort={sort_name}">Name</a></td>
14 <td><a href="?sort={sort_description}">Description</a></td>
15 <td><a href="?sort={sort_contact}">Contact</a></td>
16 <td><a href="?sort={sort_lastchange}">Last change</a></td>
17 <td>&nbsp;</td>
18 <td>&nbsp;</td>
19 </tr>
20 {entries%indexentry}
21 </table>
22 <div class="page_footer">
23 {motd}
24 </div>
25 </body>
26 </html>
@@ -0,0 +1,38 b''
1 {header}
2 <title>{repo|escape}: files</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files
12 </div>
13
14 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
21 files |
22 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry}<br/>
23 </div>
24
25 <div class="title">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></div>
26 <table cellspacing="0">
27 <tr class="parity{upparity}">
28 <td style="font-family:monospace">drwxr-xr-x</td>
29 <td style="font-family:monospace"></td>
30 <td style="font-family:monospace"></td>
31 <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
32 <td class="link">&nbsp;</td>
33 </tr>
34 {dentries%direntry}
35 {fentries%fileentry}
36 </table>
37
38 {footer}
@@ -0,0 +1,248 b''
1 default = 'summary'
2 mimetype = 'text/html; charset={encoding}'
3 header = header.tmpl
4 footer = footer.tmpl
5 search = search.tmpl
6 changelog = changelog.tmpl
7 summary = summary.tmpl
8 error = error.tmpl
9 notfound = notfound.tmpl
10 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
11 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
12 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
13 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
14 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
15 filenodelink = '
16 <tr class="parity{parity}">
17 <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
18 <td></td>
19 <td class="link">
20 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
21 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
22 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
23 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
24 </td>
25 </tr>'
26 filenolink = '
27 <tr class="parity{parity}">
28 <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
29 <td></td>
30 <td class="link">
31 file |
32 annotate |
33 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
34 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
35 </td>
36 </tr>'
37 fileellipses = '...'
38 changelogentry = changelogentry.tmpl
39 searchentry = changelogentry.tmpl
40 changeset = changeset.tmpl
41 manifest = manifest.tmpl
42 direntry = '
43 <tr class="parity{parity}">
44 <td style="font-family:monospace">drwxr-xr-x</td>
45 <td style="font-family:monospace"></td>
46 <td style="font-family:monospace"></td>
47 <td>
48 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
49 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
50 </td>
51 <td class="link">
52 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a>
53 </td>
54 </tr>'
55 fileentry = '
56 <tr class="parity{parity}">
57 <td style="font-family:monospace">{permissions|permissions}</td>
58 <td style="font-family:monospace" align=right>{date|isodate}</td>
59 <td style="font-family:monospace" align=right>{size}</td>
60 <td class="list">
61 <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
62 </td>
63 <td class="link">
64 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
65 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
66 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
67 </td>
68 </tr>'
69 filerevision = filerevision.tmpl
70 fileannotate = fileannotate.tmpl
71 filediff = filediff.tmpl
72 filelog = filelog.tmpl
73 fileline = '
74 <div style="font-family:monospace" class="parity{parity}">
75 <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre>
76 </div>'
77 annotateline = '
78 <tr style="font-family:monospace" class="parity{parity}">
79 <td class="linenr" style="text-align: right;">
80 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
81 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
82 </td>
83 <td><pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a></pre></td>
84 <td><pre>{line|escape}</pre></td>
85 </tr>'
86 difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
87 difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
88 difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
89 diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
90 changelogparent = '
91 <tr>
92 <th class="parent">parent {rev}:</th>
93 <td class="parent">
94 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
95 </td>
96 </tr>'
97 changesetbranch = '<tr><td>branch</td><td>{name}</td></tr>'
98 changesetparent = '
99 <tr>
100 <td>parent {rev}</td>
101 <td style="font-family:monospace">
102 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
103 </td>
104 </tr>'
105 filerevbranch = '<tr><td>branch</td><td>{name}</td></tr>'
106 filerevparent = '
107 <tr>
108 <td>parent {rev}</td>
109 <td style="font-family:monospace">
110 <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
111 {rename%filerename}{node|short}
112 </a>
113 </td>
114 </tr>'
115 filerename = '{file|escape}@'
116 filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
117 fileannotateparent = '
118 <tr>
119 <td>parent {rev}</td>
120 <td style="font-family:monospace">
121 <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
122 {rename%filerename}{node|short}
123 </a>
124 </td>
125 </tr>'
126 changelogchild = '
127 <tr>
128 <th class="child">child {rev}:</th>
129 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
130 </tr>'
131 changesetchild = '
132 <tr>
133 <td>child {rev}</td>
134 <td style="font-family:monospace">
135 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
136 </td>
137 </tr>'
138 filerevchild = '
139 <tr>
140 <td>child {rev}</td>
141 <td style="font-family:monospace">
142 <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
143 </tr>'
144 fileannotatechild = '
145 <tr>
146 <td>child {rev}</td>
147 <td style="font-family:monospace">
148 <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
149 </tr>'
150 tags = tags.tmpl
151 tagentry = '
152 <tr class="parity{parity}">
153 <td class="age"><i>{date|age}</i></td>
154 <td><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
155 <td class="link">
156 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
157 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
158 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
159 </td>
160 </tr>'
161 branches = branches.tmpl
162 branchentry = '
163 <tr class="parity{parity}">
164 <td class="age"><i>{date|age}</i></td>
165 <td><a class="list" href="{url}shortlog/{node|short}{sessionvars%urlparameter}"><b>{node|short}</b></a></td>
166 <td class="{status}">{branch|escape}</td>
167 <td class="link">
168 <a href="{url}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> |
169 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
170 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
171 </td>
172 </tr>'
173 diffblock = '<pre>{lines}</pre>'
174 filediffparent = '
175 <tr>
176 <td>parent {rev}</td>
177 <td style="font-family:monospace">
178 <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
179 {node|short}
180 </a>
181 </td>
182 </tr>'
183 filelogparent = '
184 <tr>
185 <td align="right">parent {rev}:&nbsp;</td>
186 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
187 </tr>'
188 filediffchild = '
189 <tr>
190 <td>child {rev}</td>
191 <td style="font-family:monospace">
192 <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
193 </td>
194 </tr>'
195 filelogchild = '
196 <tr>
197 <td align="right">child {rev}:&nbsp;</td>
198 <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
199 </tr>'
200 shortlog = shortlog.tmpl
201 graph = graph.tmpl
202 tagtag = '<span class="tagtag" title="{name}">{name}</span> '
203 branchtag = '<span class="branchtag" title="{name}">{name}</span> '
204 inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
205 shortlogentry = '
206 <tr class="parity{parity}">
207 <td class="age"><i>{date|age}</i></td>
208 <td><i>{author|person}</i></td>
209 <td>
210 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">
211 <b>{desc|strip|firstline|escape|nonempty}</b>
212 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span>
213 </a>
214 </td>
215 <td class="link" nowrap>
216 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
217 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
218 </td>
219 </tr>'
220 filelogentry = '
221 <tr class="parity{parity}">
222 <td class="age"><i>{date|age}</i></td>
223 <td>
224 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">
225 <b>{desc|strip|firstline|escape|nonempty}</b>
226 </a>
227 </td>
228 <td class="link">
229 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a>&nbsp;|&nbsp;<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>&nbsp;|&nbsp;<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> {rename%filelogrename}</td>
230 </tr>'
231 archiveentry = ' | <a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
232 indexentry = '
233 <tr class="parity{parity}">
234 <td>
235 <a class="list" href="{url}{sessionvars%urlparameter}">
236 <b>{name|escape}</b>
237 </a>
238 </td>
239 <td>{description}</td>
240 <td>{contact|obfuscate}</td>
241 <td class="age">{lastchange|age}</td>
242 <td class="indexlinks">{archives%indexarchiveentry}</td>
243 <td><div class="rss_logo"><a href="{url}rss-log">RSS</a> <a href="{url}atom-log">Atom</a></div></td>
244 </tr>\n'
245 indexarchiveentry = ' <a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
246 index = index.tmpl
247 urlparameter = '{separator}{name}={value|urlescape}'
248 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
@@ -0,0 +1,18 b''
1 {header}
2 <title>Mercurial repository not found</title>
3 </head>
4
5 <body>
6
7 <div class="page_header">
8 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a> Not found: {repo|escape}
9 </div>
10
11 <div class="page_body">
12 The specified repository "{repo|escape}" is unknown, sorry.
13 <br/>
14 <br/>
15 Please go back to the <a href="{url}">main repository list page</a>.
16 </div>
17
18 {footer}
@@ -0,0 +1,36 b''
1 {header}
2 <title>{repo|escape}: Search</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search
12
13 <form action="{url}log">
14 {sessionvars%hiddenformentry}
15 <div class="search">
16 <input type="text" name="rev" value="{query|escape}" />
17 </div>
18 </form>
19 </div>
20
21 <div class="page_nav">
22 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
24 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
25 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
28 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
29 <br/>
30 </div>
31
32 <div class="title">searching for {query|escape}</div>
33
34 {entries}
35
36 {footer}
@@ -0,0 +1,41 b''
1 {header}
2 <title>{repo|escape}: Shortlog</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog
12 </div>
13
14 <form action="{url}log">
15 {sessionvars%hiddenformentry}
16 <div class="search">
17 <input type="text" name="rev" />
18 </div>
19 </form>
20 <div class="page_nav">
21 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
22 shortlog |
23 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
24 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
25 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
26 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
27 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
28 <br/>
29 {changenav%navshortentry}<br/>
30 </div>
31
32 <div class="title">&nbsp;</div>
33 <table cellspacing="0">
34 {entries%shortlogentry}
35 </table>
36
37 <div class="page_nav">
38 {changenav%navshortentry}
39 </div>
40
41 {footer}
@@ -0,0 +1,58 b''
1 {header}
2 <title>{repo|escape}: Summary</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary
12
13 <form action="{url}log">
14 {sessionvars%hiddenformentry}
15 <div class="search">
16 <input type="text" name="rev" />
17 </div>
18 </form>
19 </div>
20
21 <div class="page_nav">
22 summary |
23 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
24 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
25 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
28 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
29 <br/>
30 </div>
31
32 <div class="title">&nbsp;</div>
33 <table cellspacing="0">
34 <tr><td>description</td><td>{desc}</td></tr>
35 <tr><td>owner</td><td>{owner|obfuscate}</td></tr>
36 <tr><td>last change</td><td>{lastchange|rfc822date}</td></tr>
37 </table>
38
39 <div><a class="title" href="{url}shortlog{sessionvars%urlparameter}">changes</a></div>
40 <table cellspacing="0">
41 {shortlog}
42 <tr class="light"><td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td></tr>
43 </table>
44
45 <div><a class="title" href="{url}tags{sessionvars%urlparameter}">tags</a></div>
46 <table cellspacing="0">
47 {tags}
48 <tr class="light"><td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td></tr>
49 </table>
50
51 <div><a class="title" href="#">branches</a></div>
52 <table cellspacing="0">
53 {branches%branchentry}
54 <tr class="light">
55 <td colspan="4"><a class="list" href="#">...</a></td>
56 </tr>
57 </table>
58 {footer}
@@ -0,0 +1,30 b''
1 {header}
2 <title>{repo|escape}: Tags</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
7 </head>
8 <body>
9
10 <div class="page_header">
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / tags
12 </div>
13
14 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 tags |
20 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
21 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
22 <br/>
23 </div>
24
25 <div class="title">&nbsp;</div>
26 <table cellspacing="0">
27 {entries%tagentry}
28 </table>
29
30 {footer}
@@ -0,0 +1,36 b''
1 {header}
2 <title>{repo|escape}: Branches</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Branches</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li class="current">branches</li>
27 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 </ul>
29 </div>
30
31 <h2 class="no-link no-border">branches</h2>
32 <table cellspacing="0">
33 {entries%branchentry}
34 </table>
35
36 {footer}
@@ -0,0 +1,40 b''
1 {header}
2 <title>{repo|escape}: changelog</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li class="current">changelog</li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li>
28 </ul>
29 </div>
30
31 <h2 class="no-link no-border">changelog</h2>
32 <div>
33 {entries%changelogentry}
34 </div>
35
36 <div class="page-path">
37 {changenav%naventry}
38 </div>
39
40 {footer}
@@ -0,0 +1,6 b''
1 <h3 class="changelog"><a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a></h3>
2 <ul class="changelog-entry">
3 <li class="age">{date|age}</li>
4 <li>by <span class="name">{author|obfuscate}</span> <span class="revdate">[{date|rfc822date}] rev {rev}</span></li>
5 <li class="description">{desc|strip|escape|addbreaks|nonempty}</li>
6 </ul>
@@ -0,0 +1,63 b''
1 {header}
2 <title>{repo|escape}: changeset {rev}:{node|short}</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 </ul>
29 </div>
30
31 <ul class="submenu">
32 <li class="current">changeset</li>
33 <li><a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry}</li>
34 </ul>
35
36 <h2 class="no-link no-border">changeset</h2>
37
38 <h3 class="changeset"><a href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a></h3>
39 <p class="changeset-age"><span>{date|age}</span></p>
40
41 <dl class="overview">
42 <dt>author</dt>
43 <dd>{author|obfuscate}</dd>
44 <dt>date</dt>
45 <dd>{date|date}</dd>
46 {branch%changesetbranch}
47 <dt>changeset {rev}</dt>
48 <dd>{node|short}</dd>
49 {parent%changesetparent}
50 {child%changesetchild}
51 </dl>
52
53 <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
54
55 <table>
56 {files}
57 </table>
58
59 <div class="diff">
60 {diff}
61 </div>
62
63 {footer}
@@ -0,0 +1,34 b''
1 {header}
2 <title>{repo|escape}: Error</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Not found: {repo|escape}</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li class="current">summary</li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 </ul>
29 </div>
30
31 <h2 class="no-link no-border">An error occurred while processing your request</h2>
32 <p class="normal">{error|escape}</p>
33
34 {footer}
@@ -0,0 +1,63 b''
1 {header}
2 <title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
28 </ul>
29 </div>
30
31 <ul class="submenu">
32 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
33 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
34 <li class="current">annotate</li>
35 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
36 <li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li>
37 </ul>
38
39 <h2 class="no-link no-border">{file|escape}@{node|short} (annotated)</h2>
40 <h3 class="changeset">{file|escape}</h3>
41 <p class="changeset-age"><span>{date|age}</span></p>
42
43 <dl class="overview">
44 <dt>author</dt>
45 <dd>{author|obfuscate}</dd>
46 <dt>date</dt>
47 <dd>{date|date}</dd>
48 {branch%filerevbranch}
49 <dt>changeset {rev}</dt>
50 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
51 {parent%fileannotateparent}
52 {child%fileannotatechild}
53 <dt>permissions</dt>
54 <dd>{permissions|permissions}</dd>
55 </dl>
56
57 <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
58
59 <table class="annotated">
60 {annotate%annotateline}
61 </table>
62
63 {footer}
@@ -0,0 +1,54 b''
1 {header}
2 <title>{repo|escape}: diff {file|escape}</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file diff</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
28 </ul>
29 </div>
30
31 <ul class="submenu">
32 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
33 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
34 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
35 <li class="current">diff</li>
36 <li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li>
37 </ul>
38
39 <h2 class="no-link no-border">diff: {file|escape}</h2>
40 <h3 class="changeset">{file|escape}</h3>
41
42 <dl class="overview">
43 {branch%filerevbranch}
44 <dt>changeset {rev}</dt>
45 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
46 {parent%filediffparent}
47 {child%filediffchild}
48 </dl>
49
50 <div class="diff">
51 {diff}
52 </div>
53
54 {footer}
@@ -0,0 +1,49 b''
1 {header}
2 <title>{repo|escape}: File revisions</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
28 </ul>
29 </div>
30
31 <ul class="submenu">
32 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
33 <li class="current">revisions</li>
34 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
35 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
36 <li><a href="{url}rss-log/{node|short}/{file|urlescape}">rss</a></li>
37 </ul>
38
39 <h2 class="no-link no-border">{file|urlescape}</h2>
40
41 <table>
42 {entries%filelogentry}
43 </table>
44
45 <div class="page-path">
46 {nav%filenaventry}
47 </div>
48
49 {footer}
@@ -0,0 +1,63 b''
1 {header}
2 <title>{repo|escape}: {file|escape}@{node|short}</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
28 </ul>
29 </div>
30
31 <ul class="submenu">
32 <li class="current">file</li>
33 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
34 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
35 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
36 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
37 </ul>
38
39 <h2 class="no-link no-border">{file|escape}@{node|short}</h2>
40 <h3 class="changeset">{file|escape}</h3>
41 <p class="changeset-age"><span>{date|age}</span></p>
42
43 <dl class="overview">
44 <dt>author</dt>
45 <dd>{author|obfuscate}</dd>
46 <dt>date</dt>
47 <dd>{date|date}</dd>
48 {branch%filerevbranch}
49 <dt>changeset {rev}</dt>
50 <dd><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
51 {parent%filerevparent}
52 {child%filerevchild}
53 <dt>permissions</dt>
54 <dd>{permissions|permissions}</dd>
55 </dl>
56
57 <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
58
59 <div class="source">
60 {text%fileline}
61 </div>
62
63 {footer}
@@ -0,0 +1,22 b''
1 <div class="page-footer">
2 <p>Mercurial Repository: {repo|escape}</p>
3 <ul class="rss-logo">
4 <li><a href="{url}rss-log">RSS</a></li>
5 <li><a href="{url}atom-log">Atom</a></li>
6 </ul>
7 {motd}
8 </div>
9
10 <div id="powered-by">
11 <p><a href="http://mercurial.selenic.com/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p>
12 </div>
13
14 <div id="corner-top-left"></div>
15 <div id="corner-top-right"></div>
16 <div id="corner-bottom-left"></div>
17 <div id="corner-bottom-right"></div>
18
19 </div>
20
21 </body>
22 </html>
@@ -0,0 +1,118 b''
1 {header}
2 <title>{repo|escape}: graph</title>
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}"/>
5 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
6 </head>
7
8 <body>
9 <div id="container">
10 <div class="page-header">
11 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph</h1>
12
13 <form action="{url}log">
14 {sessionvars%hiddenformentry}
15 <dl class="search">
16 <dt><label>Search: </label></dt>
17 <dd><input type="text" name="rev" /></dd>
18 </dl>
19 </form>
20
21 <ul class="page-nav">
22 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
23 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
24 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
25 <li class="current">graph</li>
26 <li><a href="{url}tags{sessionvars%urlparameter}">tags</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>
29 </ul>
30 </div>
31
32 <h2 class="no-link no-border">graph</h2>
33
34 <div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div>
35 <div id="wrapper">
36 <ul id="nodebgs"></ul>
37 <canvas id="graph" width="224" height="{canvasheight}"></canvas>
38 <ul id="graphnodes"></ul>
39 </div>
40
41 <script type="text/javascript" src="{staticurl}graph.js"></script>
42 <script>
43 <!-- hide script content
44
45 document.getElementById('noscript').style.display = 'none';
46
47 var data = {jsdata|json};
48 var graph = new Graph();
49 graph.scale({bg_height});
50
51 graph.edge = function(x0, y0, x1, y1, color) {
52
53 this.setColor(color, 0.0, 0.65);
54 this.ctx.beginPath();
55 this.ctx.moveTo(x0, y0);
56 this.ctx.lineTo(x1, y1);
57 this.ctx.stroke();
58
59 }
60
61 var revlink = '<li style="_STYLE"><span class="desc">';
62 revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
63 revlink += '</span>_TAGS<span class="info">_DATE, by _USER</span></li>';
64
65 graph.vertex = function(x, y, color, parity, cur) {
66
67 this.ctx.beginPath();
68 color = this.setColor(color, 0.25, 0.75);
69 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
70 this.ctx.fill();
71
72 var bg = '<li class="bg parity' + parity + '"></li>';
73 var left = (this.columns + 1) * this.bg_height;
74 var nstyle = 'padding-left: ' + left + 'px;';
75 var item = revlink.replace(/_STYLE/, nstyle);
76 item = item.replace(/_PARITY/, 'parity' + parity);
77 item = item.replace(/_NODEID/, cur[0]);
78 item = item.replace(/_NODEID/, cur[0]);
79 item = item.replace(/_DESC/, cur[3]);
80 item = item.replace(/_USER/, cur[4]);
81 item = item.replace(/_DATE/, cur[5]);
82
83 var tagspan = '';
84 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) {
85 tagspan = '<span class="logtags">';
86 if (cur[6][1]) {
87 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
88 tagspan += cur[6][0] + '</span> ';
89 } else if (!cur[6][1] && cur[6][0] != 'default') {
90 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
91 tagspan += cur[6][0] + '</span> ';
92 }
93 if (cur[7].length) {
94 for (var t in cur[7]) {
95 var tag = cur[7][t];
96 tagspan += '<span class="tagtag">' + tag + '</span> ';
97 }
98 }
99 tagspan += '</span>';
100 }
101
102 item = item.replace(/_TAGS/, tagspan);
103 return [bg, item];
104
105 }
106
107 graph.render(data);
108
109 // stop hiding script -->
110 </script>
111
112 <div class="page-path">
113 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
114 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
115 | {changenav%navgraphentry}
116 </div>
117
118 {footer}
@@ -0,0 +1,6 b''
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3 <head>
4 <link rel="icon" href="{staticurl}hgicon.png" type="image/png" />
5 <meta name="robots" content="index, nofollow"/>
6 <link rel="stylesheet" href="{staticurl}style-monoblue.css" type="text/css" />
@@ -0,0 +1,39 b''
1 {header}
2 <title>{repo|escape}: Mercurial repositories index</title>
3 </head>
4
5 <body>
6 <div id="container">
7 <div class="page-header">
8 <h1> Mercurial Repositories</h1>
9 <ul class="page-nav">
10 </ul>
11 </div>
12
13 <table cellspacing="0">
14 <tr>
15 <td><a href="?sort={sort_name}">Name</a></td>
16 <td><a href="?sort={sort_description}">Description</a></td>
17 <td><a href="?sort={sort_contact}">Contact</a></td>
18 <td><a href="?sort={sort_lastchange}">Last change</a></td>
19 <td>&nbsp;</td>
20 <td>&nbsp;</td>
21 </tr>
22 {entries%indexentry}
23 </table>
24 <div class="page-footer">
25 {motd}
26 </div>
27
28 <div id="powered-by">
29 <p><a href="http://mercurial.selenic.com/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p>
30 </div>
31
32 <div id="corner-top-left"></div>
33 <div id="corner-top-right"></div>
34 <div id="corner-bottom-left"></div>
35 <div id="corner-bottom-right"></div>
36
37 </div>
38 </body>
39 </html>
@@ -0,0 +1,51 b''
1 {header}
2 <title>{repo|escape}: files</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li class="current">files</li>
28 </ul>
29 </div>
30
31 <ul class="submenu">
32 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry}</li>
33 {archives%archiveentry}
34 </ul>
35
36 <h2 class="no-link no-border">files</h2>
37 <p class="files">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></p>
38
39 <table>
40 <tr class="parity{upparity}">
41 <td>drwxr-xr-x</td>
42 <td></td>
43 <td></td>
44 <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
45 <td class="link">&nbsp;</td>
46 </tr>
47 {dentries%direntry}
48 {fentries%fileentry}
49 </table>
50
51 {footer}
@@ -0,0 +1,214 b''
1 default = 'summary'
2 mimetype = 'text/html; charset={encoding}'
3 header = header.tmpl
4 footer = footer.tmpl
5 search = search.tmpl
6 changelog = changelog.tmpl
7 summary = summary.tmpl
8 error = error.tmpl
9 notfound = notfound.tmpl
10 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
11 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
12 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
13 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a>'
14 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
15 filenodelink = '
16 <tr class="parity{parity}">
17 <td><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
18 <td></td>
19 <td>
20 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
21 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
22 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
23 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
24 </td>
25 </tr>'
26 filenolink = '
27 <tr class="parity{parity}">
28 <td>
29 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td><td></td><td>file |
30 annotate |
31 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
32 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
33 </td>
34 </tr>'
35 fileellipses = '...'
36 changelogentry = changelogentry.tmpl
37 searchentry = changelogentry.tmpl
38 changeset = changeset.tmpl
39 manifest = manifest.tmpl
40 direntry = '
41 <tr class="parity{parity}">
42 <td>drwxr-xr-x</td>
43 <td></td>
44 <td></td>
45 <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
46 <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></td>
47 </tr>'
48 fileentry = '
49 <tr class="parity{parity}">
50 <td>{permissions|permissions}</td>
51 <td>{date|isodate}</td>
52 <td>{size}</td>
53 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
54 <td>
55 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
56 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
57 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
58 </td>
59 </tr>'
60 filerevision = filerevision.tmpl
61 fileannotate = fileannotate.tmpl
62 filediff = filediff.tmpl
63 filelog = filelog.tmpl
64 fileline = '
65 <div style="font-family:monospace" class="parity{parity}">
66 <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre>
67 </div>'
68 annotateline = '
69 <tr class="parity{parity}">
70 <td class="linenr">
71 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
72 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
73 </td>
74 <td class="lineno">
75 <a href="#{lineid}" id="{lineid}">{linenumber}</a>
76 </td>
77 <td class="source">{line|escape}</td>
78 </tr>'
79 difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
80 difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
81 difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
82 diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
83 changelogparent = '
84 <tr>
85 <th class="parent">parent {rev}:</th>
86 <td class="parent">
87 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
88 </td>
89 </tr>'
90 changesetbranch = '<dt>branch</dt><dd>{name}</dd>'
91 changesetparent = '
92 <dt>parent {rev}</dt>
93 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
94 filerevbranch = '<dt>branch</dt><dd>{name}</dd>'
95 filerevparent = '
96 <dt>parent {rev}</dt>
97 <dd>
98 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
99 {rename%filerename}{node|short}
100 </a>
101 </dd>'
102 filerename = '{file|escape}@'
103 filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
104 fileannotateparent = '
105 <dt>parent {rev}</dt>
106 <dd>
107 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
108 {rename%filerename}{node|short}
109 </a>
110 </dd>'
111 changelogchild = '
112 <dt>child {rev}:</dt>
113 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
114 changesetchild = '
115 <dt>child {rev}</dt>
116 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
117 filerevchild = '
118 <dt>child {rev}</dt>
119 <dd>
120 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
121 </dd>'
122 fileannotatechild = '
123 <dt>child {rev}</dt>
124 <dd>
125 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
126 </dd>'
127 tags = tags.tmpl
128 tagentry = '
129 <tr class="parity{parity}">
130 <td class="nowrap">{date|age}</td>
131 <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a></td>
132 <td class="nowrap">
133 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
134 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
135 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
136 </td>
137 </tr>'
138 branches = branches.tmpl
139 branchentry = '
140 <tr class="parity{parity}">
141 <td class="nowrap">{date|age}</td>
142 <td><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
143 <td class="{status}">{branch|escape}</td>
144 <td class="nowrap">
145 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
146 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
147 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
148 </td>
149 </tr>'
150 diffblock = '<pre>{lines}</pre>'
151 filediffparent = '
152 <dt>parent {rev}</dt>
153 <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
154 filelogparent = '
155 <tr>
156 <td align="right">parent {rev}:&nbsp;</td>
157 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
158 </tr>'
159 filediffchild = '
160 <dt>child {rev}</dt>
161 <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
162 filelogchild = '
163 <tr>
164 <td align="right">child {rev}:&nbsp;</td>
165 <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
166 </tr>'
167 shortlog = shortlog.tmpl
168 tagtag = '<span class="tagtag" title="{name}">{name}</span> '
169 branchtag = '<span class="branchtag" title="{name}">{name}</span> '
170 inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
171 shortlogentry = '
172 <tr class="parity{parity}">
173 <td class="nowrap">{date|age}</td>
174 <td>{author|person}</td>
175 <td>
176 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
177 {desc|strip|firstline|escape|nonempty}
178 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span>
179 </a>
180 </td>
181 <td class="nowrap">
182 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
183 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
184 </td>
185 </tr>'
186 filelogentry = '
187 <tr class="parity{parity}">
188 <td class="nowrap">{date|age}</td>
189 <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td>
190 <td class="nowrap">
191 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a>&nbsp;|&nbsp;<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>&nbsp;|&nbsp;<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
192 {rename%filelogrename}
193 </td>
194 </tr>'
195 archiveentry = '<li><a href="{url}archive/{node|short}{extension}">{type|escape}</a></li>'
196 indexentry = '
197 <tr class="parity{parity}">
198 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
199 <td>{description}</td>
200 <td>{contact|obfuscate}</td>
201 <td>{lastchange|age}</td>
202 <td class="indexlinks">{archives%indexarchiveentry}</td>
203 <td>
204 <div class="rss_logo">
205 <a href="{url}rss-log">RSS</a>
206 <a href="{url}atom-log">Atom</a>
207 </div>
208 </td>
209 </tr>\n'
210 indexarchiveentry = '<a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
211 index = index.tmpl
212 urlparameter = '{separator}{name}={value|urlescape}'
213 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
214 graph = graph.tmpl
@@ -0,0 +1,39 b''
1 {header}
2 <title>{repo|escape}: Mercurial repository not found</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1>Not found: {repo|escape}</h1>
11
12 <div style="height: 50px">
13 </div>
14 </div>
15
16 <h2 class="no-link no-border">Not Found</h2>
17 <p class="normal">The specified repository "{repo|escape}" is unknown, sorry.</p>
18 <p class="normal">Please go back to the <a href="{url}">main repository list page</a>.</p>
19
20 <div class="page-footer">
21 <p>Mercurial Repository: atom-log</p>
22 </div>
23
24 <div id="powered-by">
25 <p><a href="http://mercurial.selenic.com/" title="Mercurial"><img src="/hg_static/hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p>
26
27 </div>
28
29 <div id="corner-top-left"></div>
30 <div id="corner-top-right"></div>
31 <div id="corner-bottom-left"></div>
32 <div id="corner-bottom-right"></div>
33
34 </div>
35
36 </body>
37 </html>
38
39
@@ -0,0 +1,34 b''
1 {header}
2 <title>{repo|escape}: Search</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" value="{query|escape}" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
28 </ul>
29 </div>
30
31 <h2 class="no-link no-border">searching for {query|escape}</h2>
32 {entries}
33
34 {footer}
@@ -0,0 +1,41 b''
1 {header}
2 <title>{repo|escape}: shortlog</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li class="current">shortlog</li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li>
28 </ul>
29 </div>
30
31 <h2 class="no-link no-border">shortlog</h2>
32
33 <table>
34 {entries%shortlogentry}
35 </table>
36
37 <div class="page-path">
38 {changenav%navshortentry}
39 </div>
40
41 {footer}
@@ -0,0 +1,66 b''
1 {header}
2 <title>{repo|escape}: Summary</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li class="current">summary</li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 </ul>
29 </div>
30
31 <h2 class="no-link no-border">Mercurial Repository Overview</h2>
32 <dl class="overview">
33 <dt>name</dt>
34 <dd>{repo|escape}</dd>
35 <dt>description</dt>
36 <dd>{desc}</dd>
37 <dt>owner</dt>
38 <dd>{owner|obfuscate}</dd>
39 <dt>last change</dt>
40 <dd>{lastchange|rfc822date}</dd>
41 </dl>
42
43 <h2><a href="{url}shortlog{sessionvars%urlparameter}">Changes</a></h2>
44 <table>
45 {shortlog}
46 <tr class="light">
47 <td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td>
48 </tr>
49 </table>
50
51 <h2><a href="{url}tags{sessionvars%urlparameter}">Tags</a></h2>
52 <table>
53 {tags}
54 <tr class="light">
55 <td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td>
56 </tr>
57 </table>
58
59 <h2 class="no-link">Branches</h2>
60 <table>
61 {branches%branchentry}
62 <tr class="light">
63 <td colspan="4"><a class="list" href="#">...</a></td>
64 </tr>
65 </table>
66 {footer}
@@ -0,0 +1,36 b''
1 {header}
2 <title>{repo|escape}: Tags</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="/">Home</a> / <a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Tags</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li class="current">tags</li>
26 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 </ul>
29 </div>
30
31 <h2 class="no-link no-border">tags</h2>
32 <table cellspacing="0">
33 {entries%tagentry}
34 </table>
35
36 {footer}
@@ -0,0 +1,31 b''
1 {header}
2 <div id="container">
3 <div class="page-header">
4 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog</h1>
5
6 <ul class="object-tools">
7 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
8 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
9 <li class="current"><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
10 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
11 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
12 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
13 </ul>
14 <br class="clear"/>
15 <ul class="object-tools" style="margin-top:-2em">
16 <li class="current"><a href="{url}rev/{node|short}">changeset</a></li>
17 <li><a href="{url}raw-rev/{node|short}">raw</a> </li>
18 {archives%archiveentry}
19 </ul>
20 </div>
21
22 <div class="module">
23 <h2>changelog</h2>
24 {entries%changelogentry}
25 </div>
26
27 <div class="page-path">
28 {changenav%naventry}
29 </div>
30
31 {footer}
@@ -0,0 +1,4 b''
1 <h3 class="changelog"><a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a></h3>
2 <h4>{date|age} ago, by {author|obfuscate} [{date|rfc822date}] rev {rev}</h4>
3 <p>{desc|strip|escape|addbreaks}</p>
4 <hr/>
@@ -0,0 +1,50 b''
1 {header}
2 <div id="container">
3 <div class="page-header">
4 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1>
5
6 <ul class="object-tools">
7 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
8 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
9 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
10 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
11 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
12 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
13 </ul>
14 <br class="clear"/>
15 <ul class="object-tools" style="margin-top:-2em">
16 <li class="current"><a href="{url}rev/{node|short}">changeset</a></li>
17 <li><a href="{url}raw-rev/{node|short}">raw</a></li>
18 {archives%archiveentry}
19 </ul>
20 </div>
21
22
23
24 <div class="module">
25 <h2 class="no-link no-border">changeset</h2>
26
27 <h3 class="changeset"><a href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a>, <span>{date|age} ago</span></h3>
28
29 <dl class="overview">
30 <dt>author</dt>
31 <dd>{author|obfuscate}</dd>
32 <dt>date</dt>
33 <dd>{date|date}</dd>
34 {branch%changesetbranch}
35 <dt>changeset {rev}</dt>
36 <dd>{node|short}</dd>
37 {parent%changesetparent}
38 {child%changesetchild}
39 </dl>
40
41 <pre class="description">{desc|strip|escape|addbreaks}</pre>
42
43 <table>
44 {files}
45 </table>
46
47 {diff}
48
49 </div>
50 {footer}
@@ -0,0 +1,33 b''
1 {header}
2 <title>{repo|escape}: Error</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Not found: {repo|escape}</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li class="current">summary</li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
27 </ul>
28 </div>
29
30 <h2 class="no-link no-border">An error occurred while processing your request</h2>
31 <p class="normal">{error|escape}</p>
32
33 {footer}
@@ -0,0 +1,53 b''
1 {header}
2 <div id="container">
3 <div class="page-header">
4 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate</h1>
5
6 <ul class="object-tools">
7 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
8 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
9 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
10 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
11 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
12 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
13 </ul>
14 <br class="clear"/>
15 <ul class="object-tools" style="margin-top:-2em">
16 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
17 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
18 <li class="current"><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
19 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
20 <li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li>
21 </ul>
22 </div>
23
24
25
26 <div class="module">
27 <h2 class="no-link no-border">{file|escape}@{node|short}, <span>{date|age} ago</span> (annotated)</h2>
28 <h3 class="changeset">{file|escape}</h3>
29
30 <dl class="overview">
31 <dt>author</dt>
32 <dd>{author|obfuscate}</dd>
33 <dt>date</dt>
34 <dd>{date|date}</dd>
35 {branch%filerevbranch}
36 <dt>changeset {rev}</dt>
37 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
38 {parent%fileannotateparent}
39 {child%fileannotatechild}
40 <dt>permissions</dt>
41 <dd>{permissions|permissions}</dd>
42 </dl>
43
44 <pre class="description">{desc|strip|escape|addbreaks}</pre>
45
46 <table class="module" width="100%";>
47 <thead>
48 <tr><th>user</th><th></th><th></th></tr>
49 </thead>
50 {annotate%annotateline}
51 </table>
52 </div>
53 {footer}
@@ -0,0 +1,38 b''
1 {header}
2 <div id="container">
3 <div class="page-header">
4 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file diff</h1>
5
6 <ul class="object-tools">
7 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
8 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
9 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
10 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
11 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
12 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
13 </ul>
14 <br class="clear"/>
15 <ul class="object-tools" style="margin-top:-2em">
16 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
17 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
18 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
19 <li class="current"><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
20 <li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li>
21 </ul>
22 </div>
23
24 <div class="module">
25 <h2 class="no-link no-border">diff: {file|escape}</h2>
26 <h3 class="changeset">{file|escape}</h3>
27
28 <dl class="overview">
29 {branch%filerevbranch}
30 <dt>changeset {rev}</dt>
31 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
32 {parent%filediffparent}
33 {child%filediffchild}
34 </dl>
35
36 {diff}
37 </div>
38 {footer}
@@ -0,0 +1,44 b''
1 {header}
2 <div id="container">
3 <div class="page-header">
4 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions</h1>
5
6 <ul class="object-tools">
7 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
8 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
9 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
10 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
11 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
12 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
13 </ul>
14 <br class="clear"/>
15 <ul class="object-tools" style="margin-top:-2em">
16 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
17 <li class="current"><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
18 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
19 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
20 <li><a href="{url}rss-log/{node|short}/{file|urlescape}">rss</a></li>
21 </ul>
22 </div>
23
24
25 <table class="module">
26 <caption class="no-link no-border">{file|urlescape}</caption>
27 <thead>
28 <tr>
29 <th>ago</th>
30 <th>message</th>
31 <th></th>
32 </tr>
33 </thead>
34 <tbody>
35 {entries%filelogentry}
36 </tbody>
37 </table>
38 </div>
39
40 <div class="page-path">
41 {nav%filenaventry}
42 </div>
43
44 {footer}
@@ -0,0 +1,59 b''
1 {header}
2 <div id="container">
3 <div class="page-header">
4 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision</h1>
5
6 <ul class="object-tools">
7 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
8 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
9 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
10 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
11 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
12 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
13 </ul>
14 <br class="clear"/>
15 <ul class="object-tools" style="margin-top:-2em">
16 <li class="current"><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
17 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
18 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
19 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
20 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
21 </ul>
22 </div>
23
24 <div class="module">
25 <h2 class="no-link no-border">{file|escape}@{node|short}, <span>{date|age} ago</span></h2>
26 <h3 class="changeset">{file|escape}</h3>
27
28 <dl class="overview ">
29 <dt>author</dt>
30 <dd>{author|obfuscate}</dd>
31 <dt>date</dt>
32 <dd>{date|date}</dd>
33 {branch%filerevbranch}
34 <dt>changeset {rev}</dt>
35 <dd><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
36 {parent%filerevparent}
37 {child%filerevchild}
38 <dt>permissions</dt>
39 <dd>{permissions|permissions}</dd>
40 </dl>
41
42 <div class="source">
43 <pre class="description">{desc|strip|escape|addbreaks}</pre>
44 <table style="width:100%; class="module">
45 <thead>
46 <tr>
47 <th style="width: 10px">#</th>
48 <th> </th>
49 </tr>
50 </thead>
51 <tbody>
52 {text%fileline}
53 </tbody>
54 </table>
55 </div>
56
57 </div>
58
59 {footer}
@@ -0,0 +1,11 b''
1 <div class="page-footer">
2 <p>
3 Mercurial Repository: {repo|escape}
4 </p>
5 <ul class="object-tools">
6 <li><a href="{url}rss-log">RSS</a></li>
7 <li><a href="{url}atom-log">Atom</a></li>
8 <li><a href="http://www.selenic.com/mercurial/" title="Mercurial">Powered by Mercurial</a></li>
9 </ul>
10 {motd}
11 </div>
@@ -0,0 +1,103 b''
1 {header}
2 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
3 <div id="container">
4 <div class="page-header">
5 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph</h1>
6
7 <ul class="object-tools">
8 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
9 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
10 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
11 <li class="current"><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
12 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
13 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
14 </ul>
15 </div>
16
17
18 <div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div>
19 <div id="wrapper">
20 <ul id="nodebgs"></ul>
21 <canvas id="graph" width="224" height="{canvasheight}"></canvas>
22 <ul id="graphnodes"></ul>
23 <div>
24 </div>
25
26 <script type="text/javascript" src="{staticurl}graph.js"></script>
27 <script>
28 <!-- hide script content
29
30 document.getElementById('noscript').style.display = 'none';
31
32 var data = {jsdata|json};
33 var graph = new Graph();
34 graph.scale({bg_height});
35
36 graph.edge = function(x0, y0, x1, y1, color) {
37
38 this.setColor(color, 0.0, 0.65);
39 this.ctx.beginPath();
40 this.ctx.moveTo(x0, y0);
41 this.ctx.lineTo(x1, y1);
42 this.ctx.stroke();
43
44 }
45
46 var revlink = '<li style="_STYLE"><span class="desc">';
47 revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
48 revlink += '</span>_TAGS<span class="info">_DATE ago, by _USER</span></li>';
49
50 graph.vertex = function(x, y, color, parity, cur) {
51
52 this.ctx.beginPath();
53 color = this.setColor(color, 0.25, 0.75);
54 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
55 this.ctx.fill();
56
57 var bg = '<li class="bg parity' + parity + '"></li>';
58 var left = (this.columns + 1) * this.bg_height;
59 var nstyle = 'padding-left: ' + left + 'px;';
60 var item = revlink.replace(/_STYLE/, nstyle);
61 item = item.replace(/_PARITY/, 'parity' + parity);
62 item = item.replace(/_NODEID/, cur[0]);
63 item = item.replace(/_NODEID/, cur[0]);
64 item = item.replace(/_DESC/, cur[3]);
65 item = item.replace(/_USER/, cur[4]);
66 item = item.replace(/_DATE/, cur[5]);
67
68 var tagspan = '';
69 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) {
70 tagspan = '<span class="logtags">';
71 if (cur[6][1]) {
72 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
73 tagspan += cur[6][0] + '</span> ';
74 } else if (!cur[6][1] && cur[6][0] != 'default') {
75 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
76 tagspan += cur[6][0] + '</span> ';
77 }
78 if (cur[7].length) {
79 for (var t in cur[7]) {
80 var tag = cur[7][t];
81 tagspan += '<span class="tagtag">' + tag + '</span> ';
82 }
83 }
84 tagspan += '</span>';
85 }
86
87 item = item.replace(/_TAGS/, tagspan);
88 return [bg, item];
89
90 }
91
92 graph.render(data);
93
94 // stop hiding script -->
95 </script>
96
97 <div class="page-path">
98 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
99 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
100 | {changenav%navgraphentry}
101 </div>
102
103 {footer}
@@ -0,0 +1,1 b''
1
@@ -0,0 +1,29 b''
1 {header}
2 <div id="container">
3 <div class="page-header">
4 <h1>Mercurial Repositories</h1>
5 </div>
6
7 <table cellspacing="0">
8 <tr>
9 <td><a href="?sort={sort_name}">Name</a></td>
10 <td><a href="?sort={sort_description}">Description</a></td>
11 <td><a href="?sort={sort_contact}">Contact</a></td>
12 <td><a href="?sort={sort_lastchange}">Last change</a></td>
13 <td>&nbsp;</td>
14 <td>&nbsp;</td>
15 </tr>
16 {entries%indexentry}
17 </table>
18 <div class="page-footer">
19 {motd}
20 </div>
21
22 <div id="powered-by">
23 <p><a href="http://www.selenic.com/mercurial/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p>
24 </div>
25 <div id="corner-top-left"></div>
26 <div id="corner-top-right"></div>
27 <div id="corner-bottom-left"></div>
28 <div id="corner-bottom-right"></div>
29 </div>
@@ -0,0 +1,48 b''
1 {header}
2 <div id="container">
3 <div class="page-header">
4 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1>
5
6 <ul class="object-tools">
7 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
8 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
9 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
10 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
11 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
12 <li class="current"><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
13 </ul>
14 <br class="clear"/>
15 <ul class="object-tools" style="margin-top:-2em">
16 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
17 {archives%archiveentry}
18 </ul>
19 </div>
20
21 <div class="module">
22 <h2>files</h2>
23 <div class="breadcrumbs">{path|escape} <span class="logtags" style="color:#000000">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></div>
24 <table width="100%" cellspacing="0">
25 <thead>
26 <tr>
27 <th width="120px">perms</th>
28 <th width="150px">modified</th>
29 <th width="60px">size</th>
30 <th></th>
31 <th width="120px">&nbsp;</th>
32 </tr>
33 </thead>
34 <tbody>
35 <tr class="row#upparity#">
36 <td>drwxr-xr-x</td>
37 <td></td>
38 <td></td>
39 <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
40 <td class="link">&nbsp;</td>
41 </tr>
42 {dentries%direntry}
43 {fentries%fileentry}
44 </tbody>
45 </table>
46 </div
47
48 {footer}
@@ -0,0 +1,66 b''
1 default = 'summary'
2 mimetype = 'text/html; charset={encoding}'
3 header = header.tmpl
4 footer = footer.tmpl
5 search = search.tmpl
6 changelog = changelog.tmpl
7 summary = summary.tmpl
8 error = error.tmpl
9 notfound = notfound.tmpl
10 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
11 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
12 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
13 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a>'
14 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
15 filenodelink = '<tr class="parity{parity}"><td><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td><td></td><td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></td></tr>'
16 filenolink = '<tr class="parity{parity}"><td><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td><td></td><td>file | annotate | <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></td></tr>'
17 fileellipses = '...'
18 changelogentry = changelogentry.tmpl
19 searchentry = changelogentry.tmpl
20 changeset = changeset.tmpl
21 manifest = manifest.tmpl
22 direntry = '<tr class="row{parity}"><td>drwxr-xr-x</td><td></td><td></td><td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td><td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></td></tr>'
23 fileentry = '<tr class="row{parity}"><td>{permissions|permissions}</td><td>{date|isodate}</td><td>{size}</td><td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td><td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></td></tr>'
24 filerevision = filerevision.tmpl
25 fileannotate = fileannotate.tmpl
26 filediff = filediff.tmpl
27 filelog = filelog.tmpl
28 fileline = '<tr class="row{parity}"><td class="linenr"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a></td><td class="source">{line|escape}</td></tr>'
29 annotateline = '<tr class="row{parity}"><td class="linenr"><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}" title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a></td><td class="linenr"><a href="#{lineid}" id="{lineid}">{linenumber}</a></td><td class="source">{line|escape}</td></tr>'
30 difflineplus = '<span style="color:#008800;"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
31 difflineminus = '<span style="color:#cc0000;"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
32 difflineat = '<span style="color:#990099;"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
33 diffline = '<span><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
34 changelogparent = '<tr><th class="parent">parent {rev}:</th><td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>'
35 changesetbranch = '<dt>branch</dt><dd>{name}</dd>'
36 changesetparent = '<dt>parent {rev}</dt><dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
37 filerevbranch = '<dt>branch</dt><dd>{name}</dd>'
38 filerevparent = '<dt>parent {rev}</dt><dd><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a></dd>'
39 filerename = '{file|escape}@'
40 filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
41 fileannotateparent = '<dt>parent {rev}</dt><dd><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a></dd>'
42 changelogchild = '<dt>child {rev}:</dt><dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
43 changesetchild = '<dt>child {rev}</dt><dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
44 filerevchild = '<dt>child {rev}</dt><dd><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
45 fileannotatechild = '<dt>child {rev}</dt><dd><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
46 tags = tags.tmpl
47 tagentry = '<tr class="parity{parity}"><td class="nowrap">{date|age} ago</td><td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a></td><td class="nowrap"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> | <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></td></tr>'
48 branchentry = '<tr class="row{parity}"><td class="nowrap">{date|age} ago</td><td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td><td>{branch|escape}</td><td class="nowrap"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> | <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></td></tr>'
49 diffblock = '<pre>{lines}</pre>'
50 filediffparent = '<dt>parent {rev}</dt><dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
51 filelogparent = '<tr><td align="right">parent {rev}:&nbsp;</td><td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td></tr>'
52 filediffchild = '<tr><td>child {rev}</td><td style="font-family:monospace"><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td></tr>'
53 filelogchild = '<tr><td align="right">child {rev}:&nbsp;</td><td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td></tr>'
54 shortlog = shortlog.tmpl
55 tagtag = '<span class="tagtag" title="{name}">{name}</span> '
56 branchtag = '<span class="branchtag" title="{name}">{name}</span> '
57 inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
58 shortlogentry = '<tr class="row{parity}"><td class="nowrap">{date|age} ago</td><td>{author|person}</td><td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a></td><td class="nowrap"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></td></tr>'
59 filelogentry = '<tr class="row{parity}"><td class="nowrap">{date|age} ago</td><td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape}</a></td><td class="nowrap"><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a>&nbsp;|&nbsp;<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>&nbsp;|&nbsp;<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> {rename%filelogrename}</td></tr>'
60 archiveentry = '<li><a href="{url}archive/{node|short}{extension}">{type|escape}</a></li>'
61 indexentry = '<tr class="row{parity}"><td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td><td>{description}</td><td>{contact|obfuscate}</td><td>{lastchange|age} ago</td><td class="indexlinks">{archives%indexarchiveentry}</td><td><div class="rss_logo"><a href="{url}rss-log">RSS</a> <a href="{url}atom-log">Atom</a></div></td></tr>\n'
62 indexarchiveentry = '<a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
63 index = index.tmpl
64 urlparameter = '{separator}{name}={value|urlescape}'
65 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
66 graph = graph.tmpl
@@ -0,0 +1,34 b''
1 {header}
2 <title>{repo|escape}: Mercurial repository not found</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Not found: {repo|escape}</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li class="current">summary</li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li>
27 </ul>
28 </div>
29
30 <h2 class="no-link no-border">Not Found</h2>
31 <p class="normal">The specified repository "{repo|escape}" is unknown, sorry.</p>
32 <p class="normal">Please go back to the <a href="{url}">main repository list page</a>.</p>
33
34 {footer}
@@ -0,0 +1,33 b''
1 {header}
2 <title>{repo|escape}: Search</title>
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}"/>
5 </head>
6
7 <body>
8 <div id="container">
9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search</h1>
11
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
14 <dl class="search">
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" value="{query|escape}" /></dd>
17 </dl>
18 </form>
19
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
27 </ul>
28 </div>
29
30 <h2 class="no-link no-border">searching for {query|escape}</h2>
31 {entries}
32
33 {footer}
@@ -0,0 +1,32 b''
1 {header}
2 <div id="container">
3 <div class="page-header">
4 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog</h1>
5
6 <ul class="object-tools">
7 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
8 <li class="current"><a href="{url}shortlog">shortlog</a></li>
9 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
10 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
11 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
12 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
13 </ul>
14 <br class="clear"/>
15 <ul class="object-tools" style="margin-top:-2em">
16 <li class="current"><a href="{url}rev/{node|short}">changeset</a></li>
17 {archives%archiveentry}
18 </ul>
19 </div>
20
21 <div id="changelist" class="module">
22 <table cellspacing="0" id="changes_list">
23 <caption>shortlog</caption>
24 {entries%shortlogentry}
25 </table>
26 </div>
27
28 <div class="page-path">
29 {changenav%navshortentry}
30 </div>
31
32 {footer}
@@ -0,0 +1,94 b''
1 {header}
2 <div id="container">
3 <div class="page-header">
4 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary</h1>
5
6 <ul class="object-tools">
7 <li class="current"><a href='{url}summary{sessionvars%urlparameter}'>summary</a></li>
8 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
9 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
10 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
11 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
12 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
13 </ul>
14 <br class="clear"/>
15 <ul class="object-tools" style="margin-top:-2em">
16 <li class="current"><a href="{url}rev/{node|short}">changeset</a></li>
17 {archives%archiveentry}
18 </ul>
19 </div>
20
21 <div class="module">
22 <h2 class="no-link no-border">Mercurial Repository Overview</h2>
23 <div style="float:right; margin:10px;">
24 <form action="{url}log">
25 {sessionvars%hiddenformentry}
26 <label>Search: </label>
27 <input type="text" name="rev" />
28 </form>
29 </div>
30 <dl class="overview">
31 <dt>name</dt>
32 <dd>{repo|escape}</dd>
33 <dt>description</dt>
34 <dd>{desc}</dd>
35 <dt>owner</dt>
36 <dd>{owner|obfuscate}</dd>
37 <dt>last change</dt>
38 <dd>{lastchange|rfc822date}</dd>
39 </dl>
40 </div>
41 <div id="changelist" class="module">
42 <table cellspacing="0" id="changes_list">
43 <caption>Changes</caption>
44 <thead>
45 <th width="10%">Age</th>
46 <th width="10%">Author</th>
47 <th width="60%">Message</th>
48 <th width="15%"> </th>
49 </thead>
50 <tbody>
51 {shortlog}
52 <tr class="light">
53 <td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td>
54 </tr>
55 </tbody>
56 </table>
57 </div>
58
59 <div id="changelist" class="module">
60 <table>
61 <caption>Tags</caption>
62 <thead>
63 <th>Age</th>
64 <th>Name</th>
65 <th> </th>
66 </thead>
67 <tbody>
68 {tags}
69 <tr class="light">
70 <td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td>
71 </tr>
72 </tbody>
73 </table>
74 </div>
75
76 <div id="changelist" class="module">
77 <table>
78 <caption>Branches</caption>
79 <thead>
80 <th>Ago </th>
81 <th>Rev</th>
82 <th>Name </th>
83 <th> </th>
84 </thead>
85 <tbody>
86 {branches%branchentry}
87 <tr class="light">
88 <td colspan="4"><a class="list" href="#">...</a></td>
89 </tr>
90 </tbody>
91 </table>
92 </div>
93 {footer}
94 </div>
@@ -0,0 +1,21 b''
1 {header}
2 <div id="container">
3 <div class="page-header">
4 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / tags</h1>
5
6 <ul class="object-tools">
7 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
8 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
9 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
10 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
11 <li class="current"><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
12 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
13 </ul>
14 </div>
15
16 <table cellspacing="0" class="module">
17 <caption>tags</caption>
18 {entries%tagentry}
19 </table>
20
21 {footer}
@@ -1,94 +1,94 b''
1 ################################################################################
1 ################################################################################
2 ################################################################################
2 ################################################################################
3 # pylons_app - Pylons environment configuration #
3 # pylons_app - Pylons environment configuration #
4 # #
4 # #
5 # The %(here)s variable will be replaced with the parent directory of this file#
5 # The %(here)s variable will be replaced with the parent directory of this file#
6 ################################################################################
6 ################################################################################
7
7
8 [DEFAULT]
8 [DEFAULT]
9 debug = true
9 debug = true
10 ############################################
10 ############################################
11 ## Uncomment and replace with the address ##
11 ## Uncomment and replace with the address ##
12 ## which should receive any error reports ##
12 ## which should receive any error reports ##
13 ############################################
13 ############################################
14 #email_to = marcin.kuzminski@etelko.pl
14 #email_to = marcin.kuzminski@etelko.pl
15 #smtp_server = mail.etelko.pl
15 #smtp_server = mail.etelko.pl
16 #error_email_from = paste_error@localhost
16 #error_email_from = paste_error@localhost
17 #smtp_username =
17 #smtp_username =
18 #smtp_password =
18 #smtp_password =
19 #error_message = 'mercurial crash !'
19 #error_message = 'mercurial crash !'
20
20
21 [server:main]
21 [server:main]
22 use = egg:Paste#http
22 use = egg:Paste#http
23 host = 127.0.0.1
23 host = 127.0.0.1
24 port = 5000
24 port = 5000
25
25
26 [app:main]
26 [app:main]
27 use = egg:pylons_app
27 use = egg:pylons_app
28 full_stack = true
28 full_stack = true
29 static_files = false
29 static_files = true
30 lang=en
30 lang=en
31 cache_dir = %(here)s/data
31 cache_dir = %(here)s/data
32
32
33 ################################################################################
33 ################################################################################
34 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
34 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
35 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
35 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
36 ## execute malicious code after an exception is raised. ##
36 ## execute malicious code after an exception is raised. ##
37 ################################################################################
37 ################################################################################
38 #set debug = false
38 #set debug = false
39
39
40
40
41 ################################
41 ################################
42 ### LOGGING CONFIGURATION ####
42 ### LOGGING CONFIGURATION ####
43 ################################
43 ################################
44 [loggers]
44 [loggers]
45 keys = root, routes, pylons_app, sqlalchemy
45 keys = root, routes, pylons_app, sqlalchemy
46
46
47 [handlers]
47 [handlers]
48 keys = console
48 keys = console
49
49
50 [formatters]
50 [formatters]
51 keys = generic
51 keys = generic
52
52
53 #############
53 #############
54 ## LOGGERS ##
54 ## LOGGERS ##
55 #############
55 #############
56 [logger_root]
56 [logger_root]
57 level = NOTSET
57 level = NOTSET
58 handlers = console
58 handlers = console
59
59
60 [logger_routes]
60 [logger_routes]
61 level = INFO
61 level = INFO
62 handlers = console
62 handlers = console
63 qualname = routes.middleware
63 qualname = routes.middleware
64 # "level = DEBUG" logs the route matched and routing variables.
64 # "level = DEBUG" logs the route matched and routing variables.
65
65
66 [logger_pylons_app]
66 [logger_pylons_app]
67 level = DEBUG
67 level = DEBUG
68 handlers = console
68 handlers = console
69 qualname = pylons_app
69 qualname = pylons_app
70
70
71
71
72 [logger_sqlalchemy]
72 [logger_sqlalchemy]
73 level = DEBUG
73 level = DEBUG
74 handlers = console
74 handlers = console
75 qualname = sqlalchemy.engine
75 qualname = sqlalchemy.engine
76
76
77 ##############
77 ##############
78 ## HANDLERS ##
78 ## HANDLERS ##
79 ##############
79 ##############
80
80
81 [handler_console]
81 [handler_console]
82 class = StreamHandler
82 class = StreamHandler
83 args = (sys.stderr,)
83 args = (sys.stderr,)
84 level = NOTSET
84 level = NOTSET
85 formatter = generic
85 formatter = generic
86
86
87 ################
87 ################
88 ## FORMATTERS ##
88 ## FORMATTERS ##
89 ################
89 ################
90
90
91 [formatter_generic]
91 [formatter_generic]
92 format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
92 format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
93 datefmt = %H:%M:%S
93 datefmt = %H:%M:%S
94
94
@@ -1,20 +1,21 b''
1 [hooks]
1 [hooks]
2 #to do push with autoupdate
2 #to do push with autoupdate
3 changegroup = hg update >&2
3 changegroup = hg update >&2
4
4
5 [extensions]
5 [extensions]
6 hgext.highlight=
6 hgext.highlight=
7 #hgk=
7 #hgk=
8
8
9 [web]
9 [web]
10 push_ssl = false
10 push_ssl = false
11 contact = develop@etelko.pl
11 contact = develop@etelko.pl
12 allow_archive = gz zip bz2
12 allow_archive = gz zip bz2
13 allow_push = *
13 allow_push = *
14 style = gitweb
14 templates=/home/marcink/python_workspace/hg_app/pylons_app/templates/
15 style = monoblue_custom
15 pygments_style = trac
16 pygments_style = trac
16 staticurl = /static
17 staticurl = /hg_static/
17 baseurl = /
18 baseurl = /
18
19
19 [paths]
20 [paths]
20 / = /home/marcink/python_workspace/**
21 / = /home/marcink/python_workspace/**
@@ -1,102 +1,101 b''
1 #!/usr/bin/python
1 #!/usr/bin/python
2 # -*- coding: utf-8 -*-
2 # -*- coding: utf-8 -*-
3 import logging
3 import logging
4 from pylons_app.lib.base import BaseController
4 from pylons_app.lib.base import BaseController, render
5 from pylons import c, g, session, h, request
5 from pylons import c, g, session, h, request
6 from mako.template import Template
6 from mako.template import Template
7 from pprint import pprint
7 from pprint import pprint
8 import os
8 import os
9 from mercurial import ui, hg
9 from mercurial import ui, hg
10 from mercurial.error import RepoError
10 from mercurial.error import RepoError
11 from ConfigParser import ConfigParser
11 from ConfigParser import ConfigParser
12
12
13 log = logging.getLogger(__name__)
13 log = logging.getLogger(__name__)
14
14
15 class HgController(BaseController):
15 class HgController(BaseController):
16 def index(self):
16 def index(self):
17 return g.hgapp(request.environ, self.start_response)
17 return g.hgapp(request.environ, self.start_response)
18
18
19 def view(self, *args, **kwargs):
19 def view(self, *args, **kwargs):
20 return g.hgapp(request.environ, self.start_response)
20 return g.hgapp(request.environ, self.start_response)
21
21
22 def add_repo(self, new_repo):
22 def add_repo(self, new_repo):
23 tmpl = u'''
23 c.staticurl = g.statics
24 <html>
24
25 <body>
26 %(msg)s%(new_repo)s!<br \>
27 <a href="/">repos</a>
28 </body>
29 </html>
30 '''
31 #extra check it can be add since it's the command
25 #extra check it can be add since it's the command
32 if new_repo == 'add':
26 if new_repo == 'add':
33 return [tmpl % ({'new_repo':'', 'msg':'you basstard ! this repo is a command'})]
27 c.msg = 'you basstard ! this repo is a command'
28 c.new_repo = ''
29 return render('add.html')
34
30
35 new_repo = new_repo.replace(" ", "_")
31 new_repo = new_repo.replace(" ", "_")
36 new_repo = new_repo.replace("-", "_")
32 new_repo = new_repo.replace("-", "_")
37
33
38 try:
34 try:
39 self._create_repo(new_repo)
35 self._create_repo(new_repo)
36 c.new_repo = new_repo
37 c.msg = 'added repo'
40 except Exception as e:
38 except Exception as e:
41 return [tmpl % ({'new_repo':' Exception when adding: ' + new_repo, 'msg':str(e)})]
39 c.new_repo = 'Exception when adding: %s' % new_repo
40 c.msg = str(e)
42
41
43 return [tmpl % ({'new_repo':new_repo, 'msg':'added repo: '})]
42 return render('add.html')
44
43
45 def _check_repo(self, repo_name):
44 def _check_repo(self, repo_name):
46 p = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
45 p = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
47 config_path = os.path.join(p, 'hgwebdir.config')
46 config_path = os.path.join(p, 'hgwebdir.config')
48
47
49 cp = ConfigParser()
48 cp = ConfigParser()
50
49
51 cp.read(config_path)
50 cp.read(config_path)
52 repos_path = cp.get('paths', '/').replace("**", '')
51 repos_path = cp.get('paths', '/').replace("**", '')
53
52
54 if not repos_path:
53 if not repos_path:
55 raise Exception('Could not read config !')
54 raise Exception('Could not read config !')
56
55
57 self.repo_path = os.path.join(repos_path, repo_name)
56 self.repo_path = os.path.join(repos_path, repo_name)
58
57
59 try:
58 try:
60 r = hg.repository(ui.ui(), self.repo_path)
59 r = hg.repository(ui.ui(), self.repo_path)
61 hg.verify(r)
60 hg.verify(r)
62 #here we hnow that repo exists it was verified
61 #here we hnow that repo exists it was verified
63 log.info('%s repo is already created', repo_name)
62 log.info('%s repo is already created', repo_name)
64 raise Exception('Repo exists')
63 raise Exception('Repo exists')
65 except RepoError:
64 except RepoError:
66 log.info('%s repo is free for creation', repo_name)
65 log.info('%s repo is free for creation', repo_name)
67 #it means that there is no valid repo there...
66 #it means that there is no valid repo there...
68 return True
67 return True
69
68
70
69
71 def _create_repo(self, repo_name):
70 def _create_repo(self, repo_name):
72 if repo_name in [None, '', 'add']:
71 if repo_name in [None, '', 'add']:
73 raise Exception('undefined repo_name of repo')
72 raise Exception('undefined repo_name of repo')
74
73
75 if self._check_repo(repo_name):
74 if self._check_repo(repo_name):
76 log.info('creating repo %s in %s', repo_name, self.repo_path)
75 log.info('creating repo %s in %s', repo_name, self.repo_path)
77 cmd = """mkdir %s && hg init %s""" \
76 cmd = """mkdir %s && hg init %s""" \
78 % (self.repo_path, self.repo_path)
77 % (self.repo_path, self.repo_path)
79 os.popen(cmd)
78 os.popen(cmd)
80
79
81 #def _make_app():
80 #def _make_app():
82 # #for single a repo
81 # #for single a repo
83 # #return hgweb("/path/to/repo", "Name")
82 # #return hgweb("/path/to/repo", "Name")
84 # repos = "hgwebdir.config"
83 # repos = "hgwebdir.config"
85 # return hgwebdir(repos)
84 # return hgwebdir(repos)
86 #
85 #
87
86
88 # def view(self, environ, start_response):
87 # def view(self, environ, start_response):
89 # #the following is only needed when using hgwebdir
88 # #the following is only needed when using hgwebdir
90 # app = _make_app()
89 # app = _make_app()
91 # #return wsgi_app(environ, start_response)
90 # #return wsgi_app(environ, start_response)
92 # response = app(request.environ, self.start_response)
91 # response = app(request.environ, self.start_response)
93 #
92 #
94 # if environ['PATH_INFO'].find("static") != -1:
93 # if environ['PATH_INFO'].find("static") != -1:
95 # return response
94 # return response
96 # else:
95 # else:
97 # #wrap the murcurial response in a mako template.
96 # #wrap the murcurial response in a mako template.
98 # template = Template("".join(response),
97 # template = Template("".join(response),
99 # lookup = environ['pylons.pylons']\
98 # lookup = environ['pylons.pylons']\
100 # .config['pylons.g'].mako_lookup)
99 # .config['pylons.g'].mako_lookup)
101 #
100 #
102 # return template.render(g = g, c = c, session = session, h = h)
101 # return template.render(g = g, c = c, session = session, h = h)
@@ -1,27 +1,63 b''
1 """The application's Globals object"""
1 """The application's Globals object"""
2 #uncomment the following if you want to serve a single repo
2 #uncomment the following if you want to serve a single repo
3 #from mercurial.hgweb.hgweb_mod import hgweb
3 #from mercurial.hgweb.hgweb_mod import hgweb
4 from mercurial.hgweb.hgwebdir_mod import hgwebdir
4 from mercurial.hgweb.hgwebdir_mod import hgwebdir
5 from mercurial import templater
5 from mercurial.hgweb.request import wsgiapplication
6 from mercurial.hgweb.request import wsgiapplication
7 from mercurial import ui, config
8 import os
6 class Globals(object):
9 class Globals(object):
7
10
8 """Globals acts as a container for objects available throughout the
11 """Globals acts as a container for objects available throughout the
9 life of the application
12 life of the application
10
13
11 """
14 """
12
15
13 def __init__(self):
16 def __init__(self):
14 """One instance of Globals is created during application
17 """One instance of Globals is created during application
15 initialization and is available during requests via the
18 initialization and is available during requests via the
16 'app_globals' variable
19 'app_globals' variable
17
20
18 """
21 """
19 #two ways of building the merc app i don't know
22 #two ways of building the merc app i don't know
20 #the fastest one but belive the wsgiapp is better
23 #the fastest one but belive the wsgiapp is better
21 #self.hgapp = self.make_web_app()
24 #self.hgapp = self.make_web_app()
22 self.hgapp = wsgiapplication(self.make_web_app)
25 self.hgapp = wsgiapplication(self.make_web_app)
23
26
27
24 def make_web_app(self):
28 def make_web_app(self):
25 repos = "hgwebdir.config"
29 repos = "hgwebdir.config"
26 hgwebapp = hgwebdir(repos)
30 baseui = ui.ui()
31 cfg = config.config()
32 cfg.read(repos)
33 paths = cfg.items('paths')
34 self.check_repo_dir(paths)
35 self.set_statics(cfg)
36
37 for k, v in cfg.items('web'):
38 baseui.setconfig('web', k, v)
39 #magic trick to make our custom template dir working
40 templater.path.append(cfg.get('web', 'templates', None))
41 hgwebapp = hgwebdir(paths, baseui = baseui)
27 return hgwebapp
42 return hgwebapp
43
44
45 def set_statics(self, cfg):
46 '''
47 set's the statics for use in mako templates
48 @param cfg:
49 '''
50 self.statics = cfg.get('web', 'staticurl', '/static')
51 if not self.statics.endswith('/'):
52 self.statics += '/'
53
54
55 def check_repo_dir(self, paths):
56 repos_path = paths[0][1].split('/')
57 if repos_path[-1] in ['*', '**']:
58 repos_path = repos_path[:-1]
59 if repos_path[0] != '/':
60 repos_path[0] = '/'
61 if not os.path.isdir(os.path.join(*repos_path)):
62 raise Exception('Not a valid repository in %s' % paths[0][1])
63
General Comments 0
You need to be logged in to leave comments. Login now