For faster navigation, this Iframe is preloading the Wikiwand page for میدیاویکی:Gadget-DeleteBot.js.

میدیاویکی:Gadget-DeleteBot.js

/*

Outil automatique pour supprimer plusieurs pages appartenant à la catégorie courante.

Nécessite les outils de sysop (delete).

* Documentation : [[Projet:JavaScript/Notices/DeleteBot]]


* Auteur : [[fr:User:Dr Brains]]
* Licence : Domaine public

* ((Catégorisation JS|DeleteBot))
*/


var DeleteBot_Text_DeleteAll = "پەڕەکان بسڕەوە";
var DeleteBot_Text_ConfirmDeleteThisPage = "« $1 » بسڕدرێتەوە؟";
var DeleteBot_Text_Summary = "";
var DeleteBot_Text_OKInput = "بەڵێ";
var DeleteBot_Text_CancelInput = "ھەڵوەشاندنەوە";
var DeleteBot_Text_Legend = "سڕینەوەی پەڕەکانی پۆلی « $1 »";
var DeleteBot_Text_ListLegend = "پێڕستی پەڕەکان";
var DeleteBot_Text_SummaryLegend = "ھۆکارەکانی سڕینەوە";
var DeleteBot_Text_ButtonsLegend = "سڕینەوە";
var DeleteBot_Text_OtherReason = "ھۆکاری تر";

var DeleteBot_Param_NoConfirm = false;

// --------------------------------------------------------------------------------------------
// Fonction de requête
 
var DeleteBot_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){ DeleteBot_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{ ))
};
 
// --------------------------------------------------------------------------------------------
// Ajout du lien "Tout supprimer"
 
function DeleteBot_AddLink(){
     if(typeof(DeleteBot_LangCustom)=="function") DeleteBot_LangCustom();
     if(typeof(DeleteBot_SiteCustom)=="function") DeleteBot_SiteCustom();
     if(typeof(DeleteBot_UserCustom)=="function") DeleteBot_UserCustom();
     var OngletsCactions = document.getElementById('p-cactions');
     if(OngletsCactions){
          var CactionsUl = OngletsCactions.getElementsByTagName('ul')[0];
          CactionsUl.innerHTML += '<li><a href="javascript:window.DeleteBot_ListPages();">'+DeleteBot_Text_DeleteAll+'</a></li>';
          $(OngletsCactions).removeClass("emptyPortlet");
     }
}
 
// --------------------------------------------------------------------------------------------
// Lancement
 
if(mw.config.get('wgNamespaceNumber')==14){
     $(DeleteBot_AddLink);
}

// --------------------------------------------------------------------------------------------
// Listage des pages de la catégorie

window.DeleteBot_ListPages = function(CatArray, category, categorycontinue){
     if(!CatArray) CatArray = new Array();
     if(!category) category = mw.config.get('wgPageName');    
     if(!categorycontinue) categorycontinue = '';
     var URL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&rawcontinue=&list=categorymembers'
             + '&cmlimit=4999'
             + '&cmtitle=' + encodeURIComponent(category) 
             + categorycontinue;
 
     DeleteBot_ajax.http({ 
          url: URL,
          cat: category,
          catlist: CatArray,
          onSuccess:DeleteBot_ListPagesDone
     });
}

function DeleteBot_ListPagesDone(Req, data){    
     var CatArray = data.catlist;
     var category = data.cat;
     var ElementTraitement = Req.responseXML; 
     var Pages = ElementTraitement.getElementsByTagName('cm');
     for(a=0;a<Pages.length;a++){
          var TitrePage = Pages[a].getAttribute('title');
          if(CatArray.indexOf(TitrePage)==-1) CatArray.push(TitrePage);
     }
     var CatContinue = ElementTraitement.getElementsByTagName('query-continue')[0];
     if(CatContinue){
          var AutreRequeteContinue = '&cmcontinue=' + encodeURIComponent(CatContinue.firstChild.getAttribute("cmcontinue"));
          DeleteBot_ListPages(CatArray, category, AutreRequeteContinue);
     }else{
          DeleteBot_CreateMenu(CatArray);
     }
}

// --------------------------------------------------------------------------------------------
// Création du formulaire de suppression

