<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pool.calebcooper.ie/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-legacyToolbar.js</id>
	<title>MediaWiki:Gadget-legacyToolbar.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pool.calebcooper.ie/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-legacyToolbar.js"/>
	<link rel="alternate" type="text/html" href="https://pool.calebcooper.ie/index.php?title=MediaWiki:Gadget-legacyToolbar.js&amp;action=history"/>
	<updated>2026-04-08T01:30:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://pool.calebcooper.ie/index.php?title=MediaWiki:Gadget-legacyToolbar.js&amp;diff=10088&amp;oldid=prev</id>
		<title>Caleb Cooper: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://pool.calebcooper.ie/index.php?title=MediaWiki:Gadget-legacyToolbar.js&amp;diff=10088&amp;oldid=prev"/>
		<updated>2020-01-28T15:04:26Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:04, 28 January 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Caleb Cooper</name></author>
	</entry>
	<entry>
		<id>https://pool.calebcooper.ie/index.php?title=MediaWiki:Gadget-legacyToolbar.js&amp;diff=10087&amp;oldid=prev</id>
		<title>powerstorewiki&gt;Caleb Cooper: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://pool.calebcooper.ie/index.php?title=MediaWiki:Gadget-legacyToolbar.js&amp;diff=10087&amp;oldid=prev"/>
		<updated>2020-01-21T18:20:59Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*  _____________________________________________________________________________&lt;br /&gt;
 * |                                                                             |&lt;br /&gt;
 * |                    === WARNING: GLOBAL GADGET FILE ===                      |&lt;br /&gt;
 * |                  Changes to this page affect many users.                    |&lt;br /&gt;
 * | Please discuss changes on the talk page or on [[WT:Gadget]] before editing. |&lt;br /&gt;
 * |_____________________________________________________________________________|&lt;br /&gt;
 * &lt;br /&gt;
 * Adapted from MediaWiki Core, before it was removed from it on 2018-10-17. &lt;br /&gt;
 * Imported from frwiki at https://fr.wikipedia.org/wiki/MediaWiki:Gadget-mediawiki.toolbar.js, with translations and button additions.&lt;br /&gt;
 * &lt;br /&gt;
 * Interface for the classic edit toolbar.&lt;br /&gt;
 */&lt;br /&gt;
