/*shamelessly stolen (and modified to feed my needs) from [[:en:User:Writ Keeper/Scripts/legacyToolbar.js]]*/
( function () {
var toolbar, isReady, $toolbar, queue, slice, $currentFocused;
function insertButton( button, speedTip, tagOpen, tagClose, sampleText, imageId ) {
var $button;
if ( typeof button !== 'object' ) {
button = {
imageFile: button,
speedTip: speedTip,
tagOpen: tagOpen,
tagClose: tagClose,
sampleText: sampleText,
imageId: imageId
};
}
if ( button.imageFile ) {
$button = $( '<img>' ).attr( {
src: button.imageFile,
alt: button.speedTip,
title: button.speedTip,
id: button.imageId || undefined,
'class': 'mw-toolbar-editbutton'
} );
} else {
$button = $( '<div>' ).attr( {
title: button.speedTip,
id: button.imageId || undefined,
'class': 'mw-toolbar-editbutton'
} );
}
$button.click( function ( e ) {
if ( button.onClick !== undefined ) {
button.onClick( e );
} else {
toolbar.insertTags( button.tagOpen, button.tagClose, button.sampleText );
}
return false;
} );
$toolbar.append( $button );
}
isReady = false;
$toolbar = false;
queue = [];
slice = queue.slice;
toolbar = {
addButton: function () {
if ( isReady ) {
insertButton.apply( toolbar, arguments );
} else {
// Convert arguments list to array
queue.push( slice.call( arguments ) );
}
},
addButtons: function ( buttons ) {
if ( !Array.isArray( buttons ) ) {
buttons = slice.call( arguments );
}
if ( isReady ) {
buttons.forEach( function ( button ) {
insertButton( button );
} );
} else {
// Push each button into the queue
queue.push.apply( queue, buttons );
}
},
insertTags: function ( tagOpen, tagClose, sampleText ) {
if ( $currentFocused && $currentFocused.length ) {
$currentFocused.textSelection(
'encapsulateSelection', {
pre: tagOpen,
peri: sampleText,
post: tagClose
}
);
}
}
};
toolbar.init = $.noop;
mw.toolbar = toolbar;
$( function () {
var $textBox, i, button;
$currentFocused = $( '#wpTextbox1' );
$toolbar = $( '#toolbar' );
if ( $toolbar.length === 0 ) {
$textBox = $( '#wpTextbox1' );
if ( $textBox.length === 0 ) {
return;
}
$toolbar = $( '<div>' ).attr( { id: 'toolbar' } );
$toolbar.insertBefore( $textBox );
}
for ( i = 0; i < queue.length; i++ ) {
button = queue[ i ];
if ( Array.isArray( button ) ) {
insertButton.apply( toolbar, button );
} else {
insertButton( button );
}
}
queue.length = 0;
isReady = true;
mw.hook("mw.toolbar").fire();
$( document ).on( 'focus', 'textarea, input:text', function () {
$currentFocused = $( this );
} );
} );
}() );
mw.toolbar.addButton( {
imageFile: "//upload.wikimedia.org/wikipedia/commons/c/c0/Button_link.png",
speedTip: "Internal link",
tagOpen: "[[",
tagClose: "]]",
sampleText: "",
imageId: "mw-editbutton-link"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png",
speedTip: "Category",
tagOpen: "[[Category:",
tagClose: "]]\n",
sampleText: "",
imageId: "mw-editbutton-cat"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/a/ac/Button_redir_rtl.png",
speedTip: "Category Redirect",
tagOpen: "{\{Category redirect|",
tagClose: "}}",
sampleText: "",
imageId: "mw-editbutton-catredir"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/9/97/Button_LINKT1.png",
speedTip: "Template",
tagOpen: "{{",
tagClose: "}}",
sampleText: "",
imageId: "mw-editbutton-template"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/7/78/PBN.png",
speedTip: "People by name",
tagOpen: "{\{People by name|",
tagClose: "||||}}\n",
sampleText: "",
imageId: "mw-editbutton-peoplebyname"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/b/be/DFLTS.png",
speedTip: "Defaultsort",
tagOpen: "{\{DEFAULTSORT:",
tagClose: "}}\n",
sampleText: "",
imageId: "mw-editbutton-Defaultsort"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/f/fa/WdI.png",
speedTip: "Wikidata infobox",
tagOpen: "{\{Wikidata Infobox}}\n",
tagClose: "",
sampleText: "",
imageId: "mw-editbutton-WdI"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/9/98/Button_CSA.png",
speedTip: "Cat see also",
tagOpen: "{\{Cat see also|",
tagClose: "}}\n",
sampleText: "",
imageId: "mw-editbutton-catseealso"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/d/db/Births.png",
speedTip: "Births",
tagOpen: "{\{Cat see also|Deaths in }}\n{\{Wikidata Infobox}}\n[\[Category:Births in France by city|",
tagClose: "]]\n[\[Category:Births in | ]]\n[\[Category:People of |°]]\n",
sampleText: "",
imageId: "mw-editbutton-births"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/f/f6/Deaths.png",
speedTip: "Deaths",
tagOpen: "{\{Cat see also|Births in }}\n{\{Wikidata Infobox}}\n[\[Category:Deaths in France by city|",
tagClose: "]]\n[\[Category:Deaths in | ]]\n[\[Category:People of |†]]\n",
sampleText: "",
imageId: "mw-editbutton-deaths"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/d/db/Births.png",
speedTip: "Births2",
tagOpen: "{\{Cat see also|Deaths in }}\n{\{Wikidata Infobox}}\n[\[Category:Births in France by city|",
tagClose: "]]\n[\[Category:Births in by city|]]\n[\[Category:People of |°]]\n",
sampleText: "",
imageId: "mw-editbutton-births"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/f/f6/Deaths.png",
speedTip: "Deaths2",
tagOpen: "{\{Cat see also|Births in }}\n{\{Wikidata Infobox}}\n[\[Category:Deaths in France by city|",
tagClose: "]]\n[\[Category:Deaths in by city|]]\n[\[Category:People of |†]]\n",
sampleText: "",
imageId: "mw-editbutton-deaths"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/f/fb/Button_°US_01.png",
speedTip: "Births US",
tagOpen: "{\{Cat see also|Deaths in }}\n{\{Wikidata Infobox}}\n[\[Category:Births in the United States by city|",
tagClose: "]]\n[\[Category:Births in by city|]]\n[\[Category:Births in | ]]\n[\[Category:People of |°]]",
sampleText: "",
imageId: "mw-editbutton-birthsUS"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/8/86/Button_†US.png",
speedTip: "Deaths US",
tagOpen: "{\{Cat see also|Births in }}\n{\{Wikidata Infobox}}\n[\[Category:Deaths in the United States by city|",
tagClose: "]]\n[\[Category:Deaths in by city|]]\n[\[Category:Deaths in | ]]\n[\[Category:People of |†]]\n",
sampleText: "",
imageId: "mw-editbutton-deathsUS"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/e/ee/ButtonEditOly.png",
speedTip: "Olympians",
tagOpen: "{\{Summer Olympians|",
tagClose: "}}\n{\{Wikidata Infobox}}",
sampleText:"",
imageId: "mw-editbutton-oly"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/e/ec/Button_base.png",
speedTip: "Palette",
tagOpen: "{\{Countries of Europe|prefix=:Category:",
tagClose: "|suffix=}}\n",
sampleText:"",
imageId: "mw-editbutton-palette"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/e/ec/Button_base.png",
speedTip: "USPalette",
tagOpen: "{\{US states|prefix=:Category:",
tagClose: "|suffix=}}\n{\{Wikidata Infobox}}\n",
sampleText:"",
imageId: "mw-editbutton-uspalette"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/e/ec/Button_base.png",
speedTip: "Siecle",
tagOpen: "{\{Subject by century|",
tagClose: "|mothercat=|nobc=1}}\n",
sampleText:"",
imageId: "mw-editbutton-siecle"
});
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/7/7d/ButtonEditAlumi.png",
speedTip: "Alumi",
tagOpen: "{\{Wikidata Infobox}}\n[\[Category:",
tagClose: "]]\n[\[Category:Alumni by university or college in |]]\n[\[Category:People of |-]]",
sampleText:"",
imageId: "mw-editbutton-alumni"
});
mw.toolbar.addButton( {
imageFile: "//upload.wikimedia.org/wikipedia/commons/6/6d/Button_sig.png",
speedTip: "Signature and date",
tagOpen: "~~"+"~~",
tagClose: "",
sampleText: "",
imageId: "mw-editbutton-signature"
} );
mw.toolbar.addButton(
{
imageFile: "//upload.wikimedia.org/wikipedia/commons/3/3b/Comment-button-bg.png",
speedTip: "Invisible comment",
tagOpen: "<!"+"-- ",
tagClose: " -->",
sampleText: "invisible comment",
imageId: "mw-editbutton-invis"
});