Utilisateur:Dr Brains/RevertDiff.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./**
* Outils pour réverter
*
* fournit des liens dans les pages de diff pour révoquer facilement une modification et avertir son auteur
*
* Auteurs : Lorian (en), Chphe (fr)
* Dernière révision : 13 septembre 2012 pour le projet Aide et accueil
* {{Projet:JavaScript/Script|RevertDiff}}
*/
//<nowiki>
var RevertDiffParams = new Object();
RevertDiffParams.Text = new Object();
RevertDiffParams.Text.Revert = "Annuler";
RevertDiffParams.Text.RevertResume = 'Révocation des modifications de [[Special:Contributions/$2|$2]] (retour à la précédente version de [[Special:Contributions/$1|$1]])';
RevertDiffParams.Text.RevertPerso = "Résumé personnalisé";
RevertDiffParams.Text.WarnResume = "Message";
RevertDiffParams.Text.WarnPerso = "Message personnalisé";
RevertDiffParams.Text.MessageAlert = 'Quel message faut-il laisser ?';
RevertDiffParams.Text.Warn = "Message à $2";
RevertDiffParams.Split = true;
RevertDiffParams.Revert = [
{ urlparam:"revert=01", text:"Bac à sable" , resume:"[[Wikipédia:Bac à sable|Bac à sable]]" },
{ urlparam:"revert=02", text:"Vandalisme" , resume:"[[Wikipédia:Vandalisme|Vandalisme]]" },
{ urlparam:"revert=03", text:"Non-sourcé" , resume:"Retrait d’information non sourcée" },
{ urlparam:"revert=04", text:"Trad auto" , resume:"Traduction automatique" }
];
RevertDiffParams.Warn = [
{urlparam:"warn=01", text:"Maladresse", resume:"test 0", template:'{{subst:Test 0}} ~~~~'},
{urlparam:"warn=02", text:"Vandalisme", resume:"test 1", template:'{{subst:Test 1}} ~~~~'},
{urlparam:"warn=03", text:"Test2", resume:'test 2', template:'{{subst:Test 2}} ~~~~'},
{urlparam:"warn=04", text:"Test3", resume:'test 3', template:'{{subst:Test 3}} ~~~~'},
{urlparam:"warn=05", text:"Test4", resume:'seul avertissement', template:'{{subst:Seul avertissement}} ~~~~'},
{urlparam:"warn=06", text:"Lien externe", resume:"spammeur", template:'{{subst:Bienvenue spammeur}} ~~~~'},
{urlparam:"warn=07", text:"Faut sourcer", resume:"sources", template:'{{subst:Faut sourcer}} ~~~~'},
{urlparam:"warn=08", text:"Bienvenue", resume:"bienvenue nouveau", template:'{{Bienvenue nouveau|sign=~~~~}}'},
{urlparam:"warn=09", text:"BienvenueIP", resume:"bienvenue IP", template:'{{Bienvenue IP|sign=~~~~}}'},
{urlparam:"warn=10", text:"MerciIP", resume:"IP méritante", template:'{{Bienvenue IP méritante|sign=~~~~}}'}
];
function getURLParameters(x) {
var questionMark = x.indexOf('?');
if (questionMark == -1) return {}
var fieldsArray = x.substr(questionMark + 1).split('&');
var fields = {};
for (var i = 0; i < fieldsArray.length; i++) {
var field = fieldsArray[i];
var equal = field.indexOf('=');
if (equal == -1) {
fields[decodeURIComponent(field)] = '';
} else {
fields[decodeURIComponent(field.substr(0, equal))] = decodeURIComponent(field.substr(equal + 1));
}
}
return fields;
}
_GET = getURLParameters(location.href);
function getMessage(URL, where) {
var message = prompt(RevertDiffParams.Text.MessageAlert, '');
if(message){
window.location = URL + '&'+where+'&message='+encodeURIComponent(message);
}
}
mw.loader.load('//fr.wikipedia.org/w/index.php?title=MediaWiki:Gadget-RevertDiff.css&action=raw&ctype=text/css', 'text/css');
$(function (){
if (location.href.match(/diff=/)) {
// Get username of submitter
var username1TD = $('td.diff-otitle')[0];
var username2TD = $('td.diff-ntitle')[0];
if(!username1TD || !username2TD) return;
var username1 = encodeURIComponent($(username1TD).find("a.mw-userlink").first().text());
var username2 = encodeURIComponent($(username2TD).find("a.mw-userlink").first().text());
var Revert = '<span class="RevertDiffMenuAnchor">('+RevertDiffParams.Text.Revert + '<span class="RevertDiffMenu"> : ';
var RevertURL = encodeURI(username1TD.getElementsByTagName('a')[1].href)
+ '&username1='+username1+'&username2='+username2;
for(var a=0,l=RevertDiffParams.Revert.length;a<l;a++){
if(a!=0) Revert += ' / ';
Revert += '<a href="'+RevertURL+'&'+RevertDiffParams.Revert[a].urlparam+'" '
+ '>'+RevertDiffParams.Revert[a].text+'</a>'
}
Revert += ' / '
+ '<a id="RevertDiff_RevertPerso" href="javascript:getMessage(\''+RevertURL+'\',\'revert=perso\');" '
+ '>'+RevertDiffParams.Text.RevertPerso+'</a>';
Revert += '</span>)</span>';
var WarnUser1 = '<span class="RevertDiffMenuAnchor">('+RevertDiffParams.Text.Warn.split("$2").join(decodeURIComponent(username1))+'<span class="RevertDiffMenu"> : ';
var WarnUser1URL = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=User_talk:'+username1+'&action=edit§ion=new'
+ '&username1='+username1+'&username2='+username2;
for(var a=0,l=RevertDiffParams.Warn.length;a<l;a++){
if(a!=0) WarnUser1 += ' / ';
WarnUser1 += '<a href="'+WarnUser1URL + '&'+RevertDiffParams.Warn[a].urlparam+'" '
+ 'title="'+RevertDiffParams.Warn[a].template+'" '
+ '>'+RevertDiffParams.Warn[a].text+'</a>';
}
WarnUser1 += ' / '
+ '<a id="RevertDiff_WarnPerso" href="javascript:getMessage(\''+WarnUser1URL+'\',\'warn=perso\');" '
+ '>'+RevertDiffParams.Text.WarnPerso+'</a>';
WarnUser1 += '</span>)</span>';
var WarnUser2 = '<span class="RevertDiffMenuAnchor">('+RevertDiffParams.Text.Warn.split("$2").join(decodeURIComponent(username2))+'<span class="RevertDiffMenu"> : ';
var WarnUser2URL = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=User_talk:'+username2+'&action=edit§ion=new'
+ '&username1='+username1+'&username2='+username2;
for(var a=0,l=RevertDiffParams.Warn.length;a<l;a++){
if(a!=0) WarnUser2 += ' / ';
WarnUser2 += '<a href="'+WarnUser2URL + '&'+RevertDiffParams.Warn[a].urlparam+'" '
+ 'title="'+RevertDiffParams.Warn[a].template+'" '
+ '>'+RevertDiffParams.Warn[a].text+'</a>';
}
WarnUser2 += ' / '
+ '<a id="RevertDiff_WarnPerso" href="javascript:getMessage(\''+WarnUser2URL+'\',\'warn=perso\');" '
+ '>'+RevertDiffParams.Text.WarnPerso+'</a>';
WarnUser2 += '</span>)</span>';
document.getElementById('contentSub').innerHTML = Revert + (RevertDiffParams.Split ? "<br />" : " ") + WarnUser1 + (RevertDiffParams.Split ? "<br />" : " ") + WarnUser2;
}else if (location.href.match(/revert=/)){
var Resume = RevertDiffParams.Text.RevertResume.split("$1").join(_GET['username1']).split("$2").join(_GET['username2']);
if (location.href.match(/revert=perso/)){
document.getElementById('wpSummary').value = Resume + ' : '+ _GET['message'];
document.getElementById('editform').submit();
return;
}
for(var a=0,l=RevertDiffParams.Revert.length;a<l;a++){
var Revert = RevertDiffParams.Revert[a];
if (location.href.match(new RegExp(Revert.urlparam))) {
document.getElementById('wpSummary').value = Resume + ' : '+ Revert.resume;
document.getElementById('editform').submit();
return;
}
}
}else if (location.href.match(/warn=/)){
var Resume = RevertDiffParams.Text.WarnResume;
if (location.href.match(/warn=perso/)){
document.getElementById('wpSummary').value = Resume + ' : '+ _GET['message'];
document.getElementById('wpTextbox1').value = _GET['message'];
document.getElementById('editform').submit();
return;
}
for(var a=0,l=RevertDiffParams.Warn.length;a<l;a++){
var Warn = RevertDiffParams.Warn[a];
if (location.href.match(new RegExp(Warn.urlparam))) {
document.getElementById('wpSummary').value = Resume + ' : '+ Warn.resume;
document.getElementById('wpTextbox1').value = Warn.template;
document.getElementById('editform').submit();
return;
}
}
}
});
//</nowiki>