<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://bradleymonk.com/wiki/index.php?action=history&amp;feed=atom&amp;title=ToolbarScript.js</id>
	<title>ToolbarScript.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://bradleymonk.com/wiki/index.php?action=history&amp;feed=atom&amp;title=ToolbarScript.js"/>
	<link rel="alternate" type="text/html" href="https://bradleymonk.com/wiki/index.php?title=ToolbarScript.js&amp;action=history"/>
	<updated>2026-04-09T16:42:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://bradleymonk.com/wiki/index.php?title=ToolbarScript.js&amp;diff=1080&amp;oldid=prev</id>
		<title>Bradley Monk: Created page with &quot;/**  * Insert WikiEditor Button  * @created 2011-06-05  * @source meta.wikimedia.org/wiki/User:Krinkle/Scripts/InsertWikiEditorButton  * @version 0.3.0 (2012-03-12)  * @author...&quot;</title>
		<link rel="alternate" type="text/html" href="https://bradleymonk.com/wiki/index.php?title=ToolbarScript.js&amp;diff=1080&amp;oldid=prev"/>
		<updated>2013-05-23T02:11:41Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;/**  * Insert WikiEditor Button  * @created 2011-06-05  * @source meta.wikimedia.org/wiki/User:Krinkle/Scripts/InsertWikiEditorButton  * @version 0.3.0 (2012-03-12)  * @author...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * Insert WikiEditor Button&lt;br /&gt;
 * @created 2011-06-05&lt;br /&gt;
 * @source meta.wikimedia.org/wiki/User:Krinkle/Scripts/InsertWikiEditorButton&lt;br /&gt;
 * @version 0.3.0 (2012-03-12)&lt;br /&gt;
 * @author Krinkle, 2011 - 2012&lt;br /&gt;
 * @author Locos epraix, 2012&lt;br /&gt;
 * @license Released in the public domain&lt;br /&gt;
 */&lt;br /&gt;
