« MediaWiki:Gadget-OptimizedSuivi.js » : différence entre les versions

Une page de Wikiquote, le recueil des citations libres.
Pabix (discussion | contributions)
m A protégé « Projet:Javascript/OptimizedSuivi »: éviter les vandalismes sur du javascript [edit=autoconfirmed:move=sysop]
Pabix (discussion | contributions)
(Aucune différence)

Version du 3 novembre 2006 à 23:08

/*

* Suivi Deluxe
*
* Retirer des pages de sa liste de suivi plus facilement
*
* Auteur : ?
* Dernière révision : 3 novembre 2006
*/

var suiviManagerAllPages = new Array();

function SuiviManagerRegexp(regexp) {

       var match = new RegExp(regexp);
       for (var i=0;i<suiviManagerAllPages.length;i++) {
               var pageName = suiviManagerAllPages[i].childNodes[0].getAttribute("value");
               if (match.test(pageName)) {
                       suiviManagerAllPages[i].childNodes[0].checked=true;
               }
       }

}

function SuiviManagerLiensRouges() {

       for (var i=0;i<suiviManagerAllPages.length;i++) {
               var pageClass = suiviManagerAllPages[i].childNodes[1].getAttribute("class");
               if (pageClass && pageClass=="new") {
                       suiviManagerAllPages[i].childNodes[0].checked=true;
               }
       }

}

function SuiviManagerDeselect() {

       for (var i=0;i<suiviManagerAllPages.length;i++) {
               suiviManagerAllPages[i].childNodes[0].checked=false;
       }

}


function SuiviManager() {

       if (document.URL.indexOf("http://fr.wikipedia.org/wiki/Special:Watchlist/edit")!=0) return;
       var a=0;
       var b=0;
       var interfaceMsg = new Array();
       var regexpList = new Array();
       //////////////////////////////////////////////////
       // Expressions régulières et liens de l'interface
       //
       // besoin d'aide pour les regexp ?
       // http://www.commentcamarche.net/javascript/jsregexp.php3
       //////////////////////////////////////////////////
       interfaceMsg[a++]       = "Tout cocher";
       regexpList[b++]         = "^.*";
       interfaceMsg[a++]       = "Utilisateurs IP";
       regexpList[b++]         = "^Utilisateur:[0-9].*";
       interfaceMsg[a++]       = "Sous-pages PàS";
       regexpList[b++]         = "^Wikipédia:Pages à supprimer\/";
       interfaceMsg[a++]       = "Sous-pages bistro";
       regexpList[b++]         = "^Wikipédia:Le Bistro\/";


       //////////////////////////////////////////////////
       var topTag = document.getElementById("contentSub")
               // récupère toutes les pages
               var watchlist = document.getElementsByTagName("ul");
       for (u=0;u<watchlist.length;u++) {
               var entries = watchlist[u].getElementsByTagName("li");
               for (i=0;i<entries.length;i++) {
                       suiviManagerAllPages.push(entries[i]);
               }
       }
       // prépare la mini-interface

var str = "

" + "

" + "

";
       for (var cpt = 0; cpt < interfaceMsg.length; cpt ++) {
               str += "<a href=\"javascript:SuiviManagerRegexp('" + regexpList[cpt] + "')\">"
                       + interfaceMsg[cpt]
                       + " ·</a> ";
       }
       str += "<a href=\"javascript:SuiviManagerLiensRouges()\">"
               + "Retirer les liens rouges"
               + " ·</a> ";
       str += "<a href=\"javascript:SuiviManagerDeselect()\">"
               + "Enlever toutes les coches"
               + " ·</a> ";
topTag.innerHTML = topTag.innerHTML + "
" + str + "

"

} addLoadEvent(SuiviManager);