Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
// helper functions
// works in FF and Opera, definitely not in IE, other not tested
// browser has to support XPath
var $x = function(exp, node) {
node = node || document;
var r = document.evaluate(exp, node, null, 0, null);
switch (r.resultType) {
case 1: return r.numberValue;
case 2: return r.stringValue;
case 3: return r.booleanValue;
case 4: {
var a = [];
while(i = r.iterateNext()) a.push(i);
return a;
}
}
};
// use other format for [[Special:IndexPages]], only hard nurmbers
// only start, have to check something
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) == 'IndexPages' ) {
$(function() {
// where to get the data and the array itself
var where = $x('//ol[@class="special"]')[0];
var data = new Array([]);
// data is stored in the td-tags, first 3 are shit, extract data to data array
var tds = $x('//td', where);
for (var i = 0; ((i+1)*9)+3 <= tds.length; i++) {
var n = (i*9)+3;
data[i] = new Array(8);
data[i].href = tds[n].firstChild.href;
data[i].name = tds[n].firstChild.innerHTML;
data[i].pages = parseInt(/(\d+)/.exec(tds[n+1].innerHTML));
data[i].q4 = (tds[n+4].width ? parseInt(tds[n+4].width) : 0);
data[i].q3 = (tds[n+5].width ? parseInt(tds[n+5].width) : 0);
data[i].q2 = (tds[n+6].width ? parseInt(tds[n+6].width) : 0);
data[i].q1 = (tds[n+7].width ? parseInt(tds[n+7].width) : 0);
data[i].q0 = (tds[n+8].width ? parseInt(tds[n+8].width) : 0);
}
// delete list and create own
where.innerHTML = '';
var table = document.createElement('table');
table.setAttribute('style','background-color:transparent; width:100%;');
var tr = new Array([]);
var th = new Array(9);
var text = ['Livre','Pages','NA','-','Pb','1','2','3','Total'];
tr[0] = document.createElement('tr');
for (i in text) {
th[i] = document.createElement('th');
th[i].innerHTML = text[i];
tr[0].appendChild(th[i]);
}
tr[0].setAttribute('style','text-align:left;');
for (var i = 0; i < data.length; i++) {
tr[i+1] = document.createElement('tr');
var td = new Array(9);
for (var j = 0; j < 9; j++) { td[j] = document.createElement('td'); }
var a = document.createElement('a');
a.innerHTML = data[i].name;
a.href = data[i].href;
td[0].appendChild(a);
td[0].setAttribute('style','font-weight:bold;');
td[1].innerHTML = data[i].pages;
td[2].innerHTML = data[i].pages - data[i].q0 - data[i].q1 - data[i].q2 - data[i].q3 - data[i].q4;
td[3].innerHTML = data[i].q0;
td[3].setAttribute('class','quality0');
td[4].innerHTML = data[i].q2;
td[4].setAttribute('class','quality2');
td[5].innerHTML = data[i].q1;
td[5].setAttribute('class','quality1');
td[6].innerHTML = data[i].q3;
td[6].setAttribute('class','quality3');
td[7].innerHTML = data[i].q4;
td[7].setAttribute('class','quality4');
td[8].innerHTML = Math.round((data[i].q1 + (data[i].q3 * 2) + (data[i].q4 * 3)) * 100 / (data[i].pages * 3)) +'%';
td[8].setAttribute('style','font-weight:bold;');
for (var j = 0; j < 9; j++) { tr[i+1].appendChild(td[j]); }
}
for (var i = 0; i < tr.length; i++) { table.appendChild(tr[i]); }
where.appendChild(table);
});
}