/**
* Suivi Deluxe
*
* Retirer des pages de sa liste de suivi plus facilement
*
* Auteur : Dake
* Dernière révision : 10 mai 2008
* {{Projet:JavaScript/Script|OptimizedSuivi}}
*/
var svmAllPages = new Array();
window.SuiviManagerRegexp = function(regexp) {
var match = new RegExp(regexp);
for (var i=0;i<svmAllPages.length;i++) {
if (match.test(svmAllPages.target)) {
svmAllPages.checkBox.checked=true;
}
}
};
window.SuiviManagerLiensRouges = function() {
for (var i=0;i<svmAllPages.length;i++) {
if (svmAllPages.isNew
&& ((svmAllPages.target.indexOf('/') == -1 && svmAllPages.target.indexOf(':') == -1)
|| svmAllPages.isTalkNew) ) {
svmAllPages.checkBox.checked=true;
}
}
};
window.SuiviManagerRedirects = function() {
for (var i=0;i<svmAllPages.length;i++) {
if (svmAllPages.isRedirect
&& (svmAllPages.isTalkRedirect
|| svmAllPages.isTalkNew)) {
svmAllPages.checkBox.checked=true;
}
}
};
window.SuiviManagerDeselect = function() {
for (var i=0;i<svmAllPages.length;i++) {
svmAllPages.checkBox.checked=false;
}
};
function SuiviManager() {
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 = "<b>Tout cocher</b>";
regexpList = "^.*";
interfaceMsg = "Utilisateurs IP";
regexpList = "^Utilisateur:{1,3}\\.";
interfaceMsg = "Sous-pages PàS";
regexpList = "/Admissibilité$";
interfaceMsg = "Sous-pages bistro";
regexpList = "^Wikipédia:Le Bistro/";
//////////////////////////////////////////////////
var topTag = document.getElementById("contentSub");
// récupère toutes les pages
var bc = document.getElementById("content"); // Monobook, Vector, Chick, MySkin, Simple
if(!bc)bc= document.getElementById("article"); // Cologneblue, Nostalgia, Standard
if(!bc)bc= document.getElementById("mw_contentholder"); // Modern
var wlElements = bc.getElementsByTagName("div");
for (var i = 0; i < wlElements.length; i++) {
if (!$(wlElements).hasClass("mw-htmlform-flatlist-item")) continue;
var wlItem = new Object();
wlItem.checkBox = wlElements.getElementsByTagName("input");
if (!wlItem.checkBox) continue;
var label = wlElements.getElementsByTagName("label");
var labelSpan = label.getElementsByTagName("span");
var links = label.getElementsByTagName("a");
wlItem.isRedirect = labelSpan ? $(labelSpan).hasClass("watchlistredir") : false;
wlItem.isNew = $(links).hasClass("new");
wlItem.isTalkRedirect = $(links).hasClass("mw-redirect");
wlItem.isTalkNew = $(links).hasClass("new");
wlItem.target = wlItem.checkBox.value;
svmAllPages.push(wlItem);
}
if (svmAllPages.length == 0) return; // si on est dans EditWatchlist/raw
// prépare la mini-interface
var str = "<div style=\"background-color:#8ecfe4;font-size:1px;height:8px;border:1px solid #AAAAAA;\"></div>"
+ "<div style=\"border:1px solid #6ac1de;border-top:0px solid white;padding:5px 5px 0 5px;margin-bottom:3ex;\"><p>"
+ "<div style=\"float: left; text-align: left; white-space: nowrap;\"></div>";
for (var cpt = 0; cpt < interfaceMsg.length; cpt ++) {
str += "<a href=\"javascript:window.SuiviManagerRegexp('" + regexpList + "')\">"
+ interfaceMsg
+ "</a> · ";
}
str += "<a href=\"javascript:window.SuiviManagerLiensRouges()\">"
+ "Retirer les liens rouges"
+ "</a> · ";
str += "<a href=\"javascript:window.SuiviManagerRedirects()\">"
+ "Retirer les redirections"
+ "</a> · ";
str += "<a href=\"javascript:window.SuiviManagerDeselect()\">"
+ "<b>Enlever toutes les coches</b>"
+ "</a>";
topTag.innerHTML = topTag.innerHTML + "<br clear=all />" + str + "<p></div>";
}
if (mw.config.get('wgCanonicalSpecialPageName') == "EditWatchlist") {
$(SuiviManager);
}