MediaWiki:Gadget-refToolbar.js
Возможно, этот код документирован.
// _____________________________________________________________________________________________
// | |
// | Основано на версии 622655288 гаджета refToolbar.js |
// | (https://en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-refToolbar.js&oldid=821259001) |
// |_____________________________________________________________________________________________|
//
/**
* 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 jQuery, mediaWiki, importScript */
( function ( mw, $ ) {
'use strict';
function initializeRefTools() {
if ( window.refToolbarInstalled ||
$( '#wpTextbox1[readonly]' ).length ||
mw.user.options.get( 'visualeditor-newwikitext' ) == 1 // weak comparison on purpose
) {
return;
}
// using weak comparison because ("0") is true, but ("0" == true) is false
if ( mw.user.options.get( 'usebetatoolbar' ) == true ) {
// 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 () {
importScript( 'MediaWiki:RefToolbar.js' );
} );
} else {
// Enhanced editing toolbar is off. Loading RefToolbar 1.0. (legacy)
mw.hook( 'legacy.toolbar.ready' ).add( function () {
importScript( 'MediaWiki:RefToolbarLegacy.js' );
} );
}
window.refToolbarInstalled = true;
}
if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
// Double check if user.options is loaded, to prevent errors when copy pasted accross installations
$.when( mw.loader.using( ['user.options'] ), $.ready ).done( initializeRefTools );
}
}( mediaWiki, jQuery ) );