MediaWiki:Gadget-MonobookToolbarSortSelected.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) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.// TODO : beaucoup de nettoyage à faire dans ce code,
// s'inspirer entre autres des modifs de mai 2018 sur [[MediaWiki:Gadget-MonobookToolbar.js]]
if(typeof(MonobookToolbarSortSelected)==="undefined"){ // Test anti double inclusion
MonobookToolbarSortSelected = new Object();
MonobookToolbarSortSelected.toolbarId = mw.user.options.get('usebetatoolbar') === 1 ? 'monobooktoolbar' : 'toolbar';
MonobookToolbarSortSelected.AddButton = function(){
if(!document.editform) return;
var Toolbar = document.getElementById(MonobookToolbarSortSelected.toolbarId);
if(!Toolbar){
var Textarea = document.getElementById("wpTextbox1");
if(!Textarea) return;
Toolbar = document.createElement('div');
Toolbar.id = MonobookToolbarSortSelected.toolbarId;
Textarea.parentNode.insertBefore(Toolbar, Textarea);
}
var buttonU = '<img src="/media/wikipedia/commons/6/6f/Button_arrow_up.PNG" heigth="23" width="23" alt="Tri croissant" />';
var NewButtonU = document.createElement('a');
NewButtonU.title = "Tri croissant";
NewButtonU.href = "#";
NewButtonU.onclick = function(){
MonobookToolbarSortSelected.UpdateText(0);
return false;
};
NewButtonU.className = "mw-toolbar-editbutton";
NewButtonU.innerHTML = buttonU;
Toolbar.appendChild(NewButtonU);
var buttonD = '<img src="/media/wikipedia/commons/2/2b/Button_arrow_down.PNG" heigth="23" width="23" alt="Tri décroissant" />';
var NewButtonD = document.createElement('a');
NewButtonD.title = "Tri décroissant";
NewButtonD.href = "#";
NewButtonD.onclick = function(){
MonobookToolbarSortSelected.UpdateText(1);
return false;
};
NewButtonD.className = "mw-toolbar-editbutton";
NewButtonD.innerHTML = buttonD;
Toolbar.appendChild(NewButtonD);
};
MonobookToolbarSortSelected.UpdateText = function(type){
var txtarea = document.getElementById("wpTextbox1");
if (!txtarea){
// some alternate form? take the first one we can find
var areas = document.getElementsByTagName('textarea');
txtarea = areas[0];
}
//save textarea scroll position
var textScroll = txtarea.scrollTop;
//get current selection
txtarea.focus();
var startPos = txtarea.selectionStart;
var endPos = txtarea.selectionEnd;
var selText = txtarea.value.substring(startPos, endPos);
selText = MonobookToolbarSortSelected.SortText(selText, type);
txtarea.value = txtarea.value.substring(0, startPos) + selText + txtarea.value.substring(endPos, txtarea.value.length);
//set new selection
txtarea.selectionStart = startPos;
txtarea.selectionEnd = startPos + selText.length;
//restore textarea scroll position
txtarea.scrollTop = textScroll;
};
MonobookToolbarSortSelected.SortText = function(Text, type){
var TextLines = Text.split("\n");
TextLines.sort();
if(type==1) TextLines.reverse();
return TextLines.join("\n");
};
$(MonobookToolbarSortSelected.AddButton);
} // Fin test anti double inclusion