Utilisateur:Heddryin/RevertDiff.js

Une page de Wikiversité, la communauté pédagogique libre.

Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.
/**
 * Outils pour réverter
 * Auteurs : Lorian (en), Chphe (fr)
 * Version personnalisée
 */
//<nowiki>
var RevertDiffParams = new Object();
 
RevertDiffParams.Text = new Object();
RevertDiffParams.Text.Annul = "Annuler";
RevertDiffParams.Text.AnnulResume = 'Annulation des modifications de $2 (retour à la version de $1)';
RevertDiffParams.Text.Message = "Message";
RevertDiffParams.Text.MessageAlert = 'Quel message faut-il laisser ?';
RevertDiffParams.Text.Revert = "Révoquer";
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.Warn = "Avertir";

var TitrePageModif = mw.config.get('wgPageName').replace(/_/g, " ");

RevertDiffParams.Warn = [ 
  {urlparam:"&preload=Utilisateur:Heddryin/Test_0&preloadparams[]="+TitrePageModif, text:"Annul.",   template:'Maladresse ANNULEE sur '+TitrePageModif},
  {urlparam:"&preload=Utilisateur:Heddryin/Lien&preloadparams[]=", text:"Lien", template:'Utilisation du modèle Lien'},
  {urlparam:"&preload=Utilisateur:Heddryin/Insertion_non_sourcée&preloadparams[]="+TitrePageModif+"&preloadparams[]={{subst:BASEPAGENAME}}"+"&preloadparams[]={{subst:REVISIONUSER}}&summary=Suppression", text:"INS++",   template:'Insertion non sourcée répétée sur '+TitrePageModif},
  {urlparam:"&preload=Utilisateur:Heddryin/Maladresse&preloadparams[]="+TitrePageModif+"&preloadparams[]={{subst:BASEPAGENAME}}"+"&preloadparams[]={{subst:REVISIONUSER}}&summary=Message maladresse", text:"Corr.",   template:'Maladresse CORRIGEE sur '+TitrePageModif},
  {urlparam:"&preload=Utilisateur:Heddryin/Test_1&preloadparams[]="+TitrePageModif+"&preloadparams[]={{subst:BASEPAGENAME}}"+"&preloadparams[]={{subst:REVISIONUSER}}", text:"Vandalisme",   template:'Vandalisme sur '+TitrePageModif},
  {urlparam:"&preload=Utilisateur:Heddryin/Retrait_bandeaux&preloadparams[]="+TitrePageModif+"&preloadparams[]={{subst:BASEPAGENAME}}"+"&preloadparams[]={{subst:REVISIONUSER}}", text:"B-",   template:'Retrait de bandeaux sur '+TitrePageModif},
  {urlparam:"&preload=Utilisateur:Heddryin/Faut_sourcer&preloadparams[]="+TitrePageModif+"&preloadparams[]={{subst:BASEPAGENAME}}"+"&preloadparams[]={{subst:REVISIONUSER}}&summary=Faut sourcer !", text:"Faut sourcer",   template:'Demande de sources sur '+TitrePageModif},
  {urlparam:"&preload=Utilisateur:Heddryin/Faut_motiver&preloadparams[]="+TitrePageModif+"&preloadparams[]={{subst:BASEPAGENAME}}"+"&preloadparams[]={{subst:REVISIONUSER}}&summary=Faut motiver !", text:"Faut motiver",   template:'Demande de commentaire sur '+TitrePageModif},
/*
  {urlparam:"warn=03", text:"Test2",        template:'{{subst:Test 2}} ~~~~'},
  {urlparam:"warn=04", text:"Test3",        template:'{{subst:Test 3}} ~~~~'},
*/
  {urlparam:"warn=05", text:"Test4",        template:'{{subst:Seul avertissement}} ~~~~'},
  {urlparam:"warn=06", text:"Lien externe", template:'{{subst:Bienvenue spammeur|$page|user=$user}}'},
//  {urlparam:"warn=07", text:"Faut sourcer", template:'{{subst:Faut sourcer|$page|user=$user}}'},
  {urlparam:"warn=08", text:"Bienvenue",    template:'{{Bienvenue nouveau|sign=~~~~}}'},
  {urlparam:"warn=09", text:"BienvenueIP",  template:'{{Bienvenue IP}} ~~~~'},
  {urlparam:"warn=10", text:"MerciIP",      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 (chemin, where, user1, user2) {
  var message = prompt (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')[0];
    var user2TD = $('td.diff-ntitle')[0];
    if(!user1TD || !user2TD) return;
 
    // Récupération du chemin vers la version à rétablir
    var chemin = encodeURI(user1TD.getElementsByTagName('a')[1].href);
 
    var user1 = $(user1TD).find('a.mw-userlink').first().text();
    var user2 = $(user2TD).find('a.mw-userlink').first().text();
 
    var Annul = '('
               + '<a href="'+chemin+'&annul=1&user1='+user1+'&user2='+user2+'">'+RevertDiffParams.Text.Annul+'</a>'
               + ' / '
               + '<a href="javascript:getMessage(\''+chemin+'\',\'annul\',\''+user1+'\',\''+user2+'\');">'+RevertDiffParams.Text.Message+'</a>'
               + ')';
 
    var Revert = '('
               + '<a href="'+chemin+'&revert=1&user1='+user1+'&user2='+user2+'">'+RevertDiffParams.Text.Revert+'</a>'
               + ' / '
               + '<a href="javascript:getMessage(\''+chemin+'\',\'revert\',\''+user1+'\',\''+user2+'\');">'+RevertDiffParams.Text.Message+'</a>'
               + ')';
 
    var Warn = '('+RevertDiffParams.Text.Warn+' : ';
    var SiteURL = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=';
    for(var a=0,l=RevertDiffParams.Warn.length;a<l;a++){
        if(a!=0) Warn += ' / ';
        Warn += '<a href="'+SiteURL+'User_talk:'+user2+'&action=edit&section=new'
              + '&'+RevertDiffParams.Warn[a].urlparam+'" '
              + 'title="'+RevertDiffParams.Warn[a].template+'" '
              + '>'+RevertDiffParams.Warn[a].text+'</a>';
    }
    Warn += ')';
    document.getElementById('contentSub').innerHTML = Annul + " " + Warn;
 
  }else if (location.href.match(/annul=1/)) {
    document.getElementById('wpSummary').value = 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 = 
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 = 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 = 
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=RevertDiffParams.Warn.length;a<l;a++){
      var Warn = RevertDiffParams.Warn[a];
      if (location.href.match(new RegExp(Warn.urlparam))) {
        var Template = Warn.template;
        Template = Template.split('$page').join(''); // mw.config.get('wgPageName').replace(/_/g, " "));
        Template = Template.split('$user').join(mw.config.get('wgUserName'));
        document.getElementById('wpTextbox1').value = Template;
        document.getElementById('editform').submit();
      }
    }
  }
});
//</nowiki>