Mercurial > public > mercurial-scm > hg
annotate mercurial/templates/static/mercurial.js @ 35255:ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Just to give some context to the return values: vertex() needs to return two
HTML elements as strings, <li> to be used as a background and a <li> to be
shown in foreground. The latter was made obsolete recently when changesets
started to be rendered server-side, but background elements are still useful
for now.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Wed, 06 Dec 2017 12:10:16 +0800 |
parents | 9c99541e3d56 |
children | 27ab3150cd50 |
rev | line source |
---|---|
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
1 // mercurial.js - JavaScript utility functions |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
2 // |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
3 // Rendering of branch DAGs on the client side |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
4 // Display of elapsed time |
14571
17c0cb1045e5
paper, coal: display diffstat on the changeset page
Steven Brown <StevenGBrown@gmail.com>
parents:
14046
diff
changeset
|
5 // Show or hide diffstat |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
6 // |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
7 // Copyright 2008 Dirkjan Ochtman <dirkjan AT ochtman DOT nl> |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
8 // Copyright 2006 Alexander Schremmer <alex AT alexanderweb DOT de> |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
9 // |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
10 // derived from code written by Scott James Remnant <scott@ubuntu.com> |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
11 // Copyright 2005 Canonical Ltd. |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
12 // |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
13 // This software may be used and distributed according to the terms |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
14 // of the GNU General Public License, incorporated herein by reference. |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
15 |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
16 var colors = [ |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
17 [ 1.0, 0.0, 0.0 ], |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
18 [ 1.0, 1.0, 0.0 ], |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
19 [ 0.0, 1.0, 0.0 ], |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
20 [ 0.0, 1.0, 1.0 ], |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
21 [ 0.0, 0.0, 1.0 ], |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
22 [ 1.0, 0.0, 1.0 ] |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
23 ]; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
24 |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
25 function Graph() { |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
26 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
27 this.canvas = document.getElementById('graph'); |
17694
fa714f3ed298
hgweb: change IE canvas test (issue3639)
Matt Mackall <mpm@selenic.com>
parents:
16138
diff
changeset
|
28 if (window.G_vmlCanvasManager) this.canvas = window.G_vmlCanvasManager.initElement(this.canvas); |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
29 this.ctx = this.canvas.getContext('2d'); |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
30 this.ctx.strokeStyle = 'rgb(0, 0, 0)'; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
31 this.ctx.fillStyle = 'rgb(0, 0, 0)'; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
32 this.bg = [0, 4]; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
33 this.cell = [2, 0]; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
34 this.columns = 0; |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
35 |
35254
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
36 } |
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
37 |
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
38 Graph.prototype = { |
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
39 reset: function() { |
19780
659bc603bd0d
hgweb: add reset javascript function to Graph
Alexander Plavin <alexander@plav.in>
parents:
19760
diff
changeset
|
40 this.bg = [0, 4]; |
659bc603bd0d
hgweb: add reset javascript function to Graph
Alexander Plavin <alexander@plav.in>
parents:
19760
diff
changeset
|
41 this.cell = [2, 0]; |
659bc603bd0d
hgweb: add reset javascript function to Graph
Alexander Plavin <alexander@plav.in>
parents:
19760
diff
changeset
|
42 this.columns = 0; |
659bc603bd0d
hgweb: add reset javascript function to Graph
Alexander Plavin <alexander@plav.in>
parents:
19760
diff
changeset
|
43 document.getElementById('nodebgs').innerHTML = ''; |
659bc603bd0d
hgweb: add reset javascript function to Graph
Alexander Plavin <alexander@plav.in>
parents:
19760
diff
changeset
|
44 document.getElementById('graphnodes').innerHTML = ''; |
35254
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
45 }, |
19780
659bc603bd0d
hgweb: add reset javascript function to Graph
Alexander Plavin <alexander@plav.in>
parents:
19760
diff
changeset
|
46 |
35254
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
47 scale: function(height) { |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
48 this.bg_height = height; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
49 this.box_size = Math.floor(this.bg_height / 1.2); |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
50 this.cell_height = this.box_size; |
35254
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
51 }, |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
52 |
35254
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
53 setColor: function(color, bg, fg) { |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
54 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
55 // Set the colour. |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
56 // |
16138
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
57 // If color is a string, expect an hexadecimal RGB |
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
58 // value and apply it unchanged. If color is a number, |
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
59 // pick a distinct colour based on an internal wheel; |
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
60 // the bg parameter provides the value that should be |
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
61 // assigned to the 'zero' colours and the fg parameter |
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
62 // provides the multiplier that should be applied to |
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
63 // the foreground colours. |
16130
33f702e52906
graph: in hgrc specify line color for main branch
Constantine Linnick <theaspect@gmail.com>
parents:
16129
diff
changeset
|
64 var s; |
35157
ccf86aa5797c
hgweb: use strict equals in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35135
diff
changeset
|
65 if(typeof color === "string") { |
16138
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
66 s = "#" + color; |
35157
ccf86aa5797c
hgweb: use strict equals in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35135
diff
changeset
|
67 } else { //typeof color === "number" |
16130
33f702e52906
graph: in hgrc specify line color for main branch
Constantine Linnick <theaspect@gmail.com>
parents:
16129
diff
changeset
|
68 color %= colors.length; |
33f702e52906
graph: in hgrc specify line color for main branch
Constantine Linnick <theaspect@gmail.com>
parents:
16129
diff
changeset
|
69 var red = (colors[color][0] * fg) || bg; |
33f702e52906
graph: in hgrc specify line color for main branch
Constantine Linnick <theaspect@gmail.com>
parents:
16129
diff
changeset
|
70 var green = (colors[color][1] * fg) || bg; |
33f702e52906
graph: in hgrc specify line color for main branch
Constantine Linnick <theaspect@gmail.com>
parents:
16129
diff
changeset
|
71 var blue = (colors[color][2] * fg) || bg; |
33f702e52906
graph: in hgrc specify line color for main branch
Constantine Linnick <theaspect@gmail.com>
parents:
16129
diff
changeset
|
72 red = Math.round(red * 255); |
33f702e52906
graph: in hgrc specify line color for main branch
Constantine Linnick <theaspect@gmail.com>
parents:
16129
diff
changeset
|
73 green = Math.round(green * 255); |
33f702e52906
graph: in hgrc specify line color for main branch
Constantine Linnick <theaspect@gmail.com>
parents:
16129
diff
changeset
|
74 blue = Math.round(blue * 255); |
33f702e52906
graph: in hgrc specify line color for main branch
Constantine Linnick <theaspect@gmail.com>
parents:
16129
diff
changeset
|
75 s = 'rgb(' + red + ', ' + green + ', ' + blue + ')'; |
33f702e52906
graph: in hgrc specify line color for main branch
Constantine Linnick <theaspect@gmail.com>
parents:
16129
diff
changeset
|
76 } |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
77 this.ctx.strokeStyle = s; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
78 this.ctx.fillStyle = s; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
79 return s; |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
80 |
35254
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
81 }, |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
82 |
35254
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
83 edge: function(x0, y0, x1, y1, color, width) { |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
84 |
16137
8fd18eb8aab7
templates: move Graph.edge() implementation in mercurial.js
Patrick Mezard <patrick@mezard.eu>
parents:
16130
diff
changeset
|
85 this.setColor(color, 0.0, 0.65); |
16138
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
86 if(width >= 0) |
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
87 this.ctx.lineWidth = width; |
16137
8fd18eb8aab7
templates: move Graph.edge() implementation in mercurial.js
Patrick Mezard <patrick@mezard.eu>
parents:
16130
diff
changeset
|
88 this.ctx.beginPath(); |
8fd18eb8aab7
templates: move Graph.edge() implementation in mercurial.js
Patrick Mezard <patrick@mezard.eu>
parents:
16130
diff
changeset
|
89 this.ctx.moveTo(x0, y0); |
8fd18eb8aab7
templates: move Graph.edge() implementation in mercurial.js
Patrick Mezard <patrick@mezard.eu>
parents:
16130
diff
changeset
|
90 this.ctx.lineTo(x1, y1); |
8fd18eb8aab7
templates: move Graph.edge() implementation in mercurial.js
Patrick Mezard <patrick@mezard.eu>
parents:
16130
diff
changeset
|
91 this.ctx.stroke(); |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
92 |
35254
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
93 }, |
16137
8fd18eb8aab7
templates: move Graph.edge() implementation in mercurial.js
Patrick Mezard <patrick@mezard.eu>
parents:
16130
diff
changeset
|
94 |
35255
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
95 vertex: function(x, y, radius, color, parity, cur) { |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
96 this.ctx.beginPath(); |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
97 this.setColor(color, 0.25, 0.75); |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
98 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true); |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
99 this.ctx.fill(); |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
100 |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
101 var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size; |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
102 var item = document.querySelector('[data-node="' + cur.node + '"]'); |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
103 if (item) { |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
104 item.style.paddingLeft = left + 'px'; |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
105 } |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
106 |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
107 return ['', '']; |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
108 }, |
ad0de63e1d6a
hgweb: move common vertex code to Graph.prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35254
diff
changeset
|
109 |
35254
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
110 render: function(data) { |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
111 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
112 var backgrounds = ''; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
113 var nodedata = ''; |
35160
69a865dc2ada
hgweb: define locally used variables as actually local in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35159
diff
changeset
|
114 var line, start, end, color, x, y, x0, y0, x1, y1, column, radius; |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
115 |
35158
241da2de0e9f
hgweb: properly iterate over arrays and objects in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35157
diff
changeset
|
116 for (var i = 0; i < data.length; i++) { |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
117 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
118 var parity = i % 2; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
119 this.cell[1] += this.bg_height; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
120 this.bg[1] += this.bg_height; |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
121 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
122 var cur = data[i]; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
123 var fold = false; |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
124 |
16138
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
125 var prevWidth = this.ctx.lineWidth; |
35218
d61f2a3d5e53
hgweb: only include graph-related data in jsdata variable on /graph pages (BC)
Anton Shestakov <av6@dwimlabs.net>
parents:
35216
diff
changeset
|
126 for (var j = 0; j < cur.edges.length; j++) { |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
127 |
35218
d61f2a3d5e53
hgweb: only include graph-related data in jsdata variable on /graph pages (BC)
Anton Shestakov <av6@dwimlabs.net>
parents:
35216
diff
changeset
|
128 line = cur.edges[j]; |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
129 start = line[0]; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
130 end = line[1]; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
131 color = line[2]; |
16138
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
132 var width = line[3]; |
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
133 if(width < 0) |
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
134 width = prevWidth; |
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
135 var branchcolor = line[4]; |
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
136 if(branchcolor) |
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
137 color = branchcolor; |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
138 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
139 if (end > this.columns || start > this.columns) { |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
140 this.columns += 1; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
141 } |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
142 |
35157
ccf86aa5797c
hgweb: use strict equals in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35135
diff
changeset
|
143 if (start === this.columns && start > end) { |
35042
5f82e26cbed1
hgweb: fix jshint issues in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
34391
diff
changeset
|
144 fold = true; |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
145 } |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
146 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
147 x0 = this.cell[0] + this.box_size * start + this.box_size / 2; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
148 y0 = this.bg[1] - this.bg_height / 2; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
149 x1 = this.cell[0] + this.box_size * end + this.box_size / 2; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
150 y1 = this.bg[1] + this.bg_height / 2; |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
151 |
16138
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
152 this.edge(x0, y0, x1, y1, color, width); |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
153 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
154 } |
16138
6e4de55a41a4
hgweb: refactor graph customization javascript
Patrick Mezard <patrick@mezard.eu>
parents:
16137
diff
changeset
|
155 this.ctx.lineWidth = prevWidth; |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
156 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
157 // Draw the revision node in the right column |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
158 |
35218
d61f2a3d5e53
hgweb: only include graph-related data in jsdata variable on /graph pages (BC)
Anton Shestakov <av6@dwimlabs.net>
parents:
35216
diff
changeset
|
159 column = cur.vertex[0]; |
d61f2a3d5e53
hgweb: only include graph-related data in jsdata variable on /graph pages (BC)
Anton Shestakov <av6@dwimlabs.net>
parents:
35216
diff
changeset
|
160 color = cur.vertex[1]; |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
161 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
162 radius = this.box_size / 8; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
163 x = this.cell[0] + this.box_size * column + this.box_size / 2; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
164 y = this.bg[1] - this.bg_height / 2; |
35160
69a865dc2ada
hgweb: define locally used variables as actually local in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35159
diff
changeset
|
165 var add = this.vertex(x, y, radius, color, parity, cur); |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
166 backgrounds += add[0]; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
167 nodedata += add[1]; |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
168 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
169 if (fold) this.columns -= 1; |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
170 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
171 } |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
172 |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
173 document.getElementById('nodebgs').innerHTML += backgrounds; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
174 document.getElementById('graphnodes').innerHTML += nodedata; |
19530
a63d3ff0d765
hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org>
parents:
19430
diff
changeset
|
175 |
35254
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
176 } |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
177 |
35254
9c99541e3d56
hgweb: create Graph methods using a prototype
Anton Shestakov <av6@dwimlabs.net>
parents:
35253
diff
changeset
|
178 }; |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
179 |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
180 |
19858
4a8c5a51f7a1
hgweb: add parentSelector argument to process_dates
Alexander Plavin <alexander@plav.in>
parents:
19857
diff
changeset
|
181 function process_dates(parentSelector){ |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
182 |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
183 // derived from code from mercurial/templatefilter.py |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
184 |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
185 var scales = { |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
186 'year': 365 * 24 * 60 * 60, |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
187 'month': 30 * 24 * 60 * 60, |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
188 'week': 7 * 24 * 60 * 60, |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
189 'day': 24 * 60 * 60, |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
190 'hour': 60 * 60, |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
191 'minute': 60, |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
192 'second': 1 |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
193 }; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
194 |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
195 function format(count, string){ |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
196 var ret = count + ' ' + string; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
197 if (count > 1){ |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
198 ret = ret + 's'; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
199 } |
14881
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
200 return ret; |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
201 } |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
202 |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
203 function shortdate(date){ |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
204 var ret = date.getFullYear() + '-'; |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
205 // getMonth() gives a 0-11 result |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
206 var month = date.getMonth() + 1; |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
207 if (month <= 9){ |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
208 ret += '0' + month; |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
209 } else { |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
210 ret += month; |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
211 } |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
212 ret += '-'; |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
213 var day = date.getDate(); |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
214 if (day <= 9){ |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
215 ret += '0' + day; |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
216 } else { |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
217 ret += day; |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
218 } |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
219 return ret; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
220 } |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
221 |
14881
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
222 function age(datestr){ |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
223 var now = new Date(); |
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
224 var once = new Date(datestr); |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
225 if (isNaN(once.getTime())){ |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
226 // parsing error |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
227 return datestr; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
228 } |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
229 |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
230 var delta = Math.floor((now.getTime() - once.getTime()) / 1000); |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
231 |
19834
80633eac7b9d
hgweb: eliminate extra complexity in process_dates definition
Alexander Plavin <alexander@plav.in>
parents:
19782
diff
changeset
|
232 var future = false; |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
233 if (delta < 0){ |
19834
80633eac7b9d
hgweb: eliminate extra complexity in process_dates definition
Alexander Plavin <alexander@plav.in>
parents:
19782
diff
changeset
|
234 future = true; |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
235 delta = -delta; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
236 if (delta > (30 * scales.year)){ |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
237 return "in the distant future"; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
238 } |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
239 } |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
240 |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
241 if (delta > (2 * scales.year)){ |
14881
2e54387976d4
web: Output a correct date in short format (issue2902)
Benoit Allard <benoit@aeteurope.nl>
parents:
14571
diff
changeset
|
242 return shortdate(once); |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
243 } |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
244 |
35042
5f82e26cbed1
hgweb: fix jshint issues in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
34391
diff
changeset
|
245 for (var unit in scales){ |
35158
241da2de0e9f
hgweb: properly iterate over arrays and objects in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35157
diff
changeset
|
246 if (!scales.hasOwnProperty(unit)) { continue; } |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
247 var s = scales[unit]; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
248 var n = Math.floor(delta / s); |
35157
ccf86aa5797c
hgweb: use strict equals in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35135
diff
changeset
|
249 if ((n >= 2) || (s === 1)){ |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
250 if (future){ |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
251 return format(n, unit) + ' from now'; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
252 } else { |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
253 return format(n, unit) + ' ago'; |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
254 } |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
255 } |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
256 } |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
257 } |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
258 |
19858
4a8c5a51f7a1
hgweb: add parentSelector argument to process_dates
Alexander Plavin <alexander@plav.in>
parents:
19857
diff
changeset
|
259 var nodes = document.querySelectorAll((parentSelector || '') + ' .age'); |
19834
80633eac7b9d
hgweb: eliminate extra complexity in process_dates definition
Alexander Plavin <alexander@plav.in>
parents:
19782
diff
changeset
|
260 var dateclass = new RegExp('\\bdate\\b'); |
80633eac7b9d
hgweb: eliminate extra complexity in process_dates definition
Alexander Plavin <alexander@plav.in>
parents:
19782
diff
changeset
|
261 for (var i=0; i<nodes.length; ++i){ |
80633eac7b9d
hgweb: eliminate extra complexity in process_dates definition
Alexander Plavin <alexander@plav.in>
parents:
19782
diff
changeset
|
262 var node = nodes[i]; |
80633eac7b9d
hgweb: eliminate extra complexity in process_dates definition
Alexander Plavin <alexander@plav.in>
parents:
19782
diff
changeset
|
263 var classes = node.className; |
19857
14fddba036f8
hgweb: optimize process_dates function
Alexander Plavin <alexander@plav.in>
parents:
19834
diff
changeset
|
264 var agevalue = age(node.textContent); |
14fddba036f8
hgweb: optimize process_dates function
Alexander Plavin <alexander@plav.in>
parents:
19834
diff
changeset
|
265 if (dateclass.test(classes)){ |
14fddba036f8
hgweb: optimize process_dates function
Alexander Plavin <alexander@plav.in>
parents:
19834
diff
changeset
|
266 // We want both: date + (age) |
14fddba036f8
hgweb: optimize process_dates function
Alexander Plavin <alexander@plav.in>
parents:
19834
diff
changeset
|
267 node.textContent += ' ('+agevalue+')'; |
14fddba036f8
hgweb: optimize process_dates function
Alexander Plavin <alexander@plav.in>
parents:
19834
diff
changeset
|
268 } else { |
14fddba036f8
hgweb: optimize process_dates function
Alexander Plavin <alexander@plav.in>
parents:
19834
diff
changeset
|
269 node.title = node.textContent; |
14fddba036f8
hgweb: optimize process_dates function
Alexander Plavin <alexander@plav.in>
parents:
19834
diff
changeset
|
270 node.textContent = agevalue; |
14046
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
271 } |
b24e5a708fad
web: Made elapsed time calculation dynamic (javascript).
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
272 } |
19834
80633eac7b9d
hgweb: eliminate extra complexity in process_dates definition
Alexander Plavin <alexander@plav.in>
parents:
19782
diff
changeset
|
273 } |
14571
17c0cb1045e5
paper, coal: display diffstat on the changeset page
Steven Brown <StevenGBrown@gmail.com>
parents:
14046
diff
changeset
|
274 |
19428
c3cdba6e5d7f
hgweb: toggleDiffstat function instead of showDiffstat and hideDiffstat
Alexander Plavin <me@aplavin.ru>
parents:
17694
diff
changeset
|
275 function toggleDiffstat() { |
c3cdba6e5d7f
hgweb: toggleDiffstat function instead of showDiffstat and hideDiffstat
Alexander Plavin <me@aplavin.ru>
parents:
17694
diff
changeset
|
276 var curdetails = document.getElementById('diffstatdetails').style.display; |
35157
ccf86aa5797c
hgweb: use strict equals in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35135
diff
changeset
|
277 var curexpand = curdetails === 'none' ? 'inline' : 'none'; |
19428
c3cdba6e5d7f
hgweb: toggleDiffstat function instead of showDiffstat and hideDiffstat
Alexander Plavin <me@aplavin.ru>
parents:
17694
diff
changeset
|
278 document.getElementById('diffstatdetails').style.display = curexpand; |
c3cdba6e5d7f
hgweb: toggleDiffstat function instead of showDiffstat and hideDiffstat
Alexander Plavin <me@aplavin.ru>
parents:
17694
diff
changeset
|
279 document.getElementById('diffstatexpand').style.display = curdetails; |
14571
17c0cb1045e5
paper, coal: display diffstat on the changeset page
Steven Brown <StevenGBrown@gmail.com>
parents:
14046
diff
changeset
|
280 } |
19430
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
281 |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
282 function toggleLinewrap() { |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
283 function getLinewrap() { |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
284 var nodes = document.getElementsByClassName('sourcelines'); |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
285 // if there are no such nodes, error is thrown here |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
286 return nodes[0].classList.contains('wrap'); |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
287 } |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
288 |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
289 function setLinewrap(enable) { |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
290 var nodes = document.getElementsByClassName('sourcelines'); |
35042
5f82e26cbed1
hgweb: fix jshint issues in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
34391
diff
changeset
|
291 var i; |
5f82e26cbed1
hgweb: fix jshint issues in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
34391
diff
changeset
|
292 for (i = 0; i < nodes.length; i++) { |
19430
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
293 if (enable) { |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
294 nodes[i].classList.add('wrap'); |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
295 } else { |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
296 nodes[i].classList.remove('wrap'); |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
297 } |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
298 } |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
299 |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
300 var links = document.getElementsByClassName('linewraplink'); |
35042
5f82e26cbed1
hgweb: fix jshint issues in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
34391
diff
changeset
|
301 for (i = 0; i < links.length; i++) { |
19430
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
302 links[i].innerHTML = enable ? 'on' : 'off'; |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
303 } |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
304 } |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
305 |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
306 setLinewrap(!getLinewrap()); |
5ec5097b4c0f
hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru>
parents:
19428
diff
changeset
|
307 } |
19739
5bdc179e58c1
hgweb: add format javascript function
Alexander Plavin <alexander@plav.in>
parents:
19531
diff
changeset
|
308 |
5bdc179e58c1
hgweb: add format javascript function
Alexander Plavin <alexander@plav.in>
parents:
19531
diff
changeset
|
309 function format(str, replacements) { |
5bdc179e58c1
hgweb: add format javascript function
Alexander Plavin <alexander@plav.in>
parents:
19531
diff
changeset
|
310 return str.replace(/%(\w+)%/g, function(match, p1) { |
5bdc179e58c1
hgweb: add format javascript function
Alexander Plavin <alexander@plav.in>
parents:
19531
diff
changeset
|
311 return String(replacements[p1]); |
5bdc179e58c1
hgweb: add format javascript function
Alexander Plavin <alexander@plav.in>
parents:
19531
diff
changeset
|
312 }); |
5bdc179e58c1
hgweb: add format javascript function
Alexander Plavin <alexander@plav.in>
parents:
19531
diff
changeset
|
313 } |
19740
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
314 |
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
315 function makeRequest(url, method, onstart, onsuccess, onerror, oncomplete) { |
35160
69a865dc2ada
hgweb: define locally used variables as actually local in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35159
diff
changeset
|
316 var xhr = new XMLHttpRequest(); |
35159
018aac6d7cb0
hgweb: rename an instance of XMLHttpRequest to xhr in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35158
diff
changeset
|
317 xhr.onreadystatechange = function() { |
018aac6d7cb0
hgweb: rename an instance of XMLHttpRequest to xhr in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35158
diff
changeset
|
318 if (xhr.readyState === 4) { |
19740
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
319 try { |
35159
018aac6d7cb0
hgweb: rename an instance of XMLHttpRequest to xhr in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35158
diff
changeset
|
320 if (xhr.status === 200) { |
018aac6d7cb0
hgweb: rename an instance of XMLHttpRequest to xhr in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35158
diff
changeset
|
321 onsuccess(xhr.responseText); |
19740
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
322 } else { |
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
323 throw 'server error'; |
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
324 } |
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
325 } catch (e) { |
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
326 onerror(e); |
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
327 } finally { |
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
328 oncomplete(); |
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
329 } |
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
330 } |
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
331 }; |
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
332 |
35159
018aac6d7cb0
hgweb: rename an instance of XMLHttpRequest to xhr in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35158
diff
changeset
|
333 xhr.open(method, url); |
018aac6d7cb0
hgweb: rename an instance of XMLHttpRequest to xhr in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35158
diff
changeset
|
334 xhr.overrideMimeType("text/xhtml; charset=" + document.characterSet.toLowerCase()); |
018aac6d7cb0
hgweb: rename an instance of XMLHttpRequest to xhr in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35158
diff
changeset
|
335 xhr.send(); |
19740
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
336 onstart(); |
35159
018aac6d7cb0
hgweb: rename an instance of XMLHttpRequest to xhr in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35158
diff
changeset
|
337 return xhr; |
19740
2228bd109706
hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in>
parents:
19739
diff
changeset
|
338 } |
19741
2a9a21e1e1db
hgweb: add docFromHTML javascript function
Alexander Plavin <alexander@plav.in>
parents:
19740
diff
changeset
|
339 |
19742
ac68009c31a4
hgweb: add removeByClassName javascript function
Alexander Plavin <alexander@plav.in>
parents:
19741
diff
changeset
|
340 function removeByClassName(className) { |
ac68009c31a4
hgweb: add removeByClassName javascript function
Alexander Plavin <alexander@plav.in>
parents:
19741
diff
changeset
|
341 var nodes = document.getElementsByClassName(className); |
ac68009c31a4
hgweb: add removeByClassName javascript function
Alexander Plavin <alexander@plav.in>
parents:
19741
diff
changeset
|
342 while (nodes.length) { |
ac68009c31a4
hgweb: add removeByClassName javascript function
Alexander Plavin <alexander@plav.in>
parents:
19741
diff
changeset
|
343 nodes[0].parentNode.removeChild(nodes[0]); |
ac68009c31a4
hgweb: add removeByClassName javascript function
Alexander Plavin <alexander@plav.in>
parents:
19741
diff
changeset
|
344 } |
ac68009c31a4
hgweb: add removeByClassName javascript function
Alexander Plavin <alexander@plav.in>
parents:
19741
diff
changeset
|
345 } |
ac68009c31a4
hgweb: add removeByClassName javascript function
Alexander Plavin <alexander@plav.in>
parents:
19741
diff
changeset
|
346 |
19741
2a9a21e1e1db
hgweb: add docFromHTML javascript function
Alexander Plavin <alexander@plav.in>
parents:
19740
diff
changeset
|
347 function docFromHTML(html) { |
2a9a21e1e1db
hgweb: add docFromHTML javascript function
Alexander Plavin <alexander@plav.in>
parents:
19740
diff
changeset
|
348 var doc = document.implementation.createHTMLDocument(''); |
2a9a21e1e1db
hgweb: add docFromHTML javascript function
Alexander Plavin <alexander@plav.in>
parents:
19740
diff
changeset
|
349 doc.documentElement.innerHTML = html; |
2a9a21e1e1db
hgweb: add docFromHTML javascript function
Alexander Plavin <alexander@plav.in>
parents:
19740
diff
changeset
|
350 return doc; |
2a9a21e1e1db
hgweb: add docFromHTML javascript function
Alexander Plavin <alexander@plav.in>
parents:
19740
diff
changeset
|
351 } |
19743
fdd41257def8
hgweb: add appendFormatHTML javascript function
Alexander Plavin <alexander@plav.in>
parents:
19742
diff
changeset
|
352 |
fdd41257def8
hgweb: add appendFormatHTML javascript function
Alexander Plavin <alexander@plav.in>
parents:
19742
diff
changeset
|
353 function appendFormatHTML(element, formatStr, replacements) { |
fdd41257def8
hgweb: add appendFormatHTML javascript function
Alexander Plavin <alexander@plav.in>
parents:
19742
diff
changeset
|
354 element.insertAdjacentHTML('beforeend', format(formatStr, replacements)); |
fdd41257def8
hgweb: add appendFormatHTML javascript function
Alexander Plavin <alexander@plav.in>
parents:
19742
diff
changeset
|
355 } |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
356 |
35216
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
357 function adoptChildren(from, to) { |
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
358 var nodes = from.children; |
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
359 var curClass = 'c' + Date.now(); |
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
360 while (nodes.length) { |
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
361 var node = nodes[0]; |
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
362 node = document.adoptNode(node); |
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
363 node.classList.add(curClass); |
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
364 to.appendChild(node); |
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
365 } |
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
366 process_dates('.' + curClass); |
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
367 } |
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
368 |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
369 function ajaxScrollInit(urlFormat, |
19781
74564c90026b
hgweb: make infinite scroll handling more generic and extensible
Alexander Plavin <alexander@plav.in>
parents:
19780
diff
changeset
|
370 nextPageVar, |
74564c90026b
hgweb: make infinite scroll handling more generic and extensible
Alexander Plavin <alexander@plav.in>
parents:
19780
diff
changeset
|
371 nextPageVarGet, |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
372 containerSelector, |
19782
8123f50555ff
hgweb: add graph mode of ajax response processing
Alexander Plavin <alexander@plav.in>
parents:
19781
diff
changeset
|
373 messageFormat, |
8123f50555ff
hgweb: add graph mode of ajax response processing
Alexander Plavin <alexander@plav.in>
parents:
19781
diff
changeset
|
374 mode) { |
35160
69a865dc2ada
hgweb: define locally used variables as actually local in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35159
diff
changeset
|
375 var updateInitiated = false; |
69a865dc2ada
hgweb: define locally used variables as actually local in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35159
diff
changeset
|
376 var container = document.querySelector(containerSelector); |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
377 |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
378 function scrollHandler() { |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
379 if (updateInitiated) { |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
380 return; |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
381 } |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
382 |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
383 var scrollHeight = document.documentElement.scrollHeight; |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
384 var clientHeight = document.documentElement.clientHeight; |
35042
5f82e26cbed1
hgweb: fix jshint issues in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
34391
diff
changeset
|
385 var scrollTop = document.body.scrollTop || document.documentElement.scrollTop; |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
386 |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
387 if (scrollHeight - (scrollTop + clientHeight) < 50) { |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
388 updateInitiated = true; |
19756
54981b899406
hgweb: show message when an error occured during ajax loading
Alexander Plavin <alexander@plav.in>
parents:
19755
diff
changeset
|
389 removeByClassName('scroll-loading-error'); |
19760
2ac4e89ad769
hgweb: add CSS class to the last entry on a page
Alexander Plavin <alexander@plav.in>
parents:
19756
diff
changeset
|
390 container.lastElementChild.classList.add('scroll-separator'); |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
391 |
19781
74564c90026b
hgweb: make infinite scroll handling more generic and extensible
Alexander Plavin <alexander@plav.in>
parents:
19780
diff
changeset
|
392 if (!nextPageVar) { |
19754
c35e8805cf53
hgweb: show a message when there are no more entries in the list
Alexander Plavin <alexander@plav.in>
parents:
19746
diff
changeset
|
393 var message = { |
26832
3ed635cb108e
hgweb: escape class keyword when used as a js object property (issue4913)
Anton Shestakov <av6@dwimlabs.net>
parents:
20973
diff
changeset
|
394 'class': 'scroll-loading-info', |
19754
c35e8805cf53
hgweb: show a message when there are no more entries in the list
Alexander Plavin <alexander@plav.in>
parents:
19746
diff
changeset
|
395 text: 'No more entries' |
c35e8805cf53
hgweb: show a message when there are no more entries in the list
Alexander Plavin <alexander@plav.in>
parents:
19746
diff
changeset
|
396 }; |
c35e8805cf53
hgweb: show a message when there are no more entries in the list
Alexander Plavin <alexander@plav.in>
parents:
19746
diff
changeset
|
397 appendFormatHTML(container, messageFormat, message); |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
398 return; |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
399 } |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
400 |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
401 makeRequest( |
19781
74564c90026b
hgweb: make infinite scroll handling more generic and extensible
Alexander Plavin <alexander@plav.in>
parents:
19780
diff
changeset
|
402 format(urlFormat, {next: nextPageVar}), |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
403 'GET', |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
404 function onstart() { |
19755
00b9f6aab761
hgweb: show loading indicator while an ajax request is in process
Alexander Plavin <alexander@plav.in>
parents:
19754
diff
changeset
|
405 var message = { |
26832
3ed635cb108e
hgweb: escape class keyword when used as a js object property (issue4913)
Anton Shestakov <av6@dwimlabs.net>
parents:
20973
diff
changeset
|
406 'class': 'scroll-loading', |
19755
00b9f6aab761
hgweb: show loading indicator while an ajax request is in process
Alexander Plavin <alexander@plav.in>
parents:
19754
diff
changeset
|
407 text: 'Loading...' |
00b9f6aab761
hgweb: show loading indicator while an ajax request is in process
Alexander Plavin <alexander@plav.in>
parents:
19754
diff
changeset
|
408 }; |
00b9f6aab761
hgweb: show loading indicator while an ajax request is in process
Alexander Plavin <alexander@plav.in>
parents:
19754
diff
changeset
|
409 appendFormatHTML(container, messageFormat, message); |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
410 }, |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
411 function onsuccess(htmlText) { |
35216
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
412 var doc = docFromHTML(htmlText); |
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
413 |
35157
ccf86aa5797c
hgweb: use strict equals in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35135
diff
changeset
|
414 if (mode === 'graph') { |
35160
69a865dc2ada
hgweb: define locally used variables as actually local in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35159
diff
changeset
|
415 var graph = window.graph; |
27934
1779ff7426c9
hgweb: update canvas.width before dynamically redrawing graph (issue2683)
Anton Shestakov <av6@dwimlabs.net>
parents:
26867
diff
changeset
|
416 var sizes = htmlText.match(/^\s*<canvas id="graph" width="(\d+)" height="(\d+)"><\/canvas>$/m); |
1779ff7426c9
hgweb: update canvas.width before dynamically redrawing graph (issue2683)
Anton Shestakov <av6@dwimlabs.net>
parents:
26867
diff
changeset
|
417 var addWidth = sizes[1]; |
1779ff7426c9
hgweb: update canvas.width before dynamically redrawing graph (issue2683)
Anton Shestakov <av6@dwimlabs.net>
parents:
26867
diff
changeset
|
418 var addHeight = sizes[2]; |
1779ff7426c9
hgweb: update canvas.width before dynamically redrawing graph (issue2683)
Anton Shestakov <av6@dwimlabs.net>
parents:
26867
diff
changeset
|
419 addWidth = parseInt(addWidth); |
19782
8123f50555ff
hgweb: add graph mode of ajax response processing
Alexander Plavin <alexander@plav.in>
parents:
19781
diff
changeset
|
420 addHeight = parseInt(addHeight); |
27934
1779ff7426c9
hgweb: update canvas.width before dynamically redrawing graph (issue2683)
Anton Shestakov <av6@dwimlabs.net>
parents:
26867
diff
changeset
|
421 graph.canvas.width = addWidth; |
19782
8123f50555ff
hgweb: add graph mode of ajax response processing
Alexander Plavin <alexander@plav.in>
parents:
19781
diff
changeset
|
422 graph.canvas.height = addHeight; |
8123f50555ff
hgweb: add graph mode of ajax response processing
Alexander Plavin <alexander@plav.in>
parents:
19781
diff
changeset
|
423 |
8123f50555ff
hgweb: add graph mode of ajax response processing
Alexander Plavin <alexander@plav.in>
parents:
19781
diff
changeset
|
424 var dataStr = htmlText.match(/^\s*var data = (.*);$/m)[1]; |
19957
80aa912dcb2d
hgweb: add missing semicolon
Takumi IINO <trot.thunder@gmail.com>
parents:
19907
diff
changeset
|
425 var data = JSON.parse(dataStr); |
19907
aebfbb68fe92
hgweb: fix unstoppable loading of graph when no more results
Alexander Plavin <alexander@plav.in>
parents:
19859
diff
changeset
|
426 if (data.length < nextPageVar) { |
aebfbb68fe92
hgweb: fix unstoppable loading of graph when no more results
Alexander Plavin <alexander@plav.in>
parents:
19859
diff
changeset
|
427 nextPageVar = undefined; |
aebfbb68fe92
hgweb: fix unstoppable loading of graph when no more results
Alexander Plavin <alexander@plav.in>
parents:
19859
diff
changeset
|
428 } |
19782
8123f50555ff
hgweb: add graph mode of ajax response processing
Alexander Plavin <alexander@plav.in>
parents:
19781
diff
changeset
|
429 graph.reset(); |
35216
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
430 adoptChildren(doc.querySelector('#graphnodes'), container.querySelector('#graphnodes')); |
19782
8123f50555ff
hgweb: add graph mode of ajax response processing
Alexander Plavin <alexander@plav.in>
parents:
19781
diff
changeset
|
431 graph.render(data); |
8123f50555ff
hgweb: add graph mode of ajax response processing
Alexander Plavin <alexander@plav.in>
parents:
19781
diff
changeset
|
432 } else { |
35216
fcc96cf0983d
hgweb: adopt child nodes in ajaxScrollInit on /graph pages too
Anton Shestakov <av6@dwimlabs.net>
parents:
35161
diff
changeset
|
433 adoptChildren(doc.querySelector(containerSelector), container); |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
434 } |
19907
aebfbb68fe92
hgweb: fix unstoppable loading of graph when no more results
Alexander Plavin <alexander@plav.in>
parents:
19859
diff
changeset
|
435 |
aebfbb68fe92
hgweb: fix unstoppable loading of graph when no more results
Alexander Plavin <alexander@plav.in>
parents:
19859
diff
changeset
|
436 nextPageVar = nextPageVarGet(htmlText, nextPageVar); |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
437 }, |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
438 function onerror(errorText) { |
19756
54981b899406
hgweb: show message when an error occured during ajax loading
Alexander Plavin <alexander@plav.in>
parents:
19755
diff
changeset
|
439 var message = { |
26832
3ed635cb108e
hgweb: escape class keyword when used as a js object property (issue4913)
Anton Shestakov <av6@dwimlabs.net>
parents:
20973
diff
changeset
|
440 'class': 'scroll-loading-error', |
19756
54981b899406
hgweb: show message when an error occured during ajax loading
Alexander Plavin <alexander@plav.in>
parents:
19755
diff
changeset
|
441 text: 'Error: ' + errorText |
54981b899406
hgweb: show message when an error occured during ajax loading
Alexander Plavin <alexander@plav.in>
parents:
19755
diff
changeset
|
442 }; |
54981b899406
hgweb: show message when an error occured during ajax loading
Alexander Plavin <alexander@plav.in>
parents:
19755
diff
changeset
|
443 appendFormatHTML(container, messageFormat, message); |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
444 }, |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
445 function oncomplete() { |
19755
00b9f6aab761
hgweb: show loading indicator while an ajax request is in process
Alexander Plavin <alexander@plav.in>
parents:
19754
diff
changeset
|
446 removeByClassName('scroll-loading'); |
19746
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
447 updateInitiated = false; |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
448 scrollHandler(); |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
449 } |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
450 ); |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
451 } |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
452 } |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
453 |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
454 window.addEventListener('scroll', scrollHandler); |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
455 window.addEventListener('resize', scrollHandler); |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
456 scrollHandler(); |
9ad7dd9574a9
hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in>
parents:
19743
diff
changeset
|
457 } |
30765
eb7de21b15be
hgweb: call process_dates() via DOM event listener
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27934
diff
changeset
|
458 |
34391
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
459 function renderDiffOptsForm() { |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
460 // We use URLSearchParams for query string manipulation. Old browsers don't |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
461 // support this API. |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
462 if (!("URLSearchParams" in window)) { |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
463 return; |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
464 } |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
465 |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
466 var form = document.getElementById("diffopts-form"); |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
467 |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
468 var KEYS = [ |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
469 "ignorews", |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
470 "ignorewsamount", |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
471 "ignorewseol", |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
472 "ignoreblanklines", |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
473 ]; |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
474 |
35161
1207a50a6dc3
hgweb: look up "URLSearchParams" in "window" to work around jshint issues
Anton Shestakov <av6@dwimlabs.net>
parents:
35160
diff
changeset
|
475 var urlParams = new window.URLSearchParams(window.location.search); |
34391
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
476 |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
477 function updateAndRefresh(e) { |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
478 var checkbox = e.target; |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
479 var name = checkbox.id.substr(0, checkbox.id.indexOf("-")); |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
480 urlParams.set(name, checkbox.checked ? "1" : "0"); |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
481 window.location.search = urlParams.toString(); |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
482 } |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
483 |
35157
ccf86aa5797c
hgweb: use strict equals in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35135
diff
changeset
|
484 var allChecked = form.getAttribute("data-ignorews") === "1"; |
34391
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
485 |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
486 for (var i = 0; i < KEYS.length; i++) { |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
487 var key = KEYS[i]; |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
488 |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
489 var checkbox = document.getElementById(key + "-checkbox"); |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
490 if (!checkbox) { |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
491 continue; |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
492 } |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
493 |
35160
69a865dc2ada
hgweb: define locally used variables as actually local in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35159
diff
changeset
|
494 var currentValue = form.getAttribute("data-" + key); |
35157
ccf86aa5797c
hgweb: use strict equals in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35135
diff
changeset
|
495 checkbox.checked = currentValue !== "0"; |
34391
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
496 |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
497 // ignorews implies ignorewsamount and ignorewseol. |
35157
ccf86aa5797c
hgweb: use strict equals in mercurial.js
Anton Shestakov <av6@dwimlabs.net>
parents:
35135
diff
changeset
|
498 if (allChecked && (key === "ignorewsamount" || key === "ignorewseol")) { |
34391
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
499 checkbox.checked = true; |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
500 checkbox.disabled = true; |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
501 } |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
502 |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
503 checkbox.addEventListener("change", updateAndRefresh, false); |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
504 } |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
505 |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
506 form.style.display = 'block'; |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
507 } |
6797f1fbc642
hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30765
diff
changeset
|
508 |
30765
eb7de21b15be
hgweb: call process_dates() via DOM event listener
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27934
diff
changeset
|
509 document.addEventListener('DOMContentLoaded', function() { |
eb7de21b15be
hgweb: call process_dates() via DOM event listener
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27934
diff
changeset
|
510 process_dates(); |
eb7de21b15be
hgweb: call process_dates() via DOM event listener
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27934
diff
changeset
|
511 }, false); |