diff options
Diffstat (limited to 'resources/src/mediawiki.toolbar')
33 files changed, 268 insertions, 0 deletions
diff --git a/resources/src/mediawiki.toolbar/images/ar/button_bold.png b/resources/src/mediawiki.toolbar/images/ar/button_bold.png Binary files differnew file mode 100644 index 00000000..e524f6cb --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/ar/button_bold.png diff --git a/resources/src/mediawiki.toolbar/images/ar/button_headline.png b/resources/src/mediawiki.toolbar/images/ar/button_headline.png Binary files differnew file mode 100644 index 00000000..398e5614 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/ar/button_headline.png diff --git a/resources/src/mediawiki.toolbar/images/ar/button_italic.png b/resources/src/mediawiki.toolbar/images/ar/button_italic.png Binary files differnew file mode 100644 index 00000000..6ec73e9e --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/ar/button_italic.png diff --git a/resources/src/mediawiki.toolbar/images/ar/button_link.png b/resources/src/mediawiki.toolbar/images/ar/button_link.png Binary files differnew file mode 100644 index 00000000..c9c63f6c --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/ar/button_link.png diff --git a/resources/src/mediawiki.toolbar/images/ar/button_nowiki.png b/resources/src/mediawiki.toolbar/images/ar/button_nowiki.png Binary files differnew file mode 100644 index 00000000..743ea61b --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/ar/button_nowiki.png diff --git a/resources/src/mediawiki.toolbar/images/be-tarask/button_bold.png b/resources/src/mediawiki.toolbar/images/be-tarask/button_bold.png Binary files differnew file mode 100644 index 00000000..5c10cfe2 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/be-tarask/button_bold.png diff --git a/resources/src/mediawiki.toolbar/images/be-tarask/button_italic.png b/resources/src/mediawiki.toolbar/images/be-tarask/button_italic.png Binary files differnew file mode 100644 index 00000000..72209d74 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/be-tarask/button_italic.png diff --git a/resources/src/mediawiki.toolbar/images/be-tarask/button_link.png b/resources/src/mediawiki.toolbar/images/be-tarask/button_link.png Binary files differnew file mode 100644 index 00000000..09c86fb1 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/be-tarask/button_link.png diff --git a/resources/src/mediawiki.toolbar/images/de/button_bold.png b/resources/src/mediawiki.toolbar/images/de/button_bold.png Binary files differnew file mode 100644 index 00000000..367d5bc1 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/de/button_bold.png diff --git a/resources/src/mediawiki.toolbar/images/de/button_italic.png b/resources/src/mediawiki.toolbar/images/de/button_italic.png Binary files differnew file mode 100644 index 00000000..fdd8c9f9 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/de/button_italic.png diff --git a/resources/src/mediawiki.toolbar/images/en/button_bold.png b/resources/src/mediawiki.toolbar/images/en/button_bold.png Binary files differnew file mode 100644 index 00000000..75c3f109 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/en/button_bold.png diff --git a/resources/src/mediawiki.toolbar/images/en/button_extlink.png b/resources/src/mediawiki.toolbar/images/en/button_extlink.png Binary files differnew file mode 100644 index 00000000..458943c1 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/en/button_extlink.png diff --git a/resources/src/mediawiki.toolbar/images/en/button_headline.png b/resources/src/mediawiki.toolbar/images/en/button_headline.png Binary files differnew file mode 100644 index 00000000..9cf751d9 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/en/button_headline.png diff --git a/resources/src/mediawiki.toolbar/images/en/button_hr.png b/resources/src/mediawiki.toolbar/images/en/button_hr.png Binary files differnew file mode 100644 index 00000000..47e1ca40 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/en/button_hr.png diff --git a/resources/src/mediawiki.toolbar/images/en/button_image.png b/resources/src/mediawiki.toolbar/images/en/button_image.png Binary files differnew file mode 100644 index 00000000..69192965 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/en/button_image.png diff --git a/resources/src/mediawiki.toolbar/images/en/button_italic.png b/resources/src/mediawiki.toolbar/images/en/button_italic.png Binary files differnew file mode 100644 index 00000000..527fbd14 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/en/button_italic.png diff --git a/resources/src/mediawiki.toolbar/images/en/button_link.png b/resources/src/mediawiki.toolbar/images/en/button_link.png Binary files differnew file mode 100644 index 00000000..eb5634b9 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/en/button_link.png diff --git a/resources/src/mediawiki.toolbar/images/en/button_media.png b/resources/src/mediawiki.toolbar/images/en/button_media.png Binary files differnew file mode 100644 index 00000000..4194ec18 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/en/button_media.png diff --git a/resources/src/mediawiki.toolbar/images/en/button_nowiki.png b/resources/src/mediawiki.toolbar/images/en/button_nowiki.png Binary files differnew file mode 100644 index 00000000..2ba818de --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/en/button_nowiki.png diff --git a/resources/src/mediawiki.toolbar/images/en/button_sig.png b/resources/src/mediawiki.toolbar/images/en/button_sig.png Binary files differnew file mode 100644 index 00000000..fe34b3fb --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/en/button_sig.png diff --git a/resources/src/mediawiki.toolbar/images/fa/button_bold.png b/resources/src/mediawiki.toolbar/images/fa/button_bold.png Binary files differnew file mode 100644 index 00000000..c54d094c --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/fa/button_bold.png diff --git a/resources/src/mediawiki.toolbar/images/fa/button_headline.png b/resources/src/mediawiki.toolbar/images/fa/button_headline.png Binary files differnew file mode 100644 index 00000000..9890d155 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/fa/button_headline.png diff --git a/resources/src/mediawiki.toolbar/images/fa/button_italic.png b/resources/src/mediawiki.toolbar/images/fa/button_italic.png Binary files differnew file mode 100644 index 00000000..33f91ed6 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/fa/button_italic.png diff --git a/resources/src/mediawiki.toolbar/images/fa/button_link.png b/resources/src/mediawiki.toolbar/images/fa/button_link.png Binary files differnew file mode 100644 index 00000000..76b939e6 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/fa/button_link.png diff --git a/resources/src/mediawiki.toolbar/images/fa/button_nowiki.png b/resources/src/mediawiki.toolbar/images/fa/button_nowiki.png Binary files differnew file mode 100644 index 00000000..743ea61b --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/fa/button_nowiki.png diff --git a/resources/src/mediawiki.toolbar/images/ksh/LICENSE b/resources/src/mediawiki.toolbar/images/ksh/LICENSE new file mode 100644 index 00000000..47ecfe4e --- /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 Binary files differnew file mode 100644 index 00000000..15496c08 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/ksh/button_italic.png diff --git a/resources/src/mediawiki.toolbar/images/ru/LICENSE b/resources/src/mediawiki.toolbar/images/ru/LICENSE new file mode 100644 index 00000000..bedcec66 --- /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 Binary files differnew file mode 100644 index 00000000..eae30d98 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/ru/button_bold.png diff --git a/resources/src/mediawiki.toolbar/images/ru/button_italic.png b/resources/src/mediawiki.toolbar/images/ru/button_italic.png Binary files differnew file mode 100644 index 00000000..b958d220 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/ru/button_italic.png diff --git a/resources/src/mediawiki.toolbar/images/ru/button_link.png b/resources/src/mediawiki.toolbar/images/ru/button_link.png Binary files differnew file mode 100644 index 00000000..12ad3731 --- /dev/null +++ b/resources/src/mediawiki.toolbar/images/ru/button_link.png diff --git a/resources/src/mediawiki.toolbar/toolbar.js b/resources/src/mediawiki.toolbar/toolbar.js new file mode 100644 index 00000000..70d54ce3 --- /dev/null +++ b/resources/src/mediawiki.toolbar/toolbar.js @@ -0,0 +1,202 @@ +/** + * 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. + * + * For backwards-compatibility, passing `imageFile`, `speedTip`, `tagOpen`, `tagClose`, + * `sampleText` and `imageId` as separate arguments (in this order) is also supported. + * + * @private + * + * @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`. + */ + function insertButton( button, speedTip, tagOpen, tagClose, sampleText, imageId ) { + var $button; + + // Backwards compatibility + if ( typeof button !== 'object' ) { + button = { + imageFile: button, + speedTip: speedTip, + tagOpen: tagOpen, + tagClose: tagClose, + sampleText: sampleText, + imageId: imageId + }; + } + + if ( button.imageFile ) { + $button = $( '<img>' ).attr( { + src: button.imageFile, + alt: button.speedTip, + title: button.speedTip, + id: button.imageId || undefined, + 'class': 'mw-toolbar-editbutton' + } ); + } else { + $button = $( '<div>' ).attr( { + title: button.speedTip, + id: button.imageId || undefined, + 'class': 'mw-toolbar-editbutton' + } ); + } + + $button.click( function ( e ) { + if ( button.onClick !== undefined ) { + button.onClick( e ); + } else { + toolbar.insertTags( button.tagOpen, button.tagClose, button.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. + * + * @inheritdoc #insertButton + */ + 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 + } + ); + } + } + }; + + // 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.' ); + + // For backwards compatibility. Used to be called from EditPage.php, maybe other places as well. + mw.log.deprecate( toolbar, 'init', $.noop ); + + // Expose API publicly + mw.toolbar = toolbar; + + $( function () { + var i, button; + + // Used to determine where to insert tags + $currentFocused = $( '#wpTextbox1' ); + + // Populate the selector cache for $toolbar + $toolbar = $( '#toolbar' ); + + for ( i = 0; i < queue.length; i++ ) { + button = queue[i]; + if ( $.isArray( button ) ) { + // Forwarded arguments array from mw.toolbar.addButton + insertButton.apply( toolbar, button ); + } else { + // Raw object from mw.toolbar.addButtons + insertButton( button ); + } + } + + // 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 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 00000000..d65b2842 --- /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}"); +} |