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.
/* 
Javascript qui s'active lors du renommage d'une page.
 
# résumés de modification prédéfinis (personnalisables, voir plus bas)
# nombre de pages liées à la page en cours.
# correction automatiquement les éventuelles doubles redirections.
 
Documentation : [[Projet:JavaScript/Notices/MoveDeluxe]]
 
Licence : Domaine Public
 
{{Projet:JavaScript/Script|MoveDeluxe}}
 
*/
//<source lang=javascript>//<pre><nowiki>
 
if(mw.config.get('wgUserGroups')!=null){
     if((mw.config.get('wgCanonicalSpecialPageName')=="Movepage")&&(mw.config.get('wgUserGroups').indexOf("autoconfirmed")!=-1)){ 
 
          if(typeof(MoveDeluxe_Reason)=='undefined'){
 
////////////////////////////////////////////// PARTIE PERSONNALISABLE ///////////////////////////////////
 
var MoveDeluxe_Reason = new Array();
 
MoveDeluxe_Reason.push("Conventions typographiques");
MoveDeluxe_Reason.push("Orthographe");
MoveDeluxe_Reason.push("Mauvais espace de noms");
MoveDeluxe_Reason.push("Titre imprécis");
 
////////////////////////////////////////////// FIN DE LA PARTIE PERSONNALISABLE ///////////////////////////////////
 
          }
          addOnloadHook(MoveDeluxe);
          if(mw.config.get('wgAction')=="submit") addOnloadHook(MoveDeluxe_CorrectRedirects_AddLink);
     }
}
 
function MoveDeluxe(){
     var MoveForm = document.getElementById('movepage');
     if(!MoveForm) return;  
 
// Résumé de renommage
     var TextArea = document.getElementById('wpReason');
     if(TextArea) MoveDeluxe_GetReasons();
 
 
//Pages liées
     var Page = document.getElementById('contentSub');
     if(!Page) return;
     var TitrePage = Page.getElementsByTagName('a')[0].innerHTML;
     if(!TitrePage) return;
     var Recapitulatif = document.createElement('div');
     Recapitulatif.innerHTML = '<h2>Pages liées</h2><span id="MovePageRecap">0</span> pages sont liées à la page « '+TitrePage + ' » : <a href="'+mw.config.get('wgServer') + '/wiki/Special:Whatlinkshere/' + TitrePage + '" target="_blank" title="Voir les pages liées (nouvel onglet)">Détails</a>';
     MoveForm.parentNode.insertBefore(Recapitulatif, MoveForm.nexSibling );
     MoveDeluxe_GetPages(TitrePage, '');
 
}
 
 
//////////////////////////////////////////////////////////////////// Résumé de renommage 
 
function MoveDeluxe_GetReasons(){
     if(MoveDeluxe_Reason.length<1) return;
 
     var TextArea = document.getElementById('wpReason');
 
     var NewSelect = document.createElement('select');
     NewSelect.id='ReasonSelect';
     TextArea.parentNode.insertBefore(NewSelect, TextArea);
 
     NewSelect.onchange = function(){
          var Selected = this.getElementsByTagName('option');
          for(var a=0;a<Selected.length;a++){
               if(Selected[a].selected){
                    var TextSelected = Selected[a].value;
                    document.getElementById('wpReason').value = TextSelected;
                    document.getElementById('wpReason').focus();
               }
          }
     }
     for(var a=0;a<MoveDeluxe_Reason.length;a++){
           NewSelect.innerHTML += '<option value="'+MoveDeluxe_Reason[a]+'" '
                                 +'>'+MoveDeluxe_Reason[a]+'</option>';
 
     }
}
 
 
//////////////////////////////////////////////////////////////////// Compteur de pages liées 
 
var MoveDeluxe_PagesCount = 0;
 