function DeleteBot_CreateMenu(CatArray){
     while(document.body.firstChild){ document.body.removeChild(document.body.firstChild); }
     var div = document.createElement('fieldset');
     div.setAttribute('style', "margin:2em;");
     document.body.appendChild(div);
     var Legend = document.createElement('legend');
     Legend.appendChild(document.createTextNode(DeleteBot_Text_Legend.split("$1").join(mw.config.get('wgTitle'))));
     div.appendChild(Legend);
     var ListFieldset = document.createElement('fieldset');
     div.appendChild(ListFieldset);
     var ListLegend = document.createElement('legend');
     ListLegend.appendChild(document.createTextNode(DeleteBot_Text_ListLegend));
     ListFieldset.appendChild(ListLegend);
     var Form = document.createElement('form');
     Form.id = "DeleteBot_Form";
     ListFieldset.appendChild(Form);
     var UL = document.createElement('ul');
     Form.appendChild(UL);
     UL.setAttribute('style', "-moz-column-count:3;-webkit-column-count:3;column-count:3;");
     for(var a=0,l=CatArray.length;a<l;a++){
          var Page = CatArray[a];
          var LI = document.createElement('li');
          var Input = document.createElement('input');
          Input.id = "DeleteBot_Input"+a;
          Input.type = "checkbox";
          Input.value = Page;
          Input.checked = "checked"; 
          Input.onclick = DeleteBot_UpdateOKInput;
          var Link = document.createElement('a');
          Link.title = Page;  
          Link.appendChild(document.createTextNode(Page));  
          Link.href = mw.config.get('wgServer') + mw.config.get('wgArticlePath').split("$1").join(Page);
          var Label = document.createElement('label');
          Label.setAttribute('for', "DeleteBot_Input"+a);
          Label.appendChild(Link);          
          LI.appendChild(Input);
          LI.appendChild(document.createTextNode(" "));
          LI.appendChild(Label);
          UL.appendChild(LI);
     }
     var SummaryFieldset = document.createElement('fieldset');
     div.appendChild(SummaryFieldset);
     var SummaryLegend = document.createElement('legend');
     SummaryLegend.appendChild(document.createTextNode(DeleteBot_Text_SummaryLegend));
     SummaryFieldset.appendChild(SummaryLegend);
     var SummarySelect = document.createElement('select');
     SummarySelect.id = "DeleteBot_SummarySelect";
     SummaryFieldset.appendChild(SummarySelect);
     var FirstOption = document.createElement('option');
     FirstOption.value = "";
     FirstOption.appendChild(document.createTextNode(DeleteBot_Text_OtherReason));
     SummarySelect.appendChild(FirstOption); 
     var Textarea = document.createElement('textarea');
     Textarea.id = "DeleteBot_Summary";
     Textarea.value = ""
     Textarea.onchange = DeleteBot_UpdateOKInput;
     SummaryFieldset.appendChild(Textarea);
     var ButtonsFieldset = document.createElement('fieldset');
     div.appendChild(ButtonsFieldset);
     var ButtonsLegend = document.createElement('legend');
     ButtonsLegend.appendChild(document.createTextNode(DeleteBot_Text_ButtonsLegend));
     ButtonsFieldset.appendChild(ButtonsLegend);
     var PButtons = document.createElement('p');
     PButtons.setAttribute('style', "text-align:center;");
     var OKInput = document.createElement('input');
     OKInput.type = "button";
     OKInput.id = "DeleteBot_OKInput";
     OKInput.value = DeleteBot_Text_OKInput;
     OKInput.disabled = "disabled";
     OKInput.onclick = DeleteBot_CheckMenu;
     OKInput.onselect = DeleteBot_CheckMenu;      
     PButtons.appendChild(OKInput);
     var CancelInput = document.createElement('input');
     CancelInput.type = "button";
     CancelInput.value = DeleteBot_Text_CancelInput;
     CancelInput.onclick = function(){ document.location = document.URL; };
     CancelInput.onselect = function(){ document.location = document.URL; };       
     PButtons.appendChild(CancelInput);
     ButtonsFieldset.appendChild(PButtons);
     DeleteBot_UpdateSummarySelect();
}

function DeleteBot_UpdateSummarySelect(){
     var SummarySelect = document.getElementById("DeleteBot_SummarySelect");
     if(!SummarySelect) return;
     var URL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&meta=allmessages'
             + '&ammessages=deletereason-dropdown';
     DeleteBot_ajax.http({ url: URL,
                  onSuccess: DeleteBot_UpdateSummarySelectProcess
               });
}

function DeleteBot_UpdateSummarySelectProcess(Req, data){
     var api = Req.responseXML;
     if (api.firstChild.nodeName == "error") return;
     var DropDown = "";
     var messages = api.getElementsByTagName('message');
     for(var a=0,l=messages.length;a<l;a++){
          var MessageName = messages[a].getAttribute('name');
          var MessageValue = (messages[a].firstChild ? messages[a].firstChild.nodeValue : "");
          if(MessageName == "deletereason-dropdown") DropDown = MessageValue;
     }
     if(!DropDown) return;
     var SummarySelect = document.getElementById("DeleteBot_SummarySelect");
     if(!SummarySelect) return;
     var Drop = DropDown.split("**");
     var OptGroup = false;
     for(var a=0,l=Drop.length;a<l;a++){
          var ThisReason = Drop[a];
          if(ThisReason.indexOf("*")!=-1){
               if(ThisReason.split('*')[0]){
                    var Option = document.createElement('option');
                    Option.value = ThisReason.split('*')[0];
                    Option.appendChild(document.createTextNode(ThisReason.split('*')[0]));
                    if(OptGroup) OptGroup.appendChild(Option);
                    else SummarySelect.appendChild(Option);
                    Option.onclick = function(){ DeleteBot_UpdateSummary(this); };
               }
               if(OptGroup) SummarySelect.appendChild(OptGroup); 
               OptGroup = document.createElement('optgroup');
               OptGroup.setAttribute('label', ThisReason.split('*')[1]);
          }else{
               var Option = document.createElement('option');
               Option.value = ThisReason;
               Option.appendChild(document.createTextNode(ThisReason));
               OptGroup.appendChild(Option);
               Option.onclick = function(){ DeleteBot_UpdateSummary(this); };
          }
     }
     if(OptGroup) SummarySelect.appendChild(OptGroup);  
}

