Utilisateur:Dr Brains/RefontePaStec.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./* <source lang=javascript> */
if(typeof(PaStec == "undefined"){
var PaStec = {};
PaStec.params = {};
PaStec.vars = {};
PaStec.vars.DeletionpageRegExp = /.*\/Suppression$/ ;
PaStec.vars.months = ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"];
PaStec.func = {};
PaStec.func.ajax = {
http:function(bundle){ var xmlhttp; try{ xmlhttp = new XMLHttpRequest(); }catch(e){ try{ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){ xmlhttp = false; }}}; if(xmlhttp){ xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState == 4){ PaStec.func.ajax.httpComplete(xmlhttp,bundle);}}; xmlhttp.open(bundle.method ? bundle.method : "GET",bundle.url,bundle.async == false ? false : true); if (bundle.headers) { for (var field in bundle.headers){ try{ xmlhttp.setRequestHeader(field,bundle.headers[field]); }catch(err){}}}; xmlhttp.send(bundle.data ? bundle.data : null); }; return xmlhttp;},
httpComplete: function(xmlhttp,bundle){ if(xmlhttp.status == 200 || xmlhttp.status == 302){ if(bundle.onSuccess) bundle.onSuccess(xmlhttp,bundle); }else if(bundle.onFailure){ bundle.onFailure(xmlhttp,bundle); }else{ }}
};
PaStec.func.getnsinfofrompage = function(Page, ToReturn){
if(!ToReturn || !Page) ToReturn = false;
var NamespaceNumber = 0;
var NamespaceName = "";
var PageName = Page;
var Found = false;
var NSlist = mw.config.get('wgFormattedNamespaces');
for(var NS in NSlist){
if(Found) continue;
var ThisNamespaceName = NSlist[NS];
if(ThisNamespaceName==="") continue;
var NamespaceNameRegExp = new RegExp("^"+ThisNamespaceName+":", "ig");
var Matches = Page.match(NamespaceNameRegExp);
if(Matches!=null && Matches.length == 1){
NamespaceNumber = parseInt(NS);
NamespaceName = ThisNamespaceName;
PageName = Page.replace(NamespaceNameRegExp, "");
Found = true;
}
}
if(ToReturn==="NamespaceName") return NamespaceName;
if(ToReturn==="PageName") return PageName;
return NamespaceNumber;
}
PaStec.func.isDeletionpage = function(page){
if(!page) page = mw.config.get('wgPageName').replace(/_/g, " ");
var ns = PaStec.func.getnsinfofrompage(page);
return ( page.match(PaStec.vars.DeletionpageRegExp) != null && ns > -1);
}
PaStec.func.isNotDeletionpage = function(page){
if(!page) page = mw.config.get('wgPageName').replace(/_/g, " ");
var ns = PaStec.func.getnsinfofrompage(page);
return ( page.match(PaStec.vars.DeletionpageRegExp) == null && ns > -1 );
}
PaStec.func.getPage = function(page){
if(!page) page = mw.config.get('wgPageName').replace(/_/g, " ");
if(PaStec.func.isNotDeletionpage) return page;
return ( page.replace(PaStec.vars.DeletionpageRegExp, "") );
}
PaStec.func.getDeletionPage = function(page){
if(!page) page = mw.config.get('wgPageName').replace(/_/g, " ");
if(PaStec.func.isDeletionpage) return page;
return ( page + PaStec.vars.DeletionpageRegExp.toString().replace(/\^\$/g, "") );
}
PaStec.func.initDeletionForm = function(){
}
PaStec.params.links = [
{ id : "n-pas7",
url : mw.config.get('wgServer') + mw.config.get('wgArticlePath').split("$1").join("Wikipédia:Pages à supprimer#"), // TODO date
title : "Demandes PàS à traiter",
text : "PàS 7 jours",
condition : ""
},
{ id : "n-pas14",
url : mw.config.get('wgServer') + mw.config.get('wgArticlePath').split("$1").join("Wikipédia:Pages à supprimer#"), // TODO date
title : "Demandes PàS à traiter après prolongation",
text : "PàS 14 jours",
condition : ""
},
{ id : "n-pasi",
url : mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + PaStec.func.getDeletionPage() + '&action=edit&editintro=Mod%C3%A8le%3ASuppression%2Finitialise%2Fintro&preload=Mod%C3%A8le%3AInitialiser+P%C3%A0S',
title : "Initialiser une PàS",
text : "Initialiser PàS",
condition : "notPAS"
},
]
PaStec.func.initLinks = function(){
var tb = document.getElementById("p-tb");
if(!tb) return;
var UL = tb.getElementsByTagName("ul")[0];
if(!UL) return;
var LinksParams = PaStec.params.links;
for(var a=0,l=LinksParams.length;a<l;a++){
var LinkParams = LinksParams[a];
var Li = document.createElement('li');
Li.id = LinkParams.id;
var Link = document.createElement('a');
Link.href = LinkParams.url;
Link.title = LinkParams.title;
Link.innerHTML = LinkParams.text;
Li.appendChild(Link);
UL.appendChild(Li);
}
}
PaStec.func.init = function(){
if(PaStec.func.isDeletionpage) return PaStec.func.initDeletionForm();
if(PaStec.func.isNotDeletionpage) return PaStec.func.initLinks();
}
$(PaStec.func.init);
}
/* </source> */