Utilisateur:Dr Brains/MonobookToolbar-Dev.js
Apparence
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.if(typeof(MonobookToolbarSearchReplace)==="undefined"){ // Test anti double inclusion
MonobookToolbarSearchReplace = new Object();
document.write('<style type="text/css">'
+ '#Menu_SearchAndReplace{'
+ 'text-align:left;'
+ '}'
+ '</style>');
MonobookToolbarSearchReplace.actualPosition = 0;
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 MenuSearchDiv = document.createElement('div');
MenuSearchDiv.id = 'MenuSearchDiv';
MenuDiv.appendChild(MenuSearchDiv);
MenuSearchDiv.innerHTML = '<label for="MonobookToolbarSearchReplace_Replace1">Texte à rechercher</label>'
+ '<input id="MonobookToolbarSearchReplace_Replace1" type="text" value="" />'
+ ' • '
+ '<input type="button" value="Rechercher" onclick="MonobookToolbarSearchReplace.Search();" onselect="MonobookToolbarSearchReplace.Search();"/>'
+ ' '
+ '<input type="button" value="Annuler" onclick="MonobookToolbarSearchReplace.Cancel();" onselect="MonobookToolbarSearchReplace.Cancel();"/>'
+ '<span id="MenuSearchSpan" style="display:none">'
+ ' • '
+ '<input type="button" value="<" onclick="MonobookToolbarSearchReplace.Search(-1);" onselect="MonobookToolbarSearchReplace.Search(-1);"/>'
+ ' '
+ '<input type="button" value=">" onclick="MonobookToolbarSearchReplace.Search(1);" onselect="MonobookToolbarSearchReplace.Search(1);"/>'
+ '</span>'
+ ' '
+ '<span id="MenuSearchResults"></span>'
var MenuReplaceDiv = document.createElement('div');
MenuReplaceDiv.id = 'MenuReplaceDiv';
MenuReplaceDiv.style.display = "none";
MenuDiv.appendChild(MenuReplaceDiv);
MenuReplaceDiv.innerHTML = ''
+ '<label for="MonobookToolbarSearchReplace_Replace2">Texte de remplacement</label>'
+ '<input id="MonobookToolbarSearchReplace_Replace2" type="text" value="" />'
+ ' • '
+ '<input type="button" value="Remplacer" onclick="MonobookToolbarSearchReplace.Replace(false);" onselect="MonobookToolbarSearchReplace.Replace();"/>'
+ ' '
+ '<input type="button" value="Remplacer tout" onclick="MonobookToolbarSearchReplace.Replace(true);" onselect="MonobookToolbarSearchReplace.ReplaceAll();"/>'
}
MonobookToolbarSearchReplace.Search = function(numero){
try{
var TextArea = document.getElementById('wpTextbox1');
var OldText = document.getElementById('MonobookToolbarSearchReplace_Replace1').value;
var MenuSearchSpan = document.getElementById('MenuSearchSpan');
var MenuSearchResults = document.getElementById('MenuSearchResults');
var MenuReplaceDiv = document.getElementById('MenuReplaceDiv');
var Text = TextArea.value;
}catch(e){ return; }
var TextRegExp = OldText.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1");
var Matches = Text.match(TextRegExp);
var Searches = Text.search(TextRegExp);
if(Matches==null){
MenuSearchResults.innerHTML = "0 résultats"
MenuSearchSpan.style.display = "none";
MenuReplaceDiv.style.display = "none";
MonobookToolbarSearchReplace.actualPosition = 0;
return;
}
if(!numero) numero = 1
else numero = MonobookToolbarSearchReplace.actualPosition + numero;
if(numero==0) numero = Matches.length;
MonobookToolbarSearchReplace.actualPosition = numero;
MenuSearchResults.innerHTML = "résultat "+MonobookToolbarSearchReplace.actualPosition+"/"+Matches.length;
var ThisMatch = Searches[MonobookToolbarSearchReplace.actualPosition];
var StartIndex = ThisMatch.index;
var EndIndex = StartIndex + Matches[Position].length;
mw.loader.using('jquery.textSelection', function () {
$('#wpTextbox1')
.focus()
.textSelection('setSelection', {start: StartIndex, end: EndIndex})
.textSelection('scrollToCaretPosition', {force:false});
});
MenuSearchSpan.style.display = "";
MenuReplaceDiv.style.display = "";
}
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;
var TextRegExp = new RegExp(OldText.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1"), "g");
var Matches = Text.match(TextRegExp);
}catch(e){ return; }
var Position = MonobookToolbarSearchReplace.actualPosition;
var ThisMatch = Matches[Position];
if(!ThisMatch) return;
var Scroll = TextArea.scrollTop;
Text = Text.replace(Matches[Position], NewText);
document.getElementById('wpTextbox1').value = Text;
TextArea.scrollTop = Scroll;
MonobookToolbarSearchReplace.Search();
}
MonobookToolbarSearchReplace.ReplaceAll = function(){
try{
var TextArea = document.getElementById('wpTextbox1');
var Text = TextArea.value;
var OldText = document.getElementById('MonobookToolbarSearchReplace_Replace1').value;
var TextRegExp = new RegExp(OldText.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1"), "g");
var Matches = Text.match(TextRegExp);
}catch(e){ return; }
if(Matches==null) return;
for(var a=0,l=Matches.length;a<l;a++){
MonobookToolbarSearchReplace.Replace();
}
}
$(MonobookToolbarSearchReplace.AddButton);
} // Fin test anti double inclusion