Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.

  • Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
  • Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
  • Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
/*  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 = "Eliminar todo…"; var DeleteBot_Text_ConfirmDeleteThisPage = "¿Borrar «$1»?"; var DeleteBot_Text_Summary = ""; var DeleteBot_Text_OKInput = "OK"; var DeleteBot_Text_CancelInput = "Cancelar"; var DeleteBot_Text_Legend = "Borrar las páginas de la categoría «$1»"; var DeleteBot_Text_ListLegend = "Lista de páginas"; var DeleteBot_Text_SummaryLegend = "Resumen de borrado"; var DeleteBot_Text_ButtonsLegend = "Borrar"; var DeleteBot_Text_OtherReason = "Otro motivo";  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:DeleteBot_ListPages();">'+DeleteBot_Text_DeleteAll+'</a></li>';           OngletsCactions.classList.remove("emptyProtlet");      } }  // -------------------------------------------------------------------------------------------- // Listage des pages de la catégorie  function DeleteBot_ListPages(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&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; } 	 $(DeleteBot_AddLink);