function MoveDeluxe_GetPages(TitrePage, RequeteContinue){
     if(!RequeteContinue) RequeteContinue ='';
     var APILimit = 499;
     if((mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1)){
          APILimit = 4999;
     }
     var AdresseRequete = mw.config.get('wgServer') + '/w/api.php?action=query&list=backlinks&bllimit='+APILimit+'&blnamespace=0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|100|101|102|103|104|105&bltitle=' + TitrePage + RequeteContinue;
     var NouvelleRequete = new XMLHttpRequest();
     NouvelleRequete.open("GET", AdresseRequete, true);
     NouvelleRequete.send(null);
     NouvelleRequete.onreadystatechange = function() {
            if(NouvelleRequete.readyState == 4 && NouvelleRequete.status == 200) {
                  var ElementTraitement = document.createElement('div');
                  ElementTraitement.innerHTML = NouvelleRequete.responseText; 
                  //document.body.appendChild(ElementTraitement);
                  var Informations = ElementTraitement.getElementsByTagName('span');
                  var AutreRequeteNecessaire = false;
                  for(var a=0;a<Informations.length;a++){
                        var ContenuInformation = Informations[a].innerHTML;
                        if(ContenuInformation.indexOf('title=')!=-1){
                              MoveDeluxe_PagesCount++
                        }
                        if(ContenuInformation.indexOf('blcontinue=')!=-1){
                              AutreRequeteNecessaire = true;
                              var AutreRequeteContinue = '&blcontinue=' + ContenuInformation.split('blcontinue="')[1].split('"')[0];
                        }
                  } 
                  var Recap = document.getElementById("MovePageRecap");
                  if(AutreRequeteNecessaire==true){
                        Recap.innerHTML = MoveDeluxe_PagesCount;
                        MoveDeluxe_GetPages(TitrePage, AutreRequeteContinue);
                  }else{
                        Recap.innerHTML = '<b>'+MoveDeluxe_PagesCount+'</b>';
                  }
            }
      }
}
 
////////////////////////////////////////////////////////////////////////////////////////////
 
 
function MoveDeluxe_CorrectRedirects_AddLink(){
      var Titre = document.getElementsByTagName('h1')[0];
      if(Titre.innerHTML.indexOf("réussi")==-1) return;
 
      var Content = document.getElementById('bodyContent');
      if(!Content) Content = document.getElementById('article');
      if(!Content) Content = document.getElementById('mw_contentholder');
 
      var Ps = Content.getElementsByTagName('p');
      for(var a=0,l=Ps.length;a<l;a++){
            if(Ps[a].innerHTML.indexOf("a été renommée")==-1) continue;
            Ps[a].getElementsByTagName('a')[0].id = "OldTitle";
            Ps[a].getElementsByTagName('a')[1].id = "NewTitle";
      }
      var NewP = document.createElement('p');
      var NewB = document.createElement('b');
      var NewLink = document.createElement('a');
      NewLink.id = "CorrRedirectsLink";
      NewLink.innerHTML = "Corriger les redirections";
      NewLink.href = "javascript:MoveDeluxe_CorrectRedirects_GetRedirects();";
      NewB.appendChild(NewLink);
      NewP.appendChild(NewB);
      Content.appendChild(NewP);
}
 
function MoveDeluxe_CorrectRedirects_GetRedirects(){
      if(document.getElementById('CorrRedirectsListe')) return;
 
      var OldTitle = document.getElementById("OldTitle").innerHTML;
      var NewTitle = document.getElementById("NewTitle").innerHTML;
      var Adresse = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+ '/api.php?format=xml&action=query&list=backlinks&bllimit=499&blfilterredir=redirects&bltitle='+OldTitle;
      var NouvelleRequete = new XMLHttpRequest();
      NouvelleRequete.open("GET", Adresse, true);
      NouvelleRequete.onreadystatechange = function() {
            if(NouvelleRequete.readyState != 4 ) return;
            var Reponse = NouvelleRequete.responseXML;
            var Resultat = new Array();
            var BackLinks = Reponse.getElementsByTagName("bl");
            if(BackLinks[0]){
                  Resultat.push("<b>Redirections à corriger : </b>");
                  for(var a=0;a<BackLinks.length;a++){
                        var BackLinkTitle = BackLinks[a].getAttribute("title");
                        var ThisBackLink = '<a href="'+mw.config.get('wgServer')+mw.config.get('wgArticlePath').split('$1').join(BackLinkTitle)+'" title="'+BackLinkTitle+'" >'+BackLinkTitle+'</a>';
                        Resultat.push(ThisBackLink);
                  }
                  Resultat.push('<input type="button" onclick="MoveDeluxe_CorrectRedirects_Run();" onselect="MoveDeluxe_CorrectRedirects_Run();" title="Lancer la correction" value="Corriger" />');
            }else{
                  Resultat.push("Il n'y a pas de redirection à corriger.");
            }
            var Ul = document.createElement('ul');
            Ul.id = 'CorrRedirectsListe';
            for(var a=0;a<Resultat.length;a++){
                  Ul.innerHTML += '<li>'+Resultat[a]+'</li>';
            }
            var corrLink = document.getElementById("CorrRedirectsLink")
            $(Ul).insertAfter(corrLink);
            corrLink.parentNode.removeChild(corrLink);
      }
      NouvelleRequete.send(null);
}
 
