Utilisateur:Dr Brains/RefontePaStec.js

Une page de Wikipédia, l'encyclopédie libre.
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> */