From: Timo Tijhof Date: Sun, 21 Sep 2014 03:06:58 +0000 (-0700) Subject: Split mediawiki.toolbar from mediawiki.action.edit X-Git-Tag: 1.31.0-rc.0~13710^2 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/exercices/modifier.php?a=commitdiff_plain;h=b3830611c4a1ad60e43a5b7293eeed8512cb6828;p=lhc%2Fweb%2Fwiklou.git Split mediawiki.toolbar from mediawiki.action.edit Follows-up 285c52039bf4d2f9b. Get rid of mediawiki.mediawiki.action.toolbar. Not keeping a backwards-compat alias since this module is not supposed to be used publicly in its current form. Change-Id: I403216c6916e1f4d29216a55c3fe6c92eb68400b --- diff --git a/includes/EditPage.php b/includes/EditPage.php index 8a55b1df6d..fab5c14d42 100644 --- a/includes/EditPage.php +++ b/includes/EditPage.php @@ -3636,7 +3636,7 @@ HTML ) ); - $script = 'mw.loader.using("mediawiki.action.edit", function() {'; + $script = 'mw.loader.using("mediawiki.toolbar", function () {'; foreach ( $toolarray as $tool ) { if ( !$tool ) { continue; diff --git a/maintenance/jsduck/config.json b/maintenance/jsduck/config.json index e97f2923fb..3a748046bd 100644 --- a/maintenance/jsduck/config.json +++ b/maintenance/jsduck/config.json @@ -17,6 +17,7 @@ "../../resources/src/mediawiki.language", "../../resources/src/mediawiki.page", "../../resources/src/mediawiki.special", + "../../resources/src/mediawiki.toolbar", "../../resources/src/jquery/jquery.accessKeyLabel.js", "../../resources/src/jquery/jquery.arrowSteps.js", "../../resources/src/jquery/jquery.autoEllipsis.js", diff --git a/resources/Resources.php b/resources/Resources.php index 28be1df5ae..4b3e356d95 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -985,6 +985,11 @@ return array( 'jquery.cookie', ), ), + 'mediawiki.toolbar' => array( + 'class' => 'ResourceLoaderEditToolbarModule', + 'scripts' => 'resources/src/mediawiki.toolbar/toolbar.js', + 'styles' => 'resources/src/mediawiki.toolbar/toolbar.less', + ), /* MediaWiki Action */ @@ -993,7 +998,7 @@ return array( 'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.css', 'dependencies' => array( 'mediawiki.action.edit.styles', - 'mediawiki.action.edit.toolbar', + 'mediawiki.toolbar', 'jquery.textSelection', 'jquery.byteLimit', ), @@ -1003,10 +1008,6 @@ return array( 'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.styles.css', 'position' => 'top', ), - 'mediawiki.action.edit.toolbar' => array( - 'class' => 'ResourceLoaderEditToolbarModule', - 'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.toolbar/mediawiki.action.edit.toolbar.less', - ), 'mediawiki.action.edit.collapsibleFooter' => array( 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.js', 'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.css', diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.js b/resources/src/mediawiki.action/mediawiki.action.edit.js index 4519b04927..f88b83667d 100644 --- a/resources/src/mediawiki.action/mediawiki.action.edit.js +++ b/resources/src/mediawiki.action/mediawiki.action.edit.js @@ -1,195 +1,10 @@ -/** - * Interface for the classic edit toolbar. - * - * @class mw.toolbar - * @singleton +/*! + * Scripts for action=edit */ ( function ( mw, $ ) { - var toolbar, isReady, $toolbar, queue, slice, $currentFocused; - - /** - * Internal helper that does the actual insertion of the button into the toolbar. - * - * See #addButton for parameter documentation. - * - * @private - */ - function insertButton( b, speedTip, tagOpen, tagClose, sampleText, imageId ) { - var $button; - - // Backwards compatibility - if ( typeof b !== 'object' ) { - b = { - imageFile: b, - speedTip: speedTip, - tagOpen: tagOpen, - tagClose: tagClose, - sampleText: sampleText, - imageId: imageId - }; - } - - if ( b.imageFile ) { - $button = $( '' ).attr( { - src: b.imageFile, - alt: b.speedTip, - title: b.speedTip, - id: b.imageId || undefined, - 'class': 'mw-toolbar-editbutton' - } ); - } else { - $button = $( '
' ).attr( { - title: b.speedTip, - id: b.imageId || undefined, - 'class': 'mw-toolbar-editbutton' - } ); - } - - $button.click( function ( e ) { - if ( b.onClick !== undefined ) { - b.onClick( e ); - } else { - toolbar.insertTags( b.tagOpen, b.tagClose, b.sampleText ); - } - - return false; - } ); - - $toolbar.append( $button ); - } - - isReady = false; - $toolbar = false; - - /** - * @private - * @property {Array} - * Contains button objects (and for backwards compatibilty, it can - * also contains an arguments array for insertButton). - */ - queue = []; - slice = queue.slice; - - toolbar = { - - /** - * Add buttons to the toolbar. - * - * Takes care of race conditions and time-based dependencies - * by placing buttons in a queue if this method is called before - * the toolbar is created. - * - * For backwards-compatibility, passing `imageFile`, `speedTip`, `tagOpen`, `tagClose`, - * `sampleText` and `imageId` as separate arguments (in this order) is also supported. - * - * @param {Object} button Object with the following properties. - * You are required to provide *either* the `onClick` parameter, or the three parameters - * `tagOpen`, `tagClose` and `sampleText`, but not both (they're mutually exclusive). - * @param {string} [button.imageFile] Image to use for the button. - * @param {string} button.speedTip Tooltip displayed when user mouses over the button. - * @param {Function} [button.onClick] Function to be executed when the button is clicked. - * @param {string} [button.tagOpen] - * @param {string} [button.tagClose] - * @param {string} [button.sampleText] Alternative to `onClick`. `tagOpen`, `tagClose` and - * `sampleText` together provide the markup that should be inserted into page text at - * current cursor position. - * @param {string} [button.imageId] `id` attribute of the button HTML element. Can be - * used to define the image with CSS if it's not provided as `imageFile`. - */ - addButton: function () { - if ( isReady ) { - insertButton.apply( toolbar, arguments ); - } else { - // Convert arguments list to array - queue.push( slice.call( arguments ) ); - } - }, - /** - * Add multiple buttons to the toolbar (see also #addButton). - * - * Example usage: - * - * addButtons( [ { .. }, { .. }, { .. } ] ); - * addButtons( { .. }, { .. } ); - * - * @param {Object|Array...} [buttons] An array of button objects or the first - * button object in a list of variadic arguments. - */ - addButtons: function ( buttons ) { - if ( !$.isArray( buttons ) ) { - buttons = slice.call( arguments ); - } - if ( isReady ) { - $.each( buttons, function () { - insertButton( this ); - } ); - } else { - // Push each button into the queue - queue.push.apply( queue, buttons ); - } - }, - - /** - * Apply tagOpen/tagClose to selection in currently focused textarea. - * - * Uses `sampleText` if selection is empty. - * - * @param {string} tagOpen - * @param {string} tagClose - * @param {string} sampleText - */ - insertTags: function ( tagOpen, tagClose, sampleText ) { - if ( $currentFocused && $currentFocused.length ) { - $currentFocused.textSelection( - 'encapsulateSelection', { - pre: tagOpen, - peri: sampleText, - post: tagClose - } - ); - } - }, - - // For backwards compatibility, - // Called from EditPage.php, maybe in other places as well. - init: function () {} - }; - - // Legacy (for compatibility with the code previously in skins/common.edit.js) - mw.log.deprecate( window, 'addButton', toolbar.addButton, 'Use mw.toolbar.addButton instead.' ); - mw.log.deprecate( window, 'insertTags', toolbar.insertTags, 'Use mw.toolbar.insertTags instead.' ); - - // Expose API publicly - mw.toolbar = toolbar; $( function () { - var i, b, editBox, scrollTop, $editForm; - - // Used to determine where to insert tags - $currentFocused = $( '#wpTextbox1' ); - - // Populate the selector cache for $toolbar - $toolbar = $( '#toolbar' ); - - for ( i = 0; i < queue.length; i++ ) { - b = queue[i]; - if ( $.isArray( b ) ) { - // Forwarded arguments array from mw.toolbar.addButton - insertButton.apply( toolbar, b ); - } else { - // Raw object from mw.toolbar.addButtons - insertButton( b ); - } - } - - // Clear queue - queue.length = 0; - - // This causes further calls to addButton to go to insertion directly - // instead of to the queue. - // It is important that this is after the one and only loop through - // the the queue - isReady = true; + var editBox, scrollTop, $editForm; // Make sure edit summary does not exceed byte limit $( '#wpSummary' ).byteLimit( 255 ); @@ -207,11 +22,6 @@ scrollTop.value = editBox.scrollTop; } ); } - - // Apply to dynamically created textboxes as well as normal ones - $( document ).on( 'focus', 'textarea, input:text', function () { - $currentFocused = $( this ); - } ); } ); }( mediaWiki, jQuery ) ); diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_bold.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_bold.png deleted file mode 100644 index e524f6cbad..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_bold.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_headline.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_headline.png deleted file mode 100644 index 398e5614fe..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_headline.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_italic.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_italic.png deleted file mode 100644 index 6ec73e9e32..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_italic.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_link.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_link.png deleted file mode 100644 index c9c63f6c56..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_link.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_nowiki.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_nowiki.png deleted file mode 100644 index 743ea61b1e..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_nowiki.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_bold.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_bold.png deleted file mode 100644 index 5c10cfe205..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_bold.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_italic.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_italic.png deleted file mode 100644 index 72209d74ba..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_italic.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_link.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_link.png deleted file mode 100644 index 09c86fb14a..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_link.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/de/button_bold.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/de/button_bold.png deleted file mode 100644 index 367d5bc149..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/de/button_bold.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/de/button_italic.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/de/button_italic.png deleted file mode 100644 index fdd8c9f924..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/de/button_italic.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_bold.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_bold.png deleted file mode 100644 index 75c3f1094a..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_bold.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_extlink.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_extlink.png deleted file mode 100644 index 458943c1d1..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_extlink.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_headline.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_headline.png deleted file mode 100644 index 9cf751d9d2..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_headline.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_hr.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_hr.png deleted file mode 100644 index 47e1ca4013..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_hr.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_image.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_image.png deleted file mode 100644 index 69192965c4..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_image.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_italic.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_italic.png deleted file mode 100644 index 527fbd1455..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_italic.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_link.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_link.png deleted file mode 100644 index eb5634b910..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_link.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_media.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_media.png deleted file mode 100644 index 4194ec1875..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_media.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_nowiki.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_nowiki.png deleted file mode 100644 index 2ba818de2b..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_nowiki.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_sig.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_sig.png deleted file mode 100644 index fe34b3fb9a..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_sig.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_bold.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_bold.png deleted file mode 100644 index c54d094cad..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_bold.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_headline.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_headline.png deleted file mode 100644 index 9890d15504..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_headline.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_italic.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_italic.png deleted file mode 100644 index 33f91ed613..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_italic.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_link.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_link.png deleted file mode 100644 index 76b939e6af..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_link.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_nowiki.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_nowiki.png deleted file mode 100644 index 743ea61b1e..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_nowiki.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ksh/LICENSE b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ksh/LICENSE deleted file mode 100644 index 47ecfe4ed2..0000000000 --- a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ksh/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ - -button_italic.png -------------------- -Source : http://commons.wikimedia.org/wiki/Image:Button_S_italic.png -License: Public domain -Author : Purodha Blissenbach, http://ksh.wikipedia.org/wiki/User:Purodha - diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ksh/button_italic.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ksh/button_italic.png deleted file mode 100644 index 15496c082c..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ksh/button_italic.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/LICENSE b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/LICENSE deleted file mode 100644 index bedcec6621..0000000000 --- a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/LICENSE +++ /dev/null @@ -1,17 +0,0 @@ -button_bold.png ---------------- -Source : http://commons.wikimedia.org/wiki/Image:Button_bold_ukr.png -License: Public domain -Author : Alexey Belomoev - -button_italic.png ------------------------- -Source : http://commons.wikimedia.org/wiki/Image:Button_italic_ukr.png -License: Public domain -Author : Alexey Belomoev - -button_link.png ------------------ -Source : http://commons.wikimedia.org/wiki/Image:Button_internal_link_ukr.png -License: GPL -Author : Saproj, Erik Möller diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_bold.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_bold.png deleted file mode 100644 index eae30d98e5..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_bold.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_italic.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_italic.png deleted file mode 100644 index b958d2205c..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_italic.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_link.png b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_link.png deleted file mode 100644 index 12ad373192..0000000000 Binary files a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_link.png and /dev/null differ diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/mediawiki.action.edit.toolbar.less b/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/mediawiki.action.edit.toolbar.less deleted file mode 100644 index d65b284217..0000000000 --- a/resources/src/mediawiki.action/mediawiki.action.edit.toolbar/mediawiki.action.edit.toolbar.less +++ /dev/null @@ -1,42 +0,0 @@ -@import "mediawiki.mixins"; - -#mw-editbutton-bold { - .background-image("images/@{button-bold}"); -} - -#mw-editbutton-italic { - .background-image("images/@{button-italic}"); -} - -#mw-editbutton-link { - .background-image("images/@{button-link}"); -} - -#mw-editbutton-extlink { - .background-image("images/@{button-extlink}"); -} - -#mw-editbutton-headline { - .background-image("images/@{button-headline}"); -} - -#mw-editbutton-image { - .background-image("images/@{button-image}"); -} - -#mw-editbutton-media { - .background-image("images/@{button-media}"); -} - -#mw-editbutton-nowiki { - .background-image("images/@{button-nowiki}"); -} - -// Who decided to make only this single one different than the name of the data item? -#mw-editbutton-signature { - .background-image("images/@{button-sig}"); -} - -#mw-editbutton-hr { - .background-image("images/@{button-hr}"); -} diff --git a/resources/src/mediawiki.toolbar/images/ar/button_bold.png b/resources/src/mediawiki.toolbar/images/ar/button_bold.png new file mode 100644 index 0000000000..e524f6cbad Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/ar/button_bold.png differ diff --git a/resources/src/mediawiki.toolbar/images/ar/button_headline.png b/resources/src/mediawiki.toolbar/images/ar/button_headline.png new file mode 100644 index 0000000000..398e5614fe Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/ar/button_headline.png differ diff --git a/resources/src/mediawiki.toolbar/images/ar/button_italic.png b/resources/src/mediawiki.toolbar/images/ar/button_italic.png new file mode 100644 index 0000000000..6ec73e9e32 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/ar/button_italic.png differ diff --git a/resources/src/mediawiki.toolbar/images/ar/button_link.png b/resources/src/mediawiki.toolbar/images/ar/button_link.png new file mode 100644 index 0000000000..c9c63f6c56 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/ar/button_link.png differ diff --git a/resources/src/mediawiki.toolbar/images/ar/button_nowiki.png b/resources/src/mediawiki.toolbar/images/ar/button_nowiki.png new file mode 100644 index 0000000000..743ea61b1e Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/ar/button_nowiki.png differ diff --git a/resources/src/mediawiki.toolbar/images/be-tarask/button_bold.png b/resources/src/mediawiki.toolbar/images/be-tarask/button_bold.png new file mode 100644 index 0000000000..5c10cfe205 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/be-tarask/button_bold.png differ diff --git a/resources/src/mediawiki.toolbar/images/be-tarask/button_italic.png b/resources/src/mediawiki.toolbar/images/be-tarask/button_italic.png new file mode 100644 index 0000000000..72209d74ba Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/be-tarask/button_italic.png differ diff --git a/resources/src/mediawiki.toolbar/images/be-tarask/button_link.png b/resources/src/mediawiki.toolbar/images/be-tarask/button_link.png new file mode 100644 index 0000000000..09c86fb14a Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/be-tarask/button_link.png differ diff --git a/resources/src/mediawiki.toolbar/images/de/button_bold.png b/resources/src/mediawiki.toolbar/images/de/button_bold.png new file mode 100644 index 0000000000..367d5bc149 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/de/button_bold.png differ diff --git a/resources/src/mediawiki.toolbar/images/de/button_italic.png b/resources/src/mediawiki.toolbar/images/de/button_italic.png new file mode 100644 index 0000000000..fdd8c9f924 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/de/button_italic.png differ diff --git a/resources/src/mediawiki.toolbar/images/en/button_bold.png b/resources/src/mediawiki.toolbar/images/en/button_bold.png new file mode 100644 index 0000000000..75c3f1094a Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/en/button_bold.png differ diff --git a/resources/src/mediawiki.toolbar/images/en/button_extlink.png b/resources/src/mediawiki.toolbar/images/en/button_extlink.png new file mode 100644 index 0000000000..458943c1d1 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/en/button_extlink.png differ diff --git a/resources/src/mediawiki.toolbar/images/en/button_headline.png b/resources/src/mediawiki.toolbar/images/en/button_headline.png new file mode 100644 index 0000000000..9cf751d9d2 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/en/button_headline.png differ diff --git a/resources/src/mediawiki.toolbar/images/en/button_hr.png b/resources/src/mediawiki.toolbar/images/en/button_hr.png new file mode 100644 index 0000000000..47e1ca4013 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/en/button_hr.png differ diff --git a/resources/src/mediawiki.toolbar/images/en/button_image.png b/resources/src/mediawiki.toolbar/images/en/button_image.png new file mode 100644 index 0000000000..69192965c4 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/en/button_image.png differ diff --git a/resources/src/mediawiki.toolbar/images/en/button_italic.png b/resources/src/mediawiki.toolbar/images/en/button_italic.png new file mode 100644 index 0000000000..527fbd1455 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/en/button_italic.png differ diff --git a/resources/src/mediawiki.toolbar/images/en/button_link.png b/resources/src/mediawiki.toolbar/images/en/button_link.png new file mode 100644 index 0000000000..eb5634b910 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/en/button_link.png differ diff --git a/resources/src/mediawiki.toolbar/images/en/button_media.png b/resources/src/mediawiki.toolbar/images/en/button_media.png new file mode 100644 index 0000000000..4194ec1875 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/en/button_media.png differ diff --git a/resources/src/mediawiki.toolbar/images/en/button_nowiki.png b/resources/src/mediawiki.toolbar/images/en/button_nowiki.png new file mode 100644 index 0000000000..2ba818de2b Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/en/button_nowiki.png differ diff --git a/resources/src/mediawiki.toolbar/images/en/button_sig.png b/resources/src/mediawiki.toolbar/images/en/button_sig.png new file mode 100644 index 0000000000..fe34b3fb9a Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/en/button_sig.png differ diff --git a/resources/src/mediawiki.toolbar/images/fa/button_bold.png b/resources/src/mediawiki.toolbar/images/fa/button_bold.png new file mode 100644 index 0000000000..c54d094cad Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/fa/button_bold.png differ diff --git a/resources/src/mediawiki.toolbar/images/fa/button_headline.png b/resources/src/mediawiki.toolbar/images/fa/button_headline.png new file mode 100644 index 0000000000..9890d15504 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/fa/button_headline.png differ diff --git a/resources/src/mediawiki.toolbar/images/fa/button_italic.png b/resources/src/mediawiki.toolbar/images/fa/button_italic.png new file mode 100644 index 0000000000..33f91ed613 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/fa/button_italic.png differ diff --git a/resources/src/mediawiki.toolbar/images/fa/button_link.png b/resources/src/mediawiki.toolbar/images/fa/button_link.png new file mode 100644 index 0000000000..76b939e6af Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/fa/button_link.png differ diff --git a/resources/src/mediawiki.toolbar/images/fa/button_nowiki.png b/resources/src/mediawiki.toolbar/images/fa/button_nowiki.png new file mode 100644 index 0000000000..743ea61b1e Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/fa/button_nowiki.png differ diff --git a/resources/src/mediawiki.toolbar/images/ksh/LICENSE b/resources/src/mediawiki.toolbar/images/ksh/LICENSE new file mode 100644 index 0000000000..47ecfe4ed2 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/ksh/LICENSE @@ -0,0 +1,7 @@ + +button_italic.png +------------------- +Source : http://commons.wikimedia.org/wiki/Image:Button_S_italic.png +License: Public domain +Author : Purodha Blissenbach, http://ksh.wikipedia.org/wiki/User:Purodha + diff --git a/resources/src/mediawiki.toolbar/images/ksh/button_italic.png b/resources/src/mediawiki.toolbar/images/ksh/button_italic.png new file mode 100644 index 0000000000..15496c082c Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/ksh/button_italic.png differ diff --git a/resources/src/mediawiki.toolbar/images/ru/LICENSE b/resources/src/mediawiki.toolbar/images/ru/LICENSE new file mode 100644 index 0000000000..bedcec6621 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/ru/LICENSE @@ -0,0 +1,17 @@ +button_bold.png +--------------- +Source : http://commons.wikimedia.org/wiki/Image:Button_bold_ukr.png +License: Public domain +Author : Alexey Belomoev + +button_italic.png +------------------------ +Source : http://commons.wikimedia.org/wiki/Image:Button_italic_ukr.png +License: Public domain +Author : Alexey Belomoev + +button_link.png +----------------- +Source : http://commons.wikimedia.org/wiki/Image:Button_internal_link_ukr.png +License: GPL +Author : Saproj, Erik Möller diff --git a/resources/src/mediawiki.toolbar/images/ru/button_bold.png b/resources/src/mediawiki.toolbar/images/ru/button_bold.png new file mode 100644 index 0000000000..eae30d98e5 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/ru/button_bold.png differ diff --git a/resources/src/mediawiki.toolbar/images/ru/button_italic.png b/resources/src/mediawiki.toolbar/images/ru/button_italic.png new file mode 100644 index 0000000000..b958d2205c Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/ru/button_italic.png differ diff --git a/resources/src/mediawiki.toolbar/images/ru/button_link.png b/resources/src/mediawiki.toolbar/images/ru/button_link.png new file mode 100644 index 0000000000..12ad373192 Binary files /dev/null and b/resources/src/mediawiki.toolbar/images/ru/button_link.png differ diff --git a/resources/src/mediawiki.toolbar/toolbar.js b/resources/src/mediawiki.toolbar/toolbar.js new file mode 100644 index 0000000000..77938db12c --- /dev/null +++ b/resources/src/mediawiki.toolbar/toolbar.js @@ -0,0 +1,200 @@ +/** + * Interface for the classic edit toolbar. + * + * @class mw.toolbar + * @singleton + */ +( function ( mw, $ ) { + var toolbar, isReady, $toolbar, queue, slice, $currentFocused; + + /** + * Internal helper that does the actual insertion of the button into the toolbar. + * + * See #addButton for parameter documentation. + * + * @private + */ + function insertButton( b, speedTip, tagOpen, tagClose, sampleText, imageId ) { + var $button; + + // Backwards compatibility + if ( typeof b !== 'object' ) { + b = { + imageFile: b, + speedTip: speedTip, + tagOpen: tagOpen, + tagClose: tagClose, + sampleText: sampleText, + imageId: imageId + }; + } + + if ( b.imageFile ) { + $button = $( '' ).attr( { + src: b.imageFile, + alt: b.speedTip, + title: b.speedTip, + id: b.imageId || undefined, + 'class': 'mw-toolbar-editbutton' + } ); + } else { + $button = $( '
' ).attr( { + title: b.speedTip, + id: b.imageId || undefined, + 'class': 'mw-toolbar-editbutton' + } ); + } + + $button.click( function ( e ) { + if ( b.onClick !== undefined ) { + b.onClick( e ); + } else { + toolbar.insertTags( b.tagOpen, b.tagClose, b.sampleText ); + } + + return false; + } ); + + $toolbar.append( $button ); + } + + isReady = false; + $toolbar = false; + + /** + * @private + * @property {Array} + * Contains button objects (and for backwards compatibilty, it can + * also contains an arguments array for insertButton). + */ + queue = []; + slice = queue.slice; + + toolbar = { + + /** + * Add buttons to the toolbar. + * + * Takes care of race conditions and time-based dependencies + * by placing buttons in a queue if this method is called before + * the toolbar is created. + * + * For backwards-compatibility, passing `imageFile`, `speedTip`, `tagOpen`, `tagClose`, + * `sampleText` and `imageId` as separate arguments (in this order) is also supported. + * + * @param {Object} button Object with the following properties. + * You are required to provide *either* the `onClick` parameter, or the three parameters + * `tagOpen`, `tagClose` and `sampleText`, but not both (they're mutually exclusive). + * @param {string} [button.imageFile] Image to use for the button. + * @param {string} button.speedTip Tooltip displayed when user mouses over the button. + * @param {Function} [button.onClick] Function to be executed when the button is clicked. + * @param {string} [button.tagOpen] + * @param {string} [button.tagClose] + * @param {string} [button.sampleText] Alternative to `onClick`. `tagOpen`, `tagClose` and + * `sampleText` together provide the markup that should be inserted into page text at + * current cursor position. + * @param {string} [button.imageId] `id` attribute of the button HTML element. Can be + * used to define the image with CSS if it's not provided as `imageFile`. + */ + addButton: function () { + if ( isReady ) { + insertButton.apply( toolbar, arguments ); + } else { + // Convert arguments list to array + queue.push( slice.call( arguments ) ); + } + }, + /** + * Add multiple buttons to the toolbar (see also #addButton). + * + * Example usage: + * + * addButtons( [ { .. }, { .. }, { .. } ] ); + * addButtons( { .. }, { .. } ); + * + * @param {Object|Array...} [buttons] An array of button objects or the first + * button object in a list of variadic arguments. + */ + addButtons: function ( buttons ) { + if ( !$.isArray( buttons ) ) { + buttons = slice.call( arguments ); + } + if ( isReady ) { + $.each( buttons, function () { + insertButton( this ); + } ); + } else { + // Push each button into the queue + queue.push.apply( queue, buttons ); + } + }, + + /** + * Apply tagOpen/tagClose to selection in currently focused textarea. + * + * Uses `sampleText` if selection is empty. + * + * @param {string} tagOpen + * @param {string} tagClose + * @param {string} sampleText + */ + insertTags: function ( tagOpen, tagClose, sampleText ) { + if ( $currentFocused && $currentFocused.length ) { + $currentFocused.textSelection( + 'encapsulateSelection', { + pre: tagOpen, + peri: sampleText, + post: tagClose + } + ); + } + }, + + // For backwards compatibility, + // Called from EditPage.php, maybe in other places as well. + init: function () {} + }; + + // Legacy (for compatibility with the code previously in skins/common.edit.js) + mw.log.deprecate( window, 'addButton', toolbar.addButton, 'Use mw.toolbar.addButton instead.' ); + mw.log.deprecate( window, 'insertTags', toolbar.insertTags, 'Use mw.toolbar.insertTags instead.' ); + + // Expose API publicly + mw.toolbar = toolbar; + + $( function () { + var i, b; + + // Used to determine where to insert tags + $currentFocused = $( '#wpTextbox1' ); + + // Populate the selector cache for $toolbar + $toolbar = $( '#toolbar' ); + + for ( i = 0; i < queue.length; i++ ) { + b = queue[i]; + if ( $.isArray( b ) ) { + // Forwarded arguments array from mw.toolbar.addButton + insertButton.apply( toolbar, b ); + } else { + // Raw object from mw.toolbar.addButtons + insertButton( b ); + } + } + + // Clear queue + queue.length = 0; + + // This causes further calls to addButton to go to insertion directly + // instead of to the queue. + // It is important that this is after the one and only loop through + // the the queue + isReady = true; + + // Apply to dynamically created textboxes as well as normal ones + $( document ).on( 'focus', 'textarea, input:text', function () { + $currentFocused = $( this ); + } ); + } ); + +}( mediaWiki, jQuery ) ); diff --git a/resources/src/mediawiki.toolbar/toolbar.less b/resources/src/mediawiki.toolbar/toolbar.less new file mode 100644 index 0000000000..d65b284217 --- /dev/null +++ b/resources/src/mediawiki.toolbar/toolbar.less @@ -0,0 +1,42 @@ +@import "mediawiki.mixins"; + +#mw-editbutton-bold { + .background-image("images/@{button-bold}"); +} + +#mw-editbutton-italic { + .background-image("images/@{button-italic}"); +} + +#mw-editbutton-link { + .background-image("images/@{button-link}"); +} + +#mw-editbutton-extlink { + .background-image("images/@{button-extlink}"); +} + +#mw-editbutton-headline { + .background-image("images/@{button-headline}"); +} + +#mw-editbutton-image { + .background-image("images/@{button-image}"); +} + +#mw-editbutton-media { + .background-image("images/@{button-media}"); +} + +#mw-editbutton-nowiki { + .background-image("images/@{button-nowiki}"); +} + +// Who decided to make only this single one different than the name of the data item? +#mw-editbutton-signature { + .background-image("images/@{button-sig}"); +} + +#mw-editbutton-hr { + .background-image("images/@{button-hr}"); +}