MediaWiki:Gadget-HistoryNumDiff.js

/* _____________________________________________________________________________

* | |

* | === WARNING: GLOBAL GADGET FILE === |

* | Changes to this page affect many users. |

* | Please discuss changes on the talk page or on WT:Gadget before editing. |

* |_____________________________________________________________________________|

*

* Imported from the January 17, 2011 version at fr:MediaWiki:Gadget-HistoryNumDiff.js

*

* Shows the number of characters added or removed, rather than the size of the revision.

* This format is like the one used by the Watchlist and Recent Changes.

*

* See MediaWiki:Gadget-HistoryNumDiff.

*

* Author: The RedBurn

*

*/

function getNumFromString (i,eltsByTag) {

var regString = /\((.*) bytes?\)/;

var resultString;

var string = eltsByTag.item(i).innerHTML;

var separator = /[^0-9]/g;

var empty = "(empty)";

if(mw.config.get( 'wgUserLanguage' ) == "fr")

{

regString = /\((.*) octets?\)/;

empty = "(vide)";

}

if(string==empty) {

string=0;

} else {

resultString= regString.exec(string);

string = resultString[1].replace(separator,"");

string = parseInt(string, 10);

}

return string;

}

function makeNumDiff() {

var string;

var resultPrevString = 0; // précédent dans l'ordre chronologique

var resultNextString = 0;

var className;

var lastI = 0;

var i = 0;

var eltsByTag = document.getElementsByTagName("span");

var length = eltsByTag.length;

while(i

i++;

}

if(i

resultNextString = getNumFromString(i,eltsByTag);

lastI = i;

i++;

while (i

if (eltsByTag.item(i).className == "history-size"){

resultPrevString = getNumFromString(i,eltsByTag);

string = resultNextString - resultPrevString;

if (string>0) {

className = "mw-plusminus-pos";

string = "+" + string;

}

else {

if (string<0) {

className = "mw-plusminus-neg";

} else {

className = "mw-plusminus-null";

}

}

if (string<-500 || string>500) {

string = "" + "(" + string + ")" + "";

} else {

string = "(" + string + ")";

}

eltsByTag.item(lastI).innerHTML = string ;

eltsByTag.item(lastI).className = className;

resultNextString = resultPrevString;

lastI = i;

}

i++;

}

}

}

if(mw.config.get( 'wgAction' ) && mw.config.get( 'wgAction' ) == "history") {

$(makeNumDiff);

}