( function () {&lt;br /&gt;
	var toolbar, isReady, $toolbar, queue, slice, $currentFocused;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Internal helper that does the actual insertion of the button into the toolbar.&lt;br /&gt;
	 *&lt;br /&gt;
	 * For backwards-compatibility, passing `imageFile`, `speedTip`, `tagOpen`, `tagClose`,&lt;br /&gt;
	 * `sampleText` and `imageId` as separate arguments (in this order) is also supported.&lt;br /&gt;
	 *&lt;br /&gt;
	 * @private&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} button Object with the following properties.&lt;br /&gt;
	 *  You are required to provide *either* the `onClick` parameter, or the three parameters&lt;br /&gt;
	 *  `tagOpen`, `tagClose` and `sampleText`, but not both (they&amp;#039;re mutually exclusive).&lt;br /&gt;
	 * @param {string} [button.imageFile] Image to use for the button.&lt;br /&gt;
	 * @param {string} button.speedTip Tooltip displayed when user mouses over the button.&lt;br /&gt;
	 * @param {Function} [button.onClick] Function to be executed when the button is clicked.&lt;br /&gt;
	 * @param {string} [button.tagOpen]&lt;br /&gt;
	 * @param {string} [button.tagClose]&lt;br /&gt;
	 * @param {string} [button.sampleText] Alternative to `onClick`. `tagOpen`, `tagClose` and&lt;br /&gt;
	 *  `sampleText` together provide the markup that should be inserted into page text at&lt;br /&gt;
	 *  current cursor position.&lt;br /&gt;
	 * @param {string} [button.imageId] `id` attribute of the button HTML element. Can be&lt;br /&gt;
	 *  used to define the image with CSS if it&amp;#039;s not provided as `imageFile`.&lt;br /&gt;
	 * @param {string} [speedTip]&lt;br /&gt;
	 * @param {string} [tagOpen]&lt;br /&gt;
	 * @param {string} [tagClose]&lt;br /&gt;
	 * @param {string} [sampleText]&lt;br /&gt;
	 * @param {string} [imageId]&lt;br /&gt;
	 */&lt;br /&gt;
	function insertButton( button, speedTip, tagOpen, tagClose, sampleText, imageId ) {&lt;br /&gt;
		var $button;&lt;br /&gt;
&lt;br /&gt;
		// Backwards compatibility&lt;br /&gt;
		if ( typeof button !== &amp;#039;object&amp;#039; ) {&lt;br /&gt;
			button = {&lt;br /&gt;
				imageFile: button,&lt;br /&gt;
				speedTip: speedTip,&lt;br /&gt;
				tagOpen: tagOpen,&lt;br /&gt;
				tagClose: tagClose,&lt;br /&gt;
				sampleText: sampleText,&lt;br /&gt;
				imageId: imageId&lt;br /&gt;
			};&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if ( button.imageFile ) {&lt;br /&gt;
			$button = $( &amp;#039;&amp;lt;img&amp;gt;&amp;#039; ).attr( {&lt;br /&gt;
				src: button.imageFile,&lt;br /&gt;
				alt: button.speedTip,&lt;br /&gt;
				title: button.speedTip,&lt;br /&gt;
				id: button.imageId || undefined,&lt;br /&gt;
				&amp;#039;class&amp;#039;: &amp;#039;mw-toolbar-editbutton&amp;#039;&lt;br /&gt;
			} );&lt;br /&gt;
		} else {&lt;br /&gt;
			$button = $( &amp;#039;&amp;lt;div&amp;gt;&amp;#039; ).attr( {&lt;br /&gt;
				title: button.speedTip,&lt;br /&gt;
				id: button.imageId || undefined,&lt;br /&gt;
				&amp;#039;class&amp;#039;: &amp;#039;mw-toolbar-editbutton&amp;#039;&lt;br /&gt;
			} );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		$button.click( function ( e ) {&lt;br /&gt;
			if ( button.onClick !== undefined ) {&lt;br /&gt;
				button.onClick( e );&lt;br /&gt;
			} else {&lt;br /&gt;
				toolbar.insertTags( button.tagOpen, button.tagClose, button.sampleText );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return false;&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		$toolbar.append( $button );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	isReady = false;&lt;br /&gt;
	$toolbar = false;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @private&lt;br /&gt;
	 * @property {Array}&lt;br /&gt;
	 * Contains button objects (and for backwards compatibility, it can&lt;br /&gt;
	 * also contains an arguments array for insertButton).&lt;br /&gt;
	 */&lt;br /&gt;
	queue = [];&lt;br /&gt;
	slice = queue.slice;&lt;br /&gt;
&lt;br /&gt;
	toolbar = {&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * Add buttons to the toolbar.&lt;br /&gt;
		 *&lt;br /&gt;
		 * Takes care of race conditions and time-based dependencies by placing buttons in a queue if&lt;br /&gt;
		 * this method is called before the toolbar is created.&lt;br /&gt;
		 *&lt;br /&gt;
		 * For backwards-compatibility, passing `imageFile`, `speedTip`, `tagOpen`, `tagClose`,&lt;br /&gt;
		 * `sampleText` and `imageId` as separate arguments (in this order) is also supported.&lt;br /&gt;
		 *&lt;br /&gt;
		 * @inheritdoc #insertButton&lt;br /&gt;
		 */&lt;br /&gt;
		addButton: function () {&lt;br /&gt;
			if ( isReady ) {&lt;br /&gt;
				insertButton.apply( toolbar, arguments );&lt;br /&gt;
			} else {&lt;br /&gt;
				// Convert arguments list to array&lt;br /&gt;
				queue.push( slice.call( arguments ) );&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * Add multiple buttons to the toolbar (see also #addButton).&lt;br /&gt;
		 *&lt;br /&gt;
		 * Example usage:&lt;br /&gt;
		 *&lt;br /&gt;
		 *     addButtons( [ { .. }, { .. }, { .. } ] );&lt;br /&gt;
		 *     addButtons( { .. }, { .. } );&lt;br /&gt;
		 *&lt;br /&gt;
		 * @param {...Object|Array} [buttons] An array of button objects or the first&lt;br /&gt;
		 *  button object in a list of variadic arguments.&lt;br /&gt;
		 */&lt;br /&gt;
		addButtons: function ( buttons ) {&lt;br /&gt;
			if ( !Array.isArray( buttons ) ) {&lt;br /&gt;
				buttons = slice.call( arguments );&lt;br /&gt;
			}&lt;br /&gt;
			if ( isReady ) {&lt;br /&gt;
				buttons.forEach( function ( button ) {&lt;br /&gt;
					insertButton( button );&lt;br /&gt;
				} );&lt;br /&gt;
			} else {&lt;br /&gt;
				// Push each button into the queue&lt;br /&gt;
				queue.push.apply( queue, buttons );&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * Apply tagOpen/tagClose to selection in currently focused textarea.&lt;br /&gt;
		 *&lt;br /&gt;
		 * Uses `sampleText` if selection is empty.&lt;br /&gt;
		 *&lt;br /&gt;
		 * @param {string} tagOpen&lt;br /&gt;
		 * @param {string} tagClose&lt;br /&gt;
		 * @param {string} sampleText&lt;br /&gt;
		 */&lt;br /&gt;
		insertTags: function ( tagOpen, tagClose, sampleText ) {&lt;br /&gt;
			if ( $currentFocused &amp;amp;&amp;amp; $currentFocused.length ) {&lt;br /&gt;
				$currentFocused.textSelection(&lt;br /&gt;
					&amp;#039;encapsulateSelection&amp;#039;, {&lt;br /&gt;
						pre: tagOpen,&lt;br /&gt;
						peri: sampleText,&lt;br /&gt;
						post: tagClose&lt;br /&gt;
					}&lt;br /&gt;
				);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	// For backwards compatibility. Used to be called from EditPage.php, maybe other places as well.&lt;br /&gt;
	toolbar.init = $.noop;&lt;br /&gt;
&lt;br /&gt;
	// Expose API publicly&lt;br /&gt;
	mw.toolbar = toolbar;&lt;br /&gt;
&lt;br /&gt;
	$( function () {&lt;br /&gt;
		var $textBox, i, button;&lt;br /&gt;
&lt;br /&gt;
		// Used to determine where to insert tags&lt;br /&gt;
		$currentFocused = $( &amp;#039;#wpTextbox1&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
		// Populate the selector cache for $toolbar&lt;br /&gt;
		$toolbar = $( &amp;#039;#toolbar&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
		if ( $toolbar.length === 0 ) {&lt;br /&gt;
			$textBox = $( &amp;#039;#wpTextbox1&amp;#039; );&lt;br /&gt;
			if ( $textBox.length === 0 ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			$toolbar = $( &amp;#039;&amp;lt;div&amp;gt;&amp;#039; ).attr( { id: &amp;#039;toolbar&amp;#039; } );&lt;br /&gt;
			$toolbar.insertBefore( $textBox );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		for ( i = 0; i &amp;lt; queue.length; i++ ) {&lt;br /&gt;
			button = queue[ i ];&lt;br /&gt;
			if ( Array.isArray( button ) ) {&lt;br /&gt;
				// Forwarded arguments array from mw.toolbar.addButton&lt;br /&gt;
				insertButton.apply( toolbar, button );&lt;br /&gt;
			} else {&lt;br /&gt;
				// Raw object from mw.toolbar.addButtons&lt;br /&gt;
				insertButton( button );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// Clear queue&lt;br /&gt;
		queue.length = 0;&lt;br /&gt;
&lt;br /&gt;
		// This causes further calls to addButton to go to insertion directly&lt;br /&gt;
		// instead of to the queue.&lt;br /&gt;
		// It is important that this is after the one and only loop through&lt;br /&gt;
		// the queue&lt;br /&gt;
		isReady = true;&lt;br /&gt;
		mw.hook(&amp;quot;mw.toolbar&amp;quot;).fire();&lt;br /&gt;
&lt;br /&gt;
		// Apply to dynamically created textboxes as well as normal ones&lt;br /&gt;
		$( document ).on( &amp;#039;focus&amp;#039;, &amp;#039;textarea, input:text&amp;#039;, function () {&lt;br /&gt;
			$currentFocused = $( this );&lt;br /&gt;
		} );&lt;br /&gt;
	} );&lt;br /&gt;
&lt;br /&gt;
}() );&lt;br /&gt;
mw.toolbar.addButton( {&lt;br /&gt;
    imageFile: &amp;quot;//upload.wikimedia.org/wikipedia/commons/e/e2/Button_bold.png&amp;quot;,&lt;br /&gt;
    speedTip: &amp;quot;Bold text&amp;quot;,&lt;br /&gt;
    tagOpen: &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
    tagClose: &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
    sampleText: &amp;quot;bold text&amp;quot;,&lt;br /&gt;
    imageId: &amp;quot;mw-editbutton-bold&amp;quot;&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
mw.toolbar.addButton( {&lt;br /&gt;
    imageFile: &amp;quot;//upload.wikimedia.org/wikipedia/commons/1/1d/Button_italic.png&amp;quot;,&lt;br /&gt;
    speedTip: &amp;quot;Italic text&amp;quot;,&lt;br /&gt;
    tagOpen: &amp;quot;&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
    tagClose: &amp;quot;&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
    sampleText: &amp;quot;italic text&amp;quot;,&lt;br /&gt;
    imageId: &amp;quot;mw-editbutton-italic&amp;quot;&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
mw.toolbar.addButton( {&lt;br /&gt;
    imageFile: &amp;quot;//upload.wikimedia.org/wikipedia/commons/c/c0/Button_link.png&amp;quot;,&lt;br /&gt;
    speedTip: &amp;quot;Internal link&amp;quot;,&lt;br /&gt;
    tagOpen: &amp;quot;[[&amp;quot;,&lt;br /&gt;
    tagClose: &amp;quot;]]&amp;quot;,&lt;br /&gt;
    sampleText: &amp;quot;page title&amp;quot;,&lt;br /&gt;
    imageId: &amp;quot;mw-editbutton-link&amp;quot;&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
mw.toolbar.addButton( {&lt;br /&gt;
    imageFile: &amp;quot;//upload.wikimedia.org/wikipedia/commons/e/ec/Button_extlink.png&amp;quot;,&lt;br /&gt;
    speedTip: &amp;quot;External link&amp;quot;,&lt;br /&gt;
    tagOpen: &amp;quot;[&amp;quot;,&lt;br /&gt;
    tagClose: &amp;quot;]&amp;quot;,&lt;br /&gt;
    sampleText: &amp;quot;http://www.example.com link title&amp;quot;,&lt;br /&gt;
    imageId: &amp;quot;mw-editbutton-extlink&amp;quot;&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
mw.toolbar.addButton( {&lt;br /&gt;
    imageFile: &amp;quot;//upload.wikimedia.org/wikipedia/commons/7/78/Button_head_A2.png&amp;quot;,&lt;br /&gt;
    speedTip: &amp;quot;Level 2 header&amp;quot;,&lt;br /&gt;
    tagOpen: &amp;quot;== &amp;quot;,&lt;br /&gt;
    tagClose: &amp;quot; ==&amp;quot;,&lt;br /&gt;
    sampleText: &amp;quot;header name&amp;quot;,&lt;br /&gt;
    imageId: &amp;quot;mw-editbutton-headline&amp;quot;&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
mw.toolbar.addButton( {&lt;br /&gt;
    imageFile: &amp;quot;//upload.wikimedia.org/wikipedia/commons/d/de/Button_image.png&amp;quot;,&lt;br /&gt;
    speedTip: &amp;quot;Image&amp;quot;,&lt;br /&gt;
    tagOpen: &amp;quot;[[File:&amp;quot;,&lt;br /&gt;
    tagClose: &amp;quot;|thumb|Image description.]]&amp;quot;,&lt;br /&gt;
    sampleText: &amp;quot;Example.jpg&amp;quot;,&lt;br /&gt;
    imageId: &amp;quot;mw-editbutton-image&amp;quot;&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
mw.toolbar.addButton( {&lt;br /&gt;
    imageFile: &amp;quot;//upload.wikimedia.org/wikipedia/commons/1/19/Button_media.png&amp;quot;,&lt;br /&gt;
    speedTip: &amp;quot;Media&amp;quot;,&lt;br /&gt;
    tagOpen: &amp;quot;[[File:&amp;quot;,&lt;br /&gt;
    tagClose: &amp;quot;|thumb|Media description.]]&amp;quot;,&lt;br /&gt;
    sampleText: &amp;quot;Example.ogg&amp;quot;,&lt;br /&gt;
    imageId: &amp;quot;mw-editbutton-media&amp;quot;&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
mw.toolbar.addButton( {&lt;br /&gt;
    imageFile: &amp;quot;//upload.wikimedia.org/wikipedia/commons/8/82/Nowiki_icon.png&amp;quot;,&lt;br /&gt;
    speedTip: &amp;quot;Nowiki tags&amp;quot;,&lt;br /&gt;
    tagOpen: &amp;quot;&amp;lt;nowiki&amp;quot;+&amp;quot;&amp;gt;&amp;quot;,&lt;br /&gt;
    tagClose: &amp;quot;&amp;lt;/&amp;quot;+&amp;quot;nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
    sampleText: &amp;quot;&amp;quot;,&lt;br /&gt;
    imageId: &amp;quot;mw-editbutton-nowiki&amp;quot;&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
mw.toolbar.addButton( {&lt;br /&gt;
    imageFile: &amp;quot;//upload.wikimedia.org/wikipedia/commons/6/6d/Button_sig.png&amp;quot;,&lt;br /&gt;
    speedTip: &amp;quot;Signature and date&amp;quot;,&lt;br /&gt;
    tagOpen: &amp;quot;-- ~~&amp;quot;+&amp;quot;~~&amp;quot;,&lt;br /&gt;
    tagClose: &amp;quot;&amp;quot;,&lt;br /&gt;
    sampleText: &amp;quot;&amp;quot;,&lt;br /&gt;
    imageId: &amp;quot;mw-editbutton-signature&amp;quot;&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
mw.toolbar.addButton( {&lt;br /&gt;
    imageFile: &amp;quot;//upload.wikimedia.org/wikipedia/commons/0/0d/Button_hr.png&amp;quot;,&lt;br /&gt;
    speedTip: &amp;quot;Horizontal line&amp;quot;,&lt;br /&gt;
    tagOpen: &amp;quot;--&amp;quot;+&amp;quot;--&amp;quot;,&lt;br /&gt;
    tagClose: &amp;quot;&amp;quot;,&lt;br /&gt;
    sampleText: &amp;quot;&amp;quot;,&lt;br /&gt;
    imageId: &amp;quot;mw-editbutton-hr&amp;quot;&lt;br /&gt;
} );&lt;/div&gt;</summary>
		<author><name>powerstorewiki&gt;Caleb Cooper</name></author>
	</entry>
</feed>