##// END OF EJS Templates
templates: reword 'back to filelog' link anchor text...
templates: reword 'back to filelog' link anchor text This anchor text is problematic in two ways: first, the "back to" part assumes that you got to the page showing it via the filelog. This is not necessarily true, as there are other ways to get to that view besides the filelog view, such as for example following the history of lines from a file. Second, it uses "filelog" jargon, which refers to how each file has its own revlog. This is internal jargon that has no business being exposed to the end user. I just reworded this template to improve understanding.

File last commit:

r35033:5f82e26c default
r35089:79cbf5cc default
Show More
mercurial.js
489 lines | 13.4 KiB | application/javascript | JavascriptLexer
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 // mercurial.js - JavaScript utility functions
//
// Rendering of branch DAGs on the client side
// Display of elapsed time
Steven Brown
paper, coal: display diffstat on the changeset page...
r14571 // Show or hide diffstat
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 //
// Copyright 2008 Dirkjan Ochtman <dirkjan AT ochtman DOT nl>
// Copyright 2006 Alexander Schremmer <alex AT alexanderweb DOT de>
//
// derived from code written by Scott James Remnant <scott@ubuntu.com>
// Copyright 2005 Canonical Ltd.
//
// This software may be used and distributed according to the terms
// of the GNU General Public License, incorporated herein by reference.
var colors = [
[ 1.0, 0.0, 0.0 ],
[ 1.0, 1.0, 0.0 ],
[ 0.0, 1.0, 0.0 ],
[ 0.0, 1.0, 1.0 ],
[ 0.0, 0.0, 1.0 ],
[ 1.0, 0.0, 1.0 ]
];
function Graph() {
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 this.canvas = document.getElementById('graph');
Matt Mackall
hgweb: change IE canvas test (issue3639)...
r17694 if (window.G_vmlCanvasManager) this.canvas = window.G_vmlCanvasManager.initElement(this.canvas);
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 this.ctx = this.canvas.getContext('2d');
this.ctx.strokeStyle = 'rgb(0, 0, 0)';
this.ctx.fillStyle = 'rgb(0, 0, 0)';
this.cur = [0, 0];
this.line_width = 3;
this.bg = [0, 4];
this.cell = [2, 0];
this.columns = 0;
this.revlink = '';
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Alexander Plavin
hgweb: add reset javascript function to Graph...
r19780 this.reset = function() {
this.bg = [0, 4];
this.cell = [2, 0];
this.columns = 0;
document.getElementById('nodebgs').innerHTML = '';
document.getElementById('graphnodes').innerHTML = '';
av6
hgweb: fix jshint issues in mercurial.js...
r35033 };
Alexander Plavin
hgweb: add reset javascript function to Graph...
r19780
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 this.scale = function(height) {
this.bg_height = height;
this.box_size = Math.floor(this.bg_height / 1.2);
this.cell_height = this.box_size;
av6
hgweb: fix jshint issues in mercurial.js...
r35033 };
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 this.setColor = function(color, bg, fg) {
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 // Set the colour.
//
Patrick Mezard
hgweb: refactor graph customization javascript...
r16138 // If color is a string, expect an hexadecimal RGB
// value and apply it unchanged. If color is a number,
// pick a distinct colour based on an internal wheel;
// the bg parameter provides the value that should be
// assigned to the 'zero' colours and the fg parameter
// provides the multiplier that should be applied to
// the foreground colours.
Constantine Linnick
graph: in hgrc specify line color for main branch...
r16130 var s;
Patrick Mezard
hgweb: refactor graph customization javascript...
r16138 if(typeof color == "string") {
s = "#" + color;
} else { //typeof color == "number"
Constantine Linnick
graph: in hgrc specify line color for main branch...
r16130 color %= colors.length;
var red = (colors[color][0] * fg) || bg;
var green = (colors[color][1] * fg) || bg;
var blue = (colors[color][2] * fg) || bg;
red = Math.round(red * 255);
green = Math.round(green * 255);
blue = Math.round(blue * 255);
s = 'rgb(' + red + ', ' + green + ', ' + blue + ')';
}
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 this.ctx.strokeStyle = s;
this.ctx.fillStyle = s;
return s;
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
av6
hgweb: fix jshint issues in mercurial.js...
r35033 };
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046
Patrick Mezard
hgweb: refactor graph customization javascript...
r16138 this.edge = function(x0, y0, x1, y1, color, width) {
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Patrick Mezard
templates: move Graph.edge() implementation in mercurial.js...
r16137 this.setColor(color, 0.0, 0.65);
Patrick Mezard
hgweb: refactor graph customization javascript...
r16138 if(width >= 0)
this.ctx.lineWidth = width;
Patrick Mezard
templates: move Graph.edge() implementation in mercurial.js...
r16137 this.ctx.beginPath();
this.ctx.moveTo(x0, y0);
this.ctx.lineTo(x1, y1);
this.ctx.stroke();
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
av6
hgweb: fix jshint issues in mercurial.js...
r35033 };
Patrick Mezard
templates: move Graph.edge() implementation in mercurial.js...
r16137
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 this.render = function(data) {
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 var backgrounds = '';
var nodedata = '';
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 for (var i in data) {
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 var parity = i % 2;
this.cell[1] += this.bg_height;
this.bg[1] += this.bg_height;
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 var cur = data[i];
var node = cur[1];
var edges = cur[2];
var fold = false;
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Patrick Mezard
hgweb: refactor graph customization javascript...
r16138 var prevWidth = this.ctx.lineWidth;
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 for (var j in edges) {
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 line = edges[j];
start = line[0];
end = line[1];
color = line[2];
Patrick Mezard
hgweb: refactor graph customization javascript...
r16138 var width = line[3];
if(width < 0)
width = prevWidth;
var branchcolor = line[4];
if(branchcolor)
color = branchcolor;
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 if (end > this.columns || start > this.columns) {
this.columns += 1;
}
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 if (start == this.columns && start > end) {
av6
hgweb: fix jshint issues in mercurial.js...
r35033 fold = true;
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 }
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 x0 = this.cell[0] + this.box_size * start + this.box_size / 2;
y0 = this.bg[1] - this.bg_height / 2;
x1 = this.cell[0] + this.box_size * end + this.box_size / 2;
y1 = this.bg[1] + this.bg_height / 2;
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Patrick Mezard
hgweb: refactor graph customization javascript...
r16138 this.edge(x0, y0, x1, y1, color, width);
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 }
Patrick Mezard
hgweb: refactor graph customization javascript...
r16138 this.ctx.lineWidth = prevWidth;
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 // Draw the revision node in the right column
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
av6
hgweb: fix jshint issues in mercurial.js...
r35033 column = node[0];
color = node[1];
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 radius = this.box_size / 8;
x = this.cell[0] + this.box_size * column + this.box_size / 2;
y = this.bg[1] - this.bg_height / 2;
var add = this.vertex(x, y, color, parity, cur);
backgrounds += add[0];
nodedata += add[1];
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 if (fold) this.columns -= 1;
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 }
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 document.getElementById('nodebgs').innerHTML += backgrounds;
document.getElementById('graphnodes').innerHTML += nodedata;
Kevin Bullock
hgweb: remove trailing whitespace in mercurial.js
r19530
av6
hgweb: fix jshint issues in mercurial.js...
r35033 };
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046
}
Alexander Plavin
hgweb: add parentSelector argument to process_dates...
r19858 function process_dates(parentSelector){
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046
// derived from code from mercurial/templatefilter.py
var scales = {
'year': 365 * 24 * 60 * 60,
'month': 30 * 24 * 60 * 60,
'week': 7 * 24 * 60 * 60,
'day': 24 * 60 * 60,
'hour': 60 * 60,
'minute': 60,
'second': 1
};
function format(count, string){
var ret = count + ' ' + string;
if (count > 1){
ret = ret + 's';
}
Benoit Allard
web: Output a correct date in short format (issue2902)
r14881 return ret;
}
function shortdate(date){
var ret = date.getFullYear() + '-';
// getMonth() gives a 0-11 result
var month = date.getMonth() + 1;
if (month <= 9){
ret += '0' + month;
} else {
ret += month;
}
ret += '-';
var day = date.getDate();
if (day <= 9){
ret += '0' + day;
} else {
ret += day;
}
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 return ret;
}
Benoit Allard
web: Output a correct date in short format (issue2902)
r14881 function age(datestr){
var now = new Date();
var once = new Date(datestr);
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 if (isNaN(once.getTime())){
// parsing error
return datestr;
}
var delta = Math.floor((now.getTime() - once.getTime()) / 1000);
Alexander Plavin
hgweb: eliminate extra complexity in process_dates definition...
r19834 var future = false;
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 if (delta < 0){
Alexander Plavin
hgweb: eliminate extra complexity in process_dates definition...
r19834 future = true;
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 delta = -delta;
if (delta > (30 * scales.year)){
return "in the distant future";
}
}
if (delta > (2 * scales.year)){
Benoit Allard
web: Output a correct date in short format (issue2902)
r14881 return shortdate(once);
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 }
av6
hgweb: fix jshint issues in mercurial.js...
r35033 for (var unit in scales){
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 var s = scales[unit];
var n = Math.floor(delta / s);
if ((n >= 2) || (s == 1)){
if (future){
return format(n, unit) + ' from now';
} else {
return format(n, unit) + ' ago';
}
}
}
}
Alexander Plavin
hgweb: add parentSelector argument to process_dates...
r19858 var nodes = document.querySelectorAll((parentSelector || '') + ' .age');
Alexander Plavin
hgweb: eliminate extra complexity in process_dates definition...
r19834 var dateclass = new RegExp('\\bdate\\b');
for (var i=0; i<nodes.length; ++i){
var node = nodes[i];
var classes = node.className;
Alexander Plavin
hgweb: optimize process_dates function...
r19857 var agevalue = age(node.textContent);
if (dateclass.test(classes)){
// We want both: date + (age)
node.textContent += ' ('+agevalue+')';
} else {
node.title = node.textContent;
node.textContent = agevalue;
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 }
}
Alexander Plavin
hgweb: eliminate extra complexity in process_dates definition...
r19834 }
Steven Brown
paper, coal: display diffstat on the changeset page...
r14571
Alexander Plavin
hgweb: toggleDiffstat function instead of showDiffstat and hideDiffstat...
r19428 function toggleDiffstat() {
var curdetails = document.getElementById('diffstatdetails').style.display;
var curexpand = curdetails == 'none' ? 'inline' : 'none';
document.getElementById('diffstatdetails').style.display = curexpand;
document.getElementById('diffstatexpand').style.display = curdetails;
Steven Brown
paper, coal: display diffstat on the changeset page...
r14571 }
Alexander Plavin
hgweb: add line wrapping switch to file source view...
r19430
function toggleLinewrap() {
function getLinewrap() {
var nodes = document.getElementsByClassName('sourcelines');
// if there are no such nodes, error is thrown here
return nodes[0].classList.contains('wrap');
}
function setLinewrap(enable) {
var nodes = document.getElementsByClassName('sourcelines');
av6
hgweb: fix jshint issues in mercurial.js...
r35033 var i;
for (i = 0; i < nodes.length; i++) {
Alexander Plavin
hgweb: add line wrapping switch to file source view...
r19430 if (enable) {
nodes[i].classList.add('wrap');
} else {
nodes[i].classList.remove('wrap');
}
}
var links = document.getElementsByClassName('linewraplink');
av6
hgweb: fix jshint issues in mercurial.js...
r35033 for (i = 0; i < links.length; i++) {
Alexander Plavin
hgweb: add line wrapping switch to file source view...
r19430 links[i].innerHTML = enable ? 'on' : 'off';
}
}
setLinewrap(!getLinewrap());
}
Alexander Plavin
hgweb: add format javascript function...
r19739
function format(str, replacements) {
return str.replace(/%(\w+)%/g, function(match, p1) {
return String(replacements[p1]);
});
}
Alexander Plavin
hgweb: add makeRequest javascript function...
r19740
function makeRequest(url, method, onstart, onsuccess, onerror, oncomplete) {
xfr = new XMLHttpRequest();
xfr.onreadystatechange = function() {
if (xfr.readyState === 4) {
try {
if (xfr.status === 200) {
onsuccess(xfr.responseText);
} else {
throw 'server error';
}
} catch (e) {
onerror(e);
} finally {
oncomplete();
}
}
};
xfr.open(method, url);
Wei, Elson
hgweb: override the charset attribute in the http request...
r20973 xfr.overrideMimeType("text/xhtml; charset=" + document.characterSet.toLowerCase());
Alexander Plavin
hgweb: add makeRequest javascript function...
r19740 xfr.send();
onstart();
return xfr;
}
Alexander Plavin
hgweb: add docFromHTML javascript function...
r19741
Alexander Plavin
hgweb: add removeByClassName javascript function...
r19742 function removeByClassName(className) {
var nodes = document.getElementsByClassName(className);
while (nodes.length) {
nodes[0].parentNode.removeChild(nodes[0]);
}
}
Alexander Plavin
hgweb: add docFromHTML javascript function...
r19741 function docFromHTML(html) {
var doc = document.implementation.createHTMLDocument('');
doc.documentElement.innerHTML = html;
return doc;
}
Alexander Plavin
hgweb: add appendFormatHTML javascript function...
r19743
function appendFormatHTML(element, formatStr, replacements) {
element.insertAdjacentHTML('beforeend', format(formatStr, replacements));
}
Alexander Plavin
hgweb: add ajaxScrollInit function, which does the ajax requests and processing...
r19746
function ajaxScrollInit(urlFormat,
Alexander Plavin
hgweb: make infinite scroll handling more generic and extensible...
r19781 nextPageVar,
nextPageVarGet,
Alexander Plavin
hgweb: add ajaxScrollInit function, which does the ajax requests and processing...
r19746 containerSelector,
Alexander Plavin
hgweb: add graph mode of ajax response processing...
r19782 messageFormat,
mode) {
Alexander Plavin
hgweb: add ajaxScrollInit function, which does the ajax requests and processing...
r19746 updateInitiated = false;
container = document.querySelector(containerSelector);
function scrollHandler() {
if (updateInitiated) {
return;
}
var scrollHeight = document.documentElement.scrollHeight;
var clientHeight = document.documentElement.clientHeight;
av6
hgweb: fix jshint issues in mercurial.js...
r35033 var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
Alexander Plavin
hgweb: add ajaxScrollInit function, which does the ajax requests and processing...
r19746
if (scrollHeight - (scrollTop + clientHeight) < 50) {
updateInitiated = true;
Alexander Plavin
hgweb: show message when an error occured during ajax loading
r19756 removeByClassName('scroll-loading-error');
Alexander Plavin
hgweb: add CSS class to the last entry on a page...
r19760 container.lastElementChild.classList.add('scroll-separator');
Alexander Plavin
hgweb: add ajaxScrollInit function, which does the ajax requests and processing...
r19746
Alexander Plavin
hgweb: make infinite scroll handling more generic and extensible...
r19781 if (!nextPageVar) {
Alexander Plavin
hgweb: show a message when there are no more entries in the list
r19754 var message = {
av6
hgweb: escape class keyword when used as a js object property (issue4913)
r26832 'class': 'scroll-loading-info',
Alexander Plavin
hgweb: show a message when there are no more entries in the list
r19754 text: 'No more entries'
};
appendFormatHTML(container, messageFormat, message);
Alexander Plavin
hgweb: add ajaxScrollInit function, which does the ajax requests and processing...
r19746 return;
}
makeRequest(
Alexander Plavin
hgweb: make infinite scroll handling more generic and extensible...
r19781 format(urlFormat, {next: nextPageVar}),
Alexander Plavin
hgweb: add ajaxScrollInit function, which does the ajax requests and processing...
r19746 'GET',
function onstart() {
Alexander Plavin
hgweb: show loading indicator while an ajax request is in process
r19755 var message = {
av6
hgweb: escape class keyword when used as a js object property (issue4913)
r26832 'class': 'scroll-loading',
Alexander Plavin
hgweb: show loading indicator while an ajax request is in process
r19755 text: 'Loading...'
};
appendFormatHTML(container, messageFormat, message);
Alexander Plavin
hgweb: add ajaxScrollInit function, which does the ajax requests and processing...
r19746 },
function onsuccess(htmlText) {
Alexander Plavin
hgweb: add graph mode of ajax response processing...
r19782 if (mode == 'graph') {
av6
hgweb: update canvas.width before dynamically redrawing graph (issue2683)...
r27934 var sizes = htmlText.match(/^\s*<canvas id="graph" width="(\d+)" height="(\d+)"><\/canvas>$/m);
var addWidth = sizes[1];
var addHeight = sizes[2];
addWidth = parseInt(addWidth);
Alexander Plavin
hgweb: add graph mode of ajax response processing...
r19782 addHeight = parseInt(addHeight);
av6
hgweb: update canvas.width before dynamically redrawing graph (issue2683)...
r27934 graph.canvas.width = addWidth;
Alexander Plavin
hgweb: add graph mode of ajax response processing...
r19782 graph.canvas.height = addHeight;
var dataStr = htmlText.match(/^\s*var data = (.*);$/m)[1];
Takumi IINO
hgweb: add missing semicolon
r19957 var data = JSON.parse(dataStr);
Alexander Plavin
hgweb: fix unstoppable loading of graph when no more results...
r19907 if (data.length < nextPageVar) {
nextPageVar = undefined;
}
Alexander Plavin
hgweb: add graph mode of ajax response processing...
r19782 graph.reset();
graph.render(data);
} else {
var doc = docFromHTML(htmlText);
var nodes = doc.querySelector(containerSelector).children;
Alexander Plavin
hgweb: call process_dates with a specified selector in ajax scroll...
r19859 var curClass = 'c' + Date.now();
Alexander Plavin
hgweb: add graph mode of ajax response processing...
r19782 while (nodes.length) {
var node = nodes[0];
node = document.adoptNode(node);
Alexander Plavin
hgweb: call process_dates with a specified selector in ajax scroll...
r19859 node.classList.add(curClass);
Alexander Plavin
hgweb: add graph mode of ajax response processing...
r19782 container.appendChild(node);
}
Alexander Plavin
hgweb: call process_dates with a specified selector in ajax scroll...
r19859 process_dates('.' + curClass);
Alexander Plavin
hgweb: add ajaxScrollInit function, which does the ajax requests and processing...
r19746 }
Alexander Plavin
hgweb: fix unstoppable loading of graph when no more results...
r19907
nextPageVar = nextPageVarGet(htmlText, nextPageVar);
Alexander Plavin
hgweb: add ajaxScrollInit function, which does the ajax requests and processing...
r19746 },
function onerror(errorText) {
Alexander Plavin
hgweb: show message when an error occured during ajax loading
r19756 var message = {
av6
hgweb: escape class keyword when used as a js object property (issue4913)
r26832 'class': 'scroll-loading-error',
Alexander Plavin
hgweb: show message when an error occured during ajax loading
r19756 text: 'Error: ' + errorText
};
appendFormatHTML(container, messageFormat, message);
Alexander Plavin
hgweb: add ajaxScrollInit function, which does the ajax requests and processing...
r19746 },
function oncomplete() {
Alexander Plavin
hgweb: show loading indicator while an ajax request is in process
r19755 removeByClassName('scroll-loading');
Alexander Plavin
hgweb: add ajaxScrollInit function, which does the ajax requests and processing...
r19746 updateInitiated = false;
scrollHandler();
}
);
}
}
window.addEventListener('scroll', scrollHandler);
window.addEventListener('resize', scrollHandler);
scrollHandler();
}
Gregory Szorc
hgweb: call process_dates() via DOM event listener...
r30765
Gregory Szorc
hgweb: add HTML elements to control whitespace settings for annotate...
r34392 function renderDiffOptsForm() {
// We use URLSearchParams for query string manipulation. Old browsers don't
// support this API.
if (!("URLSearchParams" in window)) {
return;
}
var form = document.getElementById("diffopts-form");
var KEYS = [
"ignorews",
"ignorewsamount",
"ignorewseol",
"ignoreblanklines",
];
var urlParams = new URLSearchParams(window.location.search);
function updateAndRefresh(e) {
var checkbox = e.target;
var name = checkbox.id.substr(0, checkbox.id.indexOf("-"));
urlParams.set(name, checkbox.checked ? "1" : "0");
window.location.search = urlParams.toString();
}
var allChecked = form.getAttribute("data-ignorews") == "1";
for (var i = 0; i < KEYS.length; i++) {
var key = KEYS[i];
var checkbox = document.getElementById(key + "-checkbox");
if (!checkbox) {
continue;
}
currentValue = form.getAttribute("data-" + key);
checkbox.checked = currentValue != "0";
// ignorews implies ignorewsamount and ignorewseol.
if (allChecked && (key == "ignorewsamount" || key == "ignorewseol")) {
checkbox.checked = true;
checkbox.disabled = true;
}
checkbox.addEventListener("change", updateAndRefresh, false);
}
form.style.display = 'block';
}
Gregory Szorc
hgweb: call process_dates() via DOM event listener...
r30765 document.addEventListener('DOMContentLoaded', function() {
process_dates();
}, false);