Utilisateur:Tractopelle-jaune/RevertDiffPlus.js

Une page de Wikipédia, l'encyclopédie libre.
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 : 27 décembre 2013 — séparation des annulations et révocations
 * {{Projet:JavaScript/Script|RevertDiff}}
 * 
 * Version personalisée par Tractopelle-jaune le 24 mars 2018
 * Dernière modification : 2021-12-21 (résumé de modification pour révocations et annulations)
 */
//<nowiki>

if (typeof window.RevertDiffParams === 'undefined') {
  window.RevertDiffParams = new Object();

  window.RevertDiffParams.Text = new Object();
  window.RevertDiffParams.Text.Annul = "Annuler";
  window.RevertDiffParams.Text.AnnulResume = 'Annulation modifications de [[Special:Contribs/$2|$2]], retour version de [[Special:Contribs/$1|$1]])';
  window.RevertDiffParams.Text.Message = "Message";
  window.RevertDiffParams.Text.MessageAlert = 'Quel message faut-il laisser ?';
  window.RevertDiffParams.Text.Revert = "Révoquer";
  window.RevertDiffParams.Text.RevertResume = 'Révocations modifications de [[Spécial:Contribs/$2|$2]], retour version de [[Special:Contribs/$1|$1]]';
  window.RevertDiffParams.Text.Warn = "Avertir";


  window.RevertDiffParams.Warn = [
  	{urlparam:"warn=01", text:"Test 0-NoRefs",      template:'{{subst:Test 0|$page|$diffnew|sources=oui}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
  	{urlparam:"warn=02", text:"0-Wikif",            template:'{{subst:Test 0|$page|$diffnew|wikif=oui}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
  	{urlparam:"warn=03", text:"0-Wikif+LE",         template:'{{subst:Test 0|$page|$diffnew|wikif=oui|LE=oui}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
  	{urlparam:"warn=04", text:"0-Wikif+NoRefs",     template:'{{subst:Test 0|$page|$diffnew|wikif=oui|sources=oui}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
  	{urlparam:"warn=05", text:"0-Wikif+POV",        template:'{{subst:Test 0|$page|$diffnew|wikif=oui|POV=oui}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
  	{urlparam:"warn=06", text:"0-Wikif+POV+NoRefs", template:'{{subst:Test 0|$page|$diffnew|wikif=oui|POV=oui|sources=oui}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
  	{urlparam:"warn=07", text:"0-Wikif+POV+LE",     template:'{{subst:Test 0|$page|$diffnew|wikif=oui|POV=oui|LE=oui}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
  	{urlparam:"warn=08", text:"0-LE",               template:'{{subst:Test 0|$page|$diffnew|LE=oui}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=09", text:"0-POV",              template:'{{subst:Test 0|$page|$diffnew|POV=oui}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=10", text:"0-POV+LE",           template:'{{subst:Test 0|$page|$diffnew|POV=oui|LE=oui}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=11", text:"0-POV+NoRefs",       template:'{{subst:Test 0|$page|$diffnew|POV=oui|sources=oui}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=12", text:"Test ?",             template:'{{subst:Test ?|$page|user=$user}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=13", text:"Test 1",             template:'{{subst:Test 1|$page}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=14", text:"Test 2",             template:'{{subst:Test 2}}\n\n\'\'\'Page concernée :\'\'\' [[:$page]]\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=15", text:"Test 3",             template:'{{subst:Test 3}}\n\n\'\'\'Page concernée :\'\'\' [[:$page]]\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=16", text:"Test 4",             template:'{{subst:Seul avertissement}}\n\n\'\'\'Page concernée :\'\'\' [[:$page]]\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=17", text:"Cracra",             template:'== Votre modification sur l\'article « [[:$page]] » a été annulée ==\n{{subst:Vandalisme cracra}}\n\n--~~~~'},
    {urlparam:"warn=18", text:"Mort 1",             template:'{{subst:Faux décès|$page}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=19", text:"Mort 2",             template:'{{subst:Faux décès 2|$page}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=20", text:"Copyvio S.",         template:'{{subst:Avertissement Copyvio Synopsis|$page}}\n\n--~~~~'},
    {urlparam:"warn=21", text:"Copyvio 1",          template:'{{subst:Avertissement Copyvio|$page}}\n\n--~~~~'},
    {urlparam:"warn=22", text:"Copyvio 2",          template:'{{subst:Dernier avertissement Copyvio|$page}}\n\n--~~~~'},
    {urlparam:"warn=23", text:"Copyvio 4",          template:'{{subst:Bienvenue Copyvio 4|$page}}\n\n--~~~~'},
    {urlparam:"warn=24", text:"Retrait 1",          template:'{{subst:Retrait injustifié|$page}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=25", text:"Retrait 2",          template:'{{subst:Test 2-}}\n\n\'\'\'Page concernée :\'\'\' [[:$page]]\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=26", text:"Ajout POV",          template:'{{subst:Ajout POV|$page|$diffnew}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=27", text:"Non-encyclo",        template:'{{subst:Non-encyclo|$page}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=28", text:"No ref wiki",        template:'{{subst:No ref wiki|$page|user=$user}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=29", text:"LE HC",              template:'{{subst:Bienvenue spammeur|$page}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=30", text:"LE spam",            template:'{{subst:Bienvenue spammeur|$page|spam=oui}}\n\n\'\'\'Exemple :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=31", text:"Plaquette pub",      template:'{{subst:Conflit d\'intérêts|$page}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=32", text:"Sourcer 1",          template:'{{subst:Faut sourcer|$page}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=33", text:"Sourcer 2",          template:'{{subst:Faut sourcer 2|$page}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=34", text:"Cassage hist. 1",    template:'== Cassage d\'historique lors du renommage de « [[:$page]] » ==\n{{subst:Bienvenue copié collé|$page}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=35", text:"Cassage hist. 2",    template:'== Cassage d\'historique lors du renommage de « [[:$page]] » ==\n{{Copier-coller}}\n\n\'\'\'Page concernée :\'\'\' [[:$page]]\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=36", text:"Cassage syntaxe",    template:'{{subst:Réparation|$page|$diffnew}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=37", text:"AutoTranslate",      template:'{{subst:Traduction automatique|$page|user=$user}}\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'},
    {urlparam:"warn=38", text:"BienvenueIP",        template:'{{Bienvenue IP méritante|$user|message=Je vous remercie pour [[Spécial:Diff/$diffold/$diffnew|vos apports]] à l\'article « \'\'\'[[:$page]]\'\'\' ».\n\nC\'est ainsi que l\'encyclopédie progresse.\n\n[[Wikipédia:N\'hésitez pas !|N\'hésitez pas]] à faire d\'autres modifications !|sign=~~~~}}'},
    {urlparam:"warn=39", text:"MerciIP",            template:'{{subst:Merci IP|raison=[[Spécial:Diff/$diffold/$diffnew|vos apports]] à l\'encyclopédie, notamment à l\'article « \'\'\'[[:$page]]\'\'\' »}}\n\n--~~~~'},
    {urlparam:"warn=40", text:"Transparence",       template:'{{subst:Transparence}}\n\n--~~~~'},
    {urlparam:"warn=41", text:"U-R3R",              template:'{{subst:U-R3R|$page}}\n\n--~~~~'},
    {urlparam:"warn=42", text:"Article signé",      template:'{{subst:Signature}}\n\n\'\'\'Page concernée :\'\'\' [[:$page]]\n\n\'\'\'Modifications concernées :\'\'\' [[Spécial:Diff/$diffold/$diffnew]]\n\n--~~~~'}
  ];
}


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;
}

var _GET = getURLParameters(location.href);

window.getMessage = function(chemin, where, user1, user2) {
  var message = prompt (window.RevertDiffParams.Text.MessageAlert, '');
  if (message) {
    window.location = chemin + '&'+where+'=2&user1='+user1+'&user2='+user2+'&message='+message;
  }
};

$(document).ready(function (){
  if (location.href.match(/diff=/)) {
    // Get username of submitter
    var user1TD = $('td.diff-otitle');
    var user2TD = $('td.diff-ntitle');
    if (!user1TD.length || !user2TD.length) return;

    // Récupération du chemin vers la version à rétablir
    var chemin = encodeURI(user1TD.find('span.mw-diff-edit a').attr('href'));
    
    // Récupération des 2 diffs avant-après
    var diffOld = _GET['oldid'];
    var diffNew = _GET['diff'];

    var user1 = user1TD.find('a.mw-userlink').text();
    var user2 = user2TD.find('a.mw-userlink').text();

    var Annul = '('
               + '<a href="'+chemin+'&annul=1&user1='+user1+'&user2='+user2+'">'+window.RevertDiffParams.Text.Annul+'</a>'
               + ' / '
               + '<a href="javascript:window.getMessage(\''+chemin+'\',\'annul\',\''+user1+'\',\''+user2+'\');">'+window.RevertDiffParams.Text.Message+'</a>'
               + ')';

    var Revert = '('
               + '<a href="'+chemin+'&revert=1&user1='+user1+'&user2='+user2+'">'+window.RevertDiffParams.Text.Revert+'</a>'
               + ' / '
               + '<a href="javascript:window.getMessage(\''+chemin+'\',\'revert\',\''+user1+'\',\''+user2+'\');">'+window.RevertDiffParams.Text.Message+'</a>'
               + ')';

    var Warn = '('+window.RevertDiffParams.Text.Warn+' : ';
    var SiteURL = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=';
    for(var a=0,l=window.RevertDiffParams.Warn.length;a<l;a++){
        if(a!=0) Warn += ' / ';
        Warn += '<a href="'+SiteURL+'User_talk:'+user2+'&action=edit&section=new&diffold='+diffOld+'&diffnew='+diffNew+''
              + '&revertdiffsrc=' + encodeURIComponent(mw.config.get('wgPageName'))
              + '&'+window.RevertDiffParams.Warn[a].urlparam+'" '
              + 'title="'+window.RevertDiffParams.Warn[a].template+'" '
              + '>'+window.RevertDiffParams.Warn[a].text+'</a>';
    }
    Warn += ')';
    document.getElementById('contentSub').innerHTML = Annul + " " + Revert + " " + Warn;

  }else if (location.href.match(/annul=1/)) {
    document.getElementById('wpSummary').value = window.RevertDiffParams.Text.AnnulResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']);
    document.getElementById('editform').submit();
  }else if (location.href.match(/annul=2/)) {
    document.getElementById('wpSummary').value = window.RevertDiffParams.Text.AnnulResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']) + ' : '+_GET['message'];
    document.getElementById('editform').submit();
  }else if (location.href.match(/revert=1/)) {
    document.getElementById('wpSummary').value = window.RevertDiffParams.Text.RevertResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']);
    document.getElementById('editform').submit();
  }else if (location.href.match(/revert=2/)) {
    document.getElementById('wpSummary').value = window.RevertDiffParams.Text.RevertResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']) + ' : '+_GET['message'];
    document.getElementById('editform').submit();
  }else{
    for(var a=0,l=window.RevertDiffParams.Warn.length;a<l;a++){
      var Warn = window.RevertDiffParams.Warn[a];
      if (location.href.match(new RegExp(Warn.urlparam))) {
        var Template = Warn.template;
        Template = Template.split('$page').join(_GET['revertdiffsrc'].replace(/_/g, " "));
        Template = Template.split('$user').join(mw.config.get('wgUserName'));
        Template = Template.split('$diffold').join(_GET['diffold']);
        Template = Template.split('$diffnew').join(_GET['diffnew']);
        document.getElementById('wpTextbox1').value = Template;
        document.getElementById('editform').submit();
      }
    }
  }
});
//</nowiki>