MediaWiki:Gadget-FastRevert.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.
// ********************************************************************
// Ce gadget a été modifié ici sur wikibooks :
//   - DavidL : Utilisation de l'API DOM pour générer les balises
//              HTML au lieu de innerHtml qui supprime les
//              gestionnaires d'évènements.
// ********************************************************************
// TOUTE MISE À JOUR DOIT PRENDRE EN COMPTE LES MODIFICATIONS CI-DESSUS
// ********************************************************************

/**
[[Catégorie:MediaWiki:Fonction Monobook en JavaScript|FastRevert]]
 ************* FastRevert *******************
 * Permet de rétablir une ancienne version. *
 *                                          *
 * Auteur : Quentinv57, pour Wikimedia      *
 *          -- 06 février 2010 --              *
 ********************************************
 */
 
if (location.href.match(/&action=history/))
$( function ()
{
    function set()
    {
        this.arr=[];
        this.add1=function(e)   { if (this.arr.indexOf(e)<0) this.arr.push(e); };
        this.add=function()     { for(var i=0;i<arguments.length;i++) this.add1(arguments[i]); };
        for(var i=0;i<arguments.length;i++) this.add1(arguments[i]);
        this.toString=function(){ return this.arr.toString(); };
    }
    var chemin = mw.config.get('wgScript') + '?action=edit&retablir';
    var pagehistory = document.getElementById('pagehistory');
    if (!pagehistory) return;
    pagehistory = pagehistory.getElementsByTagName('li');
    var user2 = new set();
    for (x=0;x<pagehistory.length;x++)
    {
        var elem = pagehistory[x];
        if (!elem || !elem.getElementsByTagName) continue;
        var links = elem.getElementsByTagName('a');
        if (!links || links.length<3) continue;
        if (x==0)
        {
            user2.add(getTextContent(links[2]));
        }
        else if (links.length>3 && links[2].href)
        {
            var iu = (getTextContent(links[1])=='diff')?3:2;
            var user = getTextContent(links[iu]), loc = links[iu-1].href;
            var mres = loc.match('&oldid=([0-9]+)');
            if (mres && mres.length>1)
            {
                var oldid = mres[1];
                appendDOM(elem,
                    '(',
                    ['a',{'href':chemin+'&oldid='+oldid+'&user='+encodeURIComponent(user)+'&user2='+encodeURIComponent(user2.toString())},'rétablir'],
                    ')');
            }
            user2.add(user);
        }
    }
});
else if (location.href.match(/&retablir&/))
$( function ()
{
    // _GET code from NoGray JS Library http://www.nogray.com/new_site/
    var _GET = new Array();
    var _uri = location.href;
    var _temp_get_arr = _uri.substring(_uri.indexOf('?')+1, _uri.length).split("&");
    var _temp_get_arr_1 = new Array();
    for(_get_arr_i=0; _get_arr_i<_temp_get_arr.length; _get_arr_i++)
    {
        _temp_get_arr_1 = _temp_get_arr[_get_arr_i].split("=");
        _GET[decodeURI(_temp_get_arr_1[0])] = decodeURI(_temp_get_arr_1[1]);
    }
    delete _uri; delete _temp_get_arr; delete _temp_get_arr_1;

    var message = prompt ('Quel message faut-il laisser ?', 'Révocation des modifications de [[Spécial:Contributions/'+_GET['user2']+'|'+_GET['user2']+']]');
    if (message)
    {
        document.getElementById('wpSummary').value = message + ' ; Retour à la version '+_GET['oldid']+' de [[Spécial:Contributions/'+_GET['user']+'|'+_GET['user']+']]';
        document.getElementById('editform').submit();
    }
    else window.history.back();
});