Utilisateur:Dr Brains/MergeHistory.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./////////////////// LANCEMENT ////////////////////////
if(mw.config.get('wgAction')=="history"){
document.write('<style type="text/css">');
document.write('.MergedLi {display:none;}');
document.write('</style>');
var MergeHistory_Param_ToggleLinkHide = "⇧";
var MergeHistory_Param_ToggleLinkShow = "⇨";
addOnloadHook(MergeHistory_Init);
}
/////////////////// INITIALISATION ////////////////////////
function MergeHistory_Init(){
var HistoryPage = document.getElementById('pagehistory');
if(!HistoryPage) return;
var UserName = new Array();
var Lis = HistoryPage.getElementsByTagName('li');
for(var a=0;a<Lis.length;a++){
UserName[a] = MergeHistory_GetUserName(Lis[a])
}
var Lis = HistoryPage.getElementsByTagName('li');
for(var a=0;a<Lis.length;a++){
var LastUserName = UserName[(a-1)];
var ThisUserName = UserName[a];
var NextUserName = UserName[(a+1)];
if((ThisUserName==NextUserName)&&(ThisUserName!=LastUserName)){
$(Lis[a]).addClass("MergeHistory_First");
var ToggleLink = document.createElement('a');
ToggleLink.id = "MergeHistory_ToggleLink_"+a;
ToggleLink.className = "ToggleLink";
ToggleLink.innerHTML = MergeHistory_Param_ToggleLinkHide;
ToggleLink.href= "javascript:MergeHistory_Toggle("+a+");";
Lis[a].insertBefore(document.createTextNode(" "), Lis[a].firstChild);
Lis[a].insertBefore(ToggleLink, Lis[a].firstChild);
}else{
$(Lis[a]).addClass("MergeHistory_NoFirst");
var Span = document.createElement('span');
Span.style.color = "white";
Span.innerHTML = "- - ";
Lis[a].insertBefore(Span, Lis[a].firstChild);
if((ThisUserName!=NextUserName)&&(ThisUserName!=LastUserName)){
$(Lis[a]).addClass("MergeHistory_First");
}
}
}
var A = HistoryPage.getElementsByTagName('a');
for(var a=0;a<A.length;a++){
if($(A[a]).hasClass("ToggleLink")){
var Number = parseInt(A[a].id.replace(/[^0-9]/g, ""));
MergeHistory_Toggle(Number);
}
}
}
/////////////////// RÉCUPÉRATION DU NOM D'UTILISATEUR ////////////////////////
function MergeHistory_GetUserName(Li){
var AllLinks = Li.getElementsByTagName('a');
var UserName = false;
for(var a=0;a<AllLinks.length;a++){
if($(AllLinks[a]).hasClass("mw-userlink")){
UserName = AllLinks[a].innerHTML;
return UserName;
}
}
return false;
}
/////////////////// AFFICHAGE/MASQUAGE D'UNE ENTRÉE ////////////////////////
function MergeHistory_Toggle(Number){
var Link = document.getElementById("MergeHistory_ToggleLink_"+Number);
var FirstLi = Link.parentNode;
var Mode = Link.innerHTML;
if(Mode==MergeHistory_Param_ToggleLinkHide) Link.innerHTML = MergeHistory_Param_ToggleLinkShow
else Link.innerHTML = MergeHistory_Param_ToggleLinkHide
var Li = FirstLi;
while(Li){
Li = Li.nextSibling;
if(!Li) break;
if($(Li).hasClass("MergeHistory_First")) break;
if(Mode==MergeHistory_Param_ToggleLinkHide){
$( Li ).addClass("MergedLi");
}else{
$( Li ).removeClass("MergedLi");
}
}
}