function MoveDeluxe_CorrectRedirects_Run(){
      var OldTitle = document.getElementById("OldTitle").innerHTML;
      var NewTitle = document.getElementById("NewTitle").innerHTML;
      var Liste = document.getElementById('CorrRedirectsListe');
      var Liens = Liste.getElementsByTagName('a');
      var ListeLiens = new Array();
      for(var a=0;a<Liens.length;a++){
            ListeLiens.push(Liens[a].title);
      }
      MoveDeluxe_CorrectRedirects_RunOne(0, ListeLiens, OldTitle, NewTitle);
}
 
function MoveDeluxe_CorrectRedirects_RunOne(position, ListeLiens, OldTitle, NewTitle){
      var Page = ListeLiens[position];
      if(!Page){
            alert('Corrections de redirections terminé.')
            document.location = mw.config.get('wgServer')+mw.config.get('wgArticlePath').split('$1').join(NewTitle);
            return;
      }
      var Adresse = mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+Page+'&action=edit';
      var EditRequete = new XMLHttpRequest();
      EditRequete.open("GET", Adresse, true);
      EditRequete.onreadystatechange = function() {
            if(EditRequete.readyState != 4 ) return;
            while(document.body.firstChild){ document.body.removeChild(document.body.firstChild); }
            document.body.innerHTML = EditRequete.responseText;
            document.editform.style.display = "none";
            var AncienContenu = document.getElementById("wpTextbox1").value;
            AncienContenu = AncienContenu.split('#redirection').join('#REDIRECTION')
            AncienContenu = AncienContenu.split('#REDIRECT').join('#REDIRECTION')
            AncienContenu = AncienContenu.split('#redirect').join('#REDIRECTION')
            AncienContenu = AncienContenu.replace(/REDIRECTIONION/g, "REDIRECTION")
            AncienContenu = AncienContenu.replace(/REDIRECTION /g, "REDIRECTION")
            AncienContenu = AncienContenu.replace(/ \[/g, "\[")
            AncienContenu = AncienContenu.replace(/\[ /g, "\[")
            AncienContenu = AncienContenu.replace(/ \]/g, "\]")
 
            var TexteFinal = AncienContenu.split('#REDIRECTION[['+OldTitle+']]').join('#REDIRECTION[['+NewTitle+']]');
            var SommaireFinal = "Correction double redirection : [["+OldTitle+"]] -> [["+NewTitle+"]]";
 
            document.getElementById("wpTextbox1").value = AncienContenu
            document.getElementById("wpSummary").value = SommaireFinal
            document.getElementById("wpMinoredit").checked = "checked";
 
            var action = document.getElementById("editform").action;
            var boundary = '--------123xyz';
            var data = '';
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpTextbox1"\n\n' + TexteFinal + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSection"\n\n' + document.editform.wpSection.value + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSummary"\n\n' + SommaireFinal + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpMinoredit"\n\n' + document.editform.wpMinoredit.value + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpStarttime"\n\n' + document.editform.wpStarttime.value + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEdittime"\n\n' + document.editform.wpEdittime.value + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEditToken"\n\n' + document.editform.wpEditToken.value + '\n'
            var SubmitRequete = new XMLHttpRequest();
            SubmitRequete.open('POST', action, true);
            SubmitRequete.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+boundary);
            SubmitRequete.send(data + '--' + boundary);
            SubmitRequete.onreadystatechange = function(){
                  if (SubmitRequete.readyState != 4) return;
                  MoveDeluxe_CorrectRedirects_RunOne((position+1), ListeLiens, OldTitle, NewTitle)
            }
            SubmitRequete.send(null);
      }
      EditRequete.send(null);
}
 
//</nowiki></pre></source>