Utilisateur:Dereckson/MonobookToolbarSearchReplace.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) ;

Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
if(typeof(MonobookToolbarSearchReplace)==="undefined"){ // Test anti double inclusion
 
MonobookToolbarSearchReplace = new Object();
 
document.write('<style type="text/css">'
             + '#MenuReplaceSpan{'
             + 'text-align:left;'
             + '}'
             + '</style>');
 
 
MonobookToolbarSearchReplace.AddButton = function(){
     if(!document.editform) return;
     var Toolbar = document.getElementById('toolbar');
     if(!Toolbar) Toolbar = document.getElementById('MonobookToolbar');
     if(!Toolbar){
          Toolbar = document.createElement('div');
          Toolbar.id = 'MonobookToolbar';
          document.editform.insertBefore(Toolbar, document.editform.firstChild);
     }
     var button = '<img src="//upload.wikimedia.org/wikipedia/commons/5/59/Button_replace.png" heigth="23" width="23" alt="Remplacer" />';
 
     var NewButton = document.createElement('a')
     NewButton.title = "Remplacer";
     NewButton.href = "#";
     NewButton.onclick = function(){ 
          MonobookToolbarSearchReplace.OpenMenu();
          return false;
     }
     NewButton.className = "mw-toolbar-editbutton";
     NewButton.innerHTML = button;
     Toolbar.appendChild(NewButton);
}
 
MonobookToolbarSearchReplace.Cancel = function(){
     var MenuDiv = document.getElementById('Menu_SearchAndReplace');
     MenuDiv.parentNode.removeChild(MenuDiv);
}
 
MonobookToolbarSearchReplace.OpenMenu = function(){
     var OldMenuDiv = document.getElementById('Menu_SearchAndReplace');
     if(OldMenuDiv) return;
 
     var Toolbar = document.getElementById('MonobookToolbar');
     var MenuDiv = document.createElement('div');
     MenuDiv.id = 'Menu_SearchAndReplace';
     Toolbar.parentNode.insertBefore(MenuDiv, Toolbar.nextSibling);
 
     var CurrentPortal = mw.config.get('wgTitle').split('/')[0];
     var MenuSpan = document.createElement('span');
     MenuSpan.id = 'MenuReplaceSpan';
     MenuDiv.appendChild(MenuSpan);
     MenuSpan.innerHTML = '<label for="MonobookToolbarSearchReplace_Replace1">Texte à remplacer</label>'
                        + '<input id="MonobookToolbarSearchReplace_Replace1" type="text" value="" />'
                        + '&nbsp;•&nbsp;'
                        + '<label for="MonobookToolbarSearchReplace_Replace2">Texte de remplacement</label>'
                        + '<input id="MonobookToolbarSearchReplace_Replace2" type="text" value="" />'
                        + '&nbsp;•&nbsp;'
                        + '<input type="button" value="Remplacer" onclick="MonobookToolbarSearchReplace.Replace();" onselect="MonobookToolbarSearchReplace.Replace();"/>'
                        + '&nbsp;'
                        + '<input type="button" value="Annuler" onclick="MonobookToolbarSearchReplace.Cancel();" onselect="MonobookToolbarSearchReplace.Cancel();"/>'
}
 
 
MonobookToolbarSearchReplace.Replace = function(){
     try{
     var TextArea = document.getElementById('wpTextbox1');
     var OldText = document.getElementById('MonobookToolbarSearchReplace_Replace1').value;
     var NewText = document.getElementById('MonobookToolbarSearchReplace_Replace2').value;
     var Text = TextArea.value;
     }catch(e){ return; }
     if((OldText=='')&&(NewText=='')) return;
 
     if((OldText!='')&&(NewText!='')){
          if(NewText.indexOf(OldText)!=-1){
               alert("Le texte de remplacement contient le texte à remplacer.\nCela va générer une boucle et ne peut donc pas être effectué.\nVeuillez choisir d'autres paramètres.")
               return;
          }
     }
     var Scroll = TextArea.scrollTop;
     while(Text.indexOf(OldText)!=-1){
          Text = Text.split(OldText).join(NewText);
          if(Text.indexOf(OldText)==-1) break;
     }
     document.getElementById('wpTextbox1').value = Text;     
     document.getElementById('MonobookToolbarSearchReplace_Replace1').value = NewText;
     document.getElementById('MonobookToolbarSearchReplace_Replace2').value = OldText;
     TextArea.scrollTop = Scroll;
}
 
$(MonobookToolbarSearchReplace.AddButton);
 
} // Fin test anti double inclusion