/*jslint browser: true*/&lt;br /&gt;
/*global jQuery, mw*/&lt;br /&gt;
(function ($, mw) {&lt;br /&gt;
	&amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	var queue = [], $toolbar;&lt;br /&gt;
&lt;br /&gt;
	function insertButton(btnObj) {&lt;br /&gt;
		$toolbar.wikiEditor(&amp;#039;addToToolbar&amp;#039;, btnObj);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function handleQueue() {&lt;br /&gt;
		var i;&lt;br /&gt;
		if (!$toolbar) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		for (i = 0; i &amp;lt; queue.length; i += 1) {&lt;br /&gt;
			insertButton(queue[i]);&lt;br /&gt;
		}&lt;br /&gt;
		queue = [];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function check() {&lt;br /&gt;
		$toolbar = ($.wikiEditor &amp;amp;&amp;amp; $.fn.wikiEditor &amp;amp;&amp;amp; $(&amp;#039;#wpTextbox1&amp;#039;).length) ? $(&amp;#039;#wpTextbox1&amp;#039;) : false;&lt;br /&gt;
		handleQueue();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// Only on editpage&lt;br /&gt;
	if ($.inArray(mw.config.get(&amp;#039;wgAction&amp;#039;), [&amp;#039;edit&amp;#039;, &amp;#039;submit&amp;#039;]) !== -1) {&lt;br /&gt;
		/**&lt;br /&gt;
		 * krInsertWikiEditorButton&lt;br /&gt;
		 *&lt;br /&gt;
		 * @param options {Object} An object with options:&lt;br /&gt;
		 * - section {String} (optional) The name of the section in the WikiEditor. Defaults to &amp;#039;main&amp;#039;&lt;br /&gt;
		 * - group {String} (optional) The name of the group in the WikiEditor. Defaults to &amp;#039;insert&amp;#039;&lt;br /&gt;
		 * - id {String} (required) Unique id (ie. &amp;#039;my-button&amp;#039;)&lt;br /&gt;
		 * - icon {String} (recommended) URL to the icon, should be square about 21 to 22px&lt;br /&gt;
		 * - label {String} (required) Tooltip displayed when hovering button&lt;br /&gt;
		 * - insertBefore {String} (optional) Wikitext to be inserted before the cursor on-click&lt;br /&gt;
		 * - sampleText {String} (optional) Text inserted in place of the cursor if no text was selected&lt;br /&gt;
		 * - insertAfter {String} (optional) Wikitext to be inserted after the cursor on-click&lt;br /&gt;
		 * - callback {Function} (optional) Called when the button is clicked&lt;br /&gt;
		 * - autoSummary {mixed} (optional) Null or an Object with the following properties:&lt;br /&gt;
		 *   - summary {String} (required) Edit summary that should be used&lt;br /&gt;
		 *   - position {String} (optional) &amp;#039;append&amp;#039;, &amp;#039;prepend&amp;#039; or &amp;#039;replace&amp;#039;&lt;br /&gt;
		 *   - delimiter {String} (optional) delimiter between the (possibly) current summary and the to-be-inserted summary&lt;br /&gt;
		 */&lt;br /&gt;
		window.krInsertWikiEditorButton = function (options) {&lt;br /&gt;
			// Defaults&lt;br /&gt;
			options = $.extend({&lt;br /&gt;
				&amp;#039;section&amp;#039;: &amp;#039;main&amp;#039;,&lt;br /&gt;
				&amp;#039;group&amp;#039;: &amp;#039;insert&amp;#039;,&lt;br /&gt;
				&amp;#039;id&amp;#039;: null,&lt;br /&gt;
				&amp;#039;icon&amp;#039;: &amp;#039;//upload.wikimedia.org/wikipedia/commons/thumb/f/f0/Toolbaricon_bold_!.png/21px-Toolbaricon_bold_!.png&amp;#039;,&lt;br /&gt;
				&amp;#039;label&amp;#039;: &amp;#039;&amp;#039;,&lt;br /&gt;
				&amp;#039;insertBefore&amp;#039;: &amp;#039;&amp;#039;,&lt;br /&gt;
				&amp;#039;sampleText&amp;#039;: &amp;#039;&amp;#039;,&lt;br /&gt;
				&amp;#039;insertAfter&amp;#039;: &amp;#039;&amp;#039;,&lt;br /&gt;
				&amp;#039;callback&amp;#039;: null,&lt;br /&gt;
				&amp;#039;autoSummary&amp;#039;: {&lt;br /&gt;
					&amp;#039;summary&amp;#039;: null,&lt;br /&gt;
					&amp;#039;position&amp;#039;: &amp;#039;append&amp;#039;,&lt;br /&gt;
					&amp;#039;delimiter&amp;#039;: &amp;#039;; &amp;#039;&lt;br /&gt;
				}&lt;br /&gt;
			}, options);&lt;br /&gt;
			// Required&lt;br /&gt;
			if (!options.id || !options.label) {&lt;br /&gt;
				return false;&lt;br /&gt;
			}&lt;br /&gt;
			var btnObj = {&lt;br /&gt;
				&amp;#039;section&amp;#039;: options.section,&lt;br /&gt;
				&amp;#039;group&amp;#039;: options.group,&lt;br /&gt;
				&amp;#039;tools&amp;#039;: {}&lt;br /&gt;
			};&lt;br /&gt;
			btnObj.tools[options.id] = {&lt;br /&gt;
				label: options.label,&lt;br /&gt;
				type: &amp;#039;button&amp;#039;,&lt;br /&gt;
				icon: options.icon,&lt;br /&gt;
				action: {&lt;br /&gt;
					type: &amp;#039;callback&amp;#039;,&lt;br /&gt;
					execute: function () {&lt;br /&gt;
						// encapsulateSelection&lt;br /&gt;
						$toolbar.textSelection(&amp;#039;encapsulateSelection&amp;#039;, {&lt;br /&gt;
							pre: options.insertBefore,&lt;br /&gt;
							peri: options.sampleText,&lt;br /&gt;
							post: options.insertAfter&lt;br /&gt;
						});&lt;br /&gt;
						// Auto summary&lt;br /&gt;
						if (options.autoSummary &amp;amp;&amp;amp; options.autoSummary.summary) {&lt;br /&gt;
							var $summary = $(&amp;#039;#wpSummary&amp;#039;), currentSum = $summary.val();&lt;br /&gt;
							if (!$.trim(currentSum)) {&lt;br /&gt;
								$summary.val(options.autoSummary.summary);&lt;br /&gt;
							} else {&lt;br /&gt;
								switch (options.autoSummary.position) {&lt;br /&gt;
								case &amp;#039;prepend&amp;#039;:&lt;br /&gt;
									$summary.val(&lt;br /&gt;
										options.autoSummary.summary +&lt;br /&gt;
											options.autoSummary.delimiter +&lt;br /&gt;
											currentSum&lt;br /&gt;
									);&lt;br /&gt;
									break;&lt;br /&gt;
								case &amp;#039;replace&amp;#039;:&lt;br /&gt;
									$summary.val(options.autoSummary.summary);&lt;br /&gt;
									break;&lt;br /&gt;
								default: // &amp;#039;append&amp;#039;&lt;br /&gt;
									$summary.val(&lt;br /&gt;
										currentSum +&lt;br /&gt;
											options.autoSummary.delimiter +&lt;br /&gt;
											options.autoSummary.summary&lt;br /&gt;
									);&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
						// Callback&lt;br /&gt;
						if ($.isFunction(options.callback)) {&lt;br /&gt;
							options.callback();&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			};&lt;br /&gt;
			if ($toolbar) {&lt;br /&gt;
				insertButton(btnObj);&lt;br /&gt;
			} else {&lt;br /&gt;
				queue[queue.length] = btnObj;&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
		$(document).ready(check);&lt;br /&gt;
		$(window).load(check);&lt;br /&gt;
	} else {&lt;br /&gt;
		// No-op function to avoid errors on other pages&lt;br /&gt;
		window.krInsertWikiEditorButton = function () {};&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}(jQuery, mediaWiki));&lt;/div&gt;</summary>
		<author><name>Bradley Monk</name></author>
	</entry>
</feed>