Utilisateur:Dr Brains/HistoryAskForOversight.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.
HistoryAskForOversight_Params = new Array();

HistoryAskForOversight_Texts = new Array()
HistoryAskForOversight_Texts.AskForOversightValue = "Demander le masquage des versions sélectionnées";
HistoryAskForOversight_Texts.NoInputSelected = "Vous devez sélectionner au moins une version";
HistoryAskForOversight_Texts.SiteFrom = "Site ou œuvre copié(e)";
HistoryAskForOversight_Texts.DefaultSiteFrom = "Non spécifié";
HistoryAskForOversight_Texts.Template = "* Titre : $1\n"
                                      + "* Copie depuis $2\n"
                                      + "* Diff(s) à masquer : $3 <small>([$4 Lien direct])</small>\n"
                                      + "~~"+"~~";

if(mw.config.get('wgAction')=="history" /* && mw.config.get('wgUserGroups').indexOf("sysop")==-1 */){
     addOnloadHook(HistoryAskForOversight_createPanel);
}

function HistoryAskForOversight_createPanel(){
     var History = document.getElementById("pagehistory");
     if(!History) return;
     var Lis = History.getElementsByTagName('li');
     for(var a=0,l=Lis.length;a<l;a++){
          var Inputs = Lis[a].getElementsByTagName('input');
          var Oldid = Inputs[0].value;
          var NbInputs = Inputs.length;
          var CheckBox = document.createElement("input");
          CheckBox.type = "checkbox";
          CheckBox.value = Oldid;
          CheckBox.className = "AskForOversight";
          var LastInput = Inputs[(NbInputs-1)];
          LastInput.parentNode.insertBefore(CheckBox, LastInput);
     }
     var HistorySubmit = getElementsByClassName(document, "input", "historysubmit");
     for(var a=0,l=HistorySubmit.length;a<l;a++){
          var ThisHistorySubmit = HistorySubmit[a];
          var AskForOversight = document.createElement('input');
          AskForOversight.type = "button";
          AskForOversight.value = HistoryAskForOversight_Texts.AskForOversightValue;
          AskForOversight.onclick = function(){ HistoryAskForOversight_checkPanel() };
          AskForOversight.onselect = function(){ HistoryAskForOversight_checkPanel() };
          ThisHistorySubmit.parentNode.insertBefore(AskForOversight, ThisHistorySubmit.nextSibling);
     }
}

function HistoryAskForOversight_checkPanel(){
     var Inputs = getElementsByClassName(document, "input", "AskForOversight");
     var Oldids = new Array();
     for(var a=0,l=Inputs.length;a<l;a++){
          if(!Inputs[a].checked) continue;
          Oldids.push(Inputs[a].value);
     }
     if(Oldids.length==0){
          alert(HistoryAskForOversight_Texts.NoInputSelected);
          return;
     }
     var Site = prompt(HistoryAskForOversight_Texts.SiteFrom, "");
     var Diff = Inputs[0].value;
     var OS_URL = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName')) 
                + '&action=historysubmit&revisiondelete=1'
                + '&diff=' + Diff
                + '&oldid=' + Oldids[0];
     for(var a=0,l=Oldids.length;a<l;a++){
          OS_URL += '&ids'+ encodeURIComponent('['+Oldids[a]+']') +'=1'
     }
     var Titre = mw.config.get('wgPageName').replace(/_/g, " ");

     var Template = HistoryAskForOversight_Texts.Template;
     Template = Template.split("$1").join(Titre);
     Template = Template.split("$2").join((Site ? Site : HistoryAskForOversight_Texts.DefaultSiteFrom));
     Template = Template.split("$3").join(Oldids.join(", "));
     Template = Template.split("$4").join(OS_URL);

     var URL = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=Wikipédia:Demande_de_purge_d'historique&action=edit&section=new&editintro=Wikipédia:Demande_de_purge_d'historique/editintro&preloadtitle={{a-court|"+Titre+"}}";
     var Ajax = new XMLHttpRequest();
     Ajax.onreadystatechange = function() {
          if(Ajax.readyState != 4 && Ajax.status != 200) return;
          while(document.body.firstChild){ document.body.removeChild(document.body.firstChild); };
          document.body.innerHTML = Ajax.responseText;
          var TextBox = document.getElementById('wpTextbox1');
          if(TextBox){
               TextBox.value = Template;
          }
     }
     Ajax.open("GET", URL, true);
     Ajax.send(null);
}