MediaWiki:Gadget-refToolbar.js

/**

* RefToolbar

*

* Adds tools for citing references to the edit toolbar.

* See Wikipedia:RefToolbar for further documentation. One of two

* possible versions will load (Reftoolbar 1.0 or Reftoolbar 2.0)

* depending on the user preferences (the usebetatoolbar preference).

*

* @see: Wikipedia:RefToolbar

* @see: MediaWiki:RefToolbar.js

* @see: MediaWiki:RefToolbarConfig.js

* @see: MediaWiki:RefToolbarLegacy.js

* @see: MediaWiki:RefToolbarMessages-en.js

* @see: MediaWiki:RefToolbarMessages-de.js

* @see: MediaWiki:Gadget-refToolbarBase.js

* @author: User:Mr.Z-man

* @author: User:Kaldari

*/

/*jshint browser: true, camelcase: true, curly: true, eqeqeq: true */

/*global $, mw */

( function () {

'use strict';

function initializeRefTools() {

if ( window.refToolbarInstalled || $( '#wpTextbox1[readonly]' ).length ) {

return;

}

// cast to number, support both 1 and "1"

if ( +mw.user.options.get( 'usebetatoolbar' ) === 1 ) {

// Enhanced editing toolbar is on. Going to load RefToolbar 2.0.

// TODO:

// * Explicitly declare global variables from MediaWiki:RefToolbar.js using window.*

// * Move MediaWiki:RefToolbar.js to MediaWiki:Gadget-refToolbarDialogs.js

// * Create the module 'ext.gadget.refToolbarDialogs' depending on 'ext.gadget.refToolbarBase' and 'ext.wikiEditor'

// * Replace the code below by mw.loader.load( 'ext.gadget.refToolbarDialogs' );

mw.loader.using( [ 'ext.gadget.refToolbarBase', 'ext.wikiEditor' ], function () {

mw.loader.load( '/w/index.php?title=MediaWiki:RefToolbar.js&action=raw&ctype=text/javascript' );

} );

} else if ( +mw.user.options.get( 'gadget-legacyToolbar' ) === 1 ) {

// Enhanced editing toolbar is off. Loading RefToolbar 1.0. (legacy)

mw.loader.load( '/w/index.php?title=MediaWiki:RefToolbarLegacy.js&action=raw&ctype=text/javascript' );

} else {

return;

}

window.refToolbarInstalled = true;

}

if ( /^(edit|submit)$/.test( mw.config.get( 'wgAction' ) ) ) {

// Double check if user.options is loaded, to prevent errors when copy pasted accross installations

$.when( mw.loader.using( ['user.options'] ), $.ready ).then( initializeRefTools );

}

}() );