function DeleteBot_UpdateSummary(option){
     var Summary = document.getElementById("DeleteBot_Summary");
     if(!Summary || !option) return;
     if(option.value) Summary.value = option.value;
     DeleteBot_UpdateOKInput();
}

function DeleteBot_UpdateOKInput(){
     var Form = document.getElementById("DeleteBot_Form");
     var Summary = document.getElementById("DeleteBot_Summary");
     var OKInput = document.getElementById("DeleteBot_OKInput");
     if(!Form|| !Summary || !OKInput) return;
     var InputChecked = false;
     var CatArray = new Array();
     var Inputs = Form.getElementsByTagName('input');
     for(var a=0,l=Inputs.length;a<l;a++){
          if(InputChecked) continue;
          var Input = Inputs[a];
          if(Input.checked) InputChecked = true;
     }
     var Value = Summary.value;
     if(!Value || !InputChecked){
          OKInput.disabled = "disabled";
     }else{
          OKInput.disabled = false;
     }
}

// --------------------------------------------------------------------------------------------
// Validation du formulaire de suppression

function DeleteBot_CheckMenu(){
     var Form = document.getElementById("DeleteBot_Form");
     var Summary = document.getElementById("DeleteBot_Summary");
     if(!Summary || !Form) return;
     var CatArray = new Array();
     var Inputs = Form.getElementsByTagName('input');
     for(var a=0,l=Inputs.length;a<l;a++){
          var Input = Inputs[a];
          if(Input.checked) CatArray.push(Input.value);
     }
     DeleteBot_Text_Summary = Summary.value;
     DeleteBot_DeletePage(CatArray, 0);
}

// --------------------------------------------------------------------------------------------
// Suppression d'une page

function DeleteBot_DeletePage(CatArray, position){
     var Page = CatArray[position];
     if(!Page){
          document.location = document.URL; 
          return;
     }
     var SurEtCertain = true;
     if(!DeleteBot_Param_NoConfirm) SurEtCertain = confirm(DeleteBot_Text_ConfirmDeleteThisPage.split("$1").join(Page));
     if(!SurEtCertain){
          DeleteBot_DeletePage(CatArray, (position+1));
          return;
     }
     var URL = mw.config.get('wgServer') + mw.config.get('wgScript')
             + '?title=' + encodeURIComponent(Page)
             + '&action=delete'; 
     DeleteBot_ajax.http({ 
          url       : URL,
          catlist   : CatArray,
          pos       : position,
          page      : Page,
          onSuccess : DeleteBot_DeletePageProcess
     });
}

function DeleteBot_DeletePageProcess(Req, data){
     var CatArray = data.catlist;
     var position = data.pos;
     var Page = data.page;
     while(document.body.firstChild){ document.body.removeChild(document.body.firstChild); }
     document.body.innerHTML = Req.responseText;
     var Form = document.getElementById("deleteconfirm");
     if(!Form) Form = document.getElementById("mw-img-deleteconfirm");
     var Summary = document.getElementById("wpReason");
     if(!Form || !Summary){
          DeleteBot_DeletePage(CatArray, (position+1));
          return;
     }
     Summary.value = DeleteBot_Text_Summary;
     var Action = Form.action;
     var Params = DeleteBot_getFormParams(Form);
     var ParamsInURL = new Array();
     for(var P in Params){
         if(Params.hasOwnProperty(P)) ParamsInURL.push(P+"="+encodeURIComponent(Params[P]));
     }
     var headers = new Array();
     headers['Content-Type'] = 'application/x-www-form-urlencoded';
     DeleteBot_ajax.http({ url: Action,
                           method: "POST",
                           headers: headers,
                           data: ParamsInURL.join("&"),
                           onSuccess:function(){ DeleteBot_DeletePage(CatArray, (position+1)) },
     });     
}

function DeleteBot_getFormParams(Form){
     var Params = new Array();
     var Tags = new Array("textarea", "select", "input");
     for(var a=0,l=Tags.length;a<l;a++){
          var Elements = Form.getElementsByTagName(Tags[a]);
          for(var b=0,m=Elements.length;b<m;b++){
               var Element = Elements[b];
               var ElName = Element.name;
               if(!ElName) continue;
               var ElValue = Element.value;
               var ElType = Element.type;
               if(Tags[a].toLowerCase()=='input' && (ElType == "checkbox" || ElType == "radio") && Element.checked){
                    Params[ElName] = ElValue;
               }else if(Tags[a].toLowerCase()=='input' && (ElType == "text" || ElType == "hidden") ){
                    Params[ElName] = ElValue;
               }else if(Tags[a].toLowerCase()!='input'){
                    Params[ElName] = ElValue;
               }
          }
     }
     return Params;
}
{{bottomLinkPreText}} {{bottomLinkText}}
میدیاویکی:Gadget-DeleteBot.js
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?