MediaWiki:Gadget-FastRevert.js

Un livre de Wikilivres.

Attention : Depuis MediaWiki 1.18 les pages se terminant avec l'extension .js ou .css sont interprétées comme des pages wiki ! En particulier les modèles (subst ou non) et les liens. Vous devez donc migrer le code source et effectuer vos changements en évitant ces éléments de syntaxe wiki (peu importe leurs emplacements dans le code source : commentaire, chaine) :

  • Double accolades ouvrantes (en particulier avec subst:) : séparer les deux accolades "{"+"{" du reste de la chaine
  • Double crochets ouvrants : même technique de séparation.
  • Signature (tildes ~ multiples) : même technique de séparation.

Note : après avoir enregistré vos préférences, vous devrez attendre que le serveur mette à jour la feuille de style globale avant de 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 pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
  • Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
  • Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
  • Konqueror : Cliquez sur Actualiser ou pressez F5 ;
  • Opera : Videz le cache dans Outils → Préférences.
wgfrwikibooks_Gadget_FastRevertJsVersion = "20150117001";
// ********************************************************************
// 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.
//              * Compatibilité avec Gadget DeluxeHistory
// ********************************************************************
// TOUTE MISE À JOUR DOIT PRENDRE EN COMPTE LES MODIFICATIONS CI-DESSUS
// ********************************************************************
wgGadget_FastRevertJsVersion = "20120602001";

/**
[[Catégorie:MediaWiki:Fonction Monobook en JavaScript|FastRevert]]
 ************* FastRevert *******************
 * Permet de rétablir une ancienne version. *
 *                                          *
 * Auteur : Quentinv57, pour Wikimedia      *
 *          -- 06 feb. 2010 --              *
 ********************************************
 */
 
if (/&action=history/.test(location.href))
$( 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.hasChildNodes() && equalsAa(elem.firstChild.nodeName,'div'))
            elem = elem.firstChild;
        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()),'title':'Rétablir cette ancienne version'},'rétablir'],
                    ')');
            }
            user2.add(user);
        }
    }
});
else if (/&retablir&/.test(location.href))
$( 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 [[Special:Contributions/'+_GET['user']+'|'+_GET['user']+']]';
        document.getElementById('editform').submit();
    }
    else window.history.back();
});