MediaWiki:Gadget-EditToolbarThunks.js

维基百科,自由的百科全书

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。

if ((mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit') && window.jQuery) {
    window.addButton = true;
    window.mwCustomEditButtons = [];
    window.ettSetup1a = {
        sections: {
            'oldbuttons': {
                type: 'toolbar',
                label: '更多'
            }
        }
    };
    window.ettSetup1b = {
        sections: {
            'oldmenus': {
                type: 'toolbar',
                label: '菜单'
            }
        }
    };
    window.ettSetup2 = {
        section: 'oldbuttons',
        groups: {
            'buttons': {
                label: ''
            }
        }
    };
    window.ettSetup3 = {
        section: 'oldmenus',
        groups: {
            'menus': {
                label: ''
            }
        }
    };
    window.ettSetupButtons = {
        section: 'oldbuttons',
        group: 'buttons',
        tools: {}
    };
    window.ettSetupMenus = {
        section: 'oldmenus',
        group: 'menus',
        tools: {}
    };
    window.ettHasButtons = window.ettHadMenus = false;
    var convertAction = function(obj) {
        if ('action' in obj && jQuery.isFunction(obj.action)) {
            var callback = function(context) {
                obj.action();
                // from https://github.com/wikimedia/mediawiki-extensions-WikiEditor/blob/master/modules/jquery.wikiEditor.toolbar.js
                if ( typeof context.$iframe !== 'undefined' ) {
                    context.$iframe[0].contentWindow.focus();
                }
                // end
            };
            return {
                type: 'callback',
                execute: callback
            };
        } else {
            return {
                type: 'encapsulate',
                options: {
                    pre: obj.tagOpen,
                    peri: obj.sampleText,
                    post: obj.tagClose
                }
            };
        }
    };
    var convertDropdown = function(optionList) {
        var list = {};
        jQuery.each(optionList, function() {
            list[this.id] = {
                label: this.text,
                action: convertAction(this)
            };
        });
        return list;
    };
    /*
    jQuery(document).on('edittoolsAddDropdownMenu', function(event, name, label, optionList, attrs) {
        window.ettHasMenus = true;
        if (name in window.ettSetupMenus.tools) {
            jQuery.extend(window.ettSetupMenus.tools[name].list, convertDropdown(optionList));
        } else {
            window.ettSetupMenus.tools[name] = {
                label: label,
                type: 'select',
                list: convertDropdown(optionList)
            };
        }
    });
    // They will be added in the following function. */
    jQuery(document).on('edittoolsDropdownMenuAdd', function(event, name, label, attrs, text, value, tagOpen, sampleText, tagClose, summary, minor, action) {
        if (typeof(value) == 'undefined') {
            return;
        }
        window.ettHasMenus = true;
        if (!(name in window.ettSetupMenus.tools)) {
            window.ettSetupMenus.tools[name] = {
                label: label,
                type: 'select',
                list: {}
            };
        }
        window.ettSetupMenus.tools[name].list[value] = {
            label: text,
            action: convertAction({
                tagOpen: tagOpen,
                sampleText: sampleText,
                tagClose: tagClose,
                action: action
            })
        };
    });
    jQuery(document).on('edittoolsAddEditButton', function(event, name, attrs) {
        window.ettHasButtons = true;
        window.ettSetupButtons.tools[name] = {
            label: attrs.speedTip,
            type: 'button',
            icon: '//upload.wikimedia.org/wikipedia/commons/' + attrs.src,
            action: convertAction(attrs)
        };
    });

$( function() {

// new method according to [[usability:Toolbar customization]], begin

// Check that the toolbar is available
if ( typeof $ != 'undefined' && typeof $.fn.wikiEditor != 'undefined' ) {
	// Execute on load
	$( document ).ready( function() {
                if ( window.ettHasButtons ) {
                    $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', window.ettSetup1a );
                    $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', window.ettSetup2 );
                    $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', window.ettSetupButtons );
                }
                if ( window.ettHasMenus ) {
                    $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', window.ettSetup1b );
                    $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', window.ettSetup3 );
                    $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', window.ettSetupMenus );
                }
	} );
}

// end

} );

}