MediaWiki:Gadget-templatestb.js
Заўвага: каб пабачыць зьмены пасьля публікацыі, Вам можа спатрэбіцца ачысьціць кэш Вашага браўзэра.
- Firefox / Safari: трымайце Shift і націсьніце Reload, ці націсьніце Ctrl-F5 ці Ctrl-R (⌘-R на Mac)
- Google Chrome: націсьніце Ctrl-Shift-R (⌘-Shift-R на Mac)
- Internet Explorer / Edge: трымайце Ctrl і націсьніце Refresh, ці націсьніце Ctrl-F5
- Opera: націсьніце Ctrl-F5.
if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' ) { /* WRAPPER EDIT CONDITION START */
/* messages */
mw.messages.set({
'templates-chooseTemplate-insert': 'Уставіць',
'templates-chooseTemplate-title': 'Выбар шаблёну',
'templates-chooseTemplate-loading': 'Загрузка',
'templates-toolbar-title': 'Шаблёны',
'templates-toolbar-label': 'Выбраць шаблён',
'templates-toolbar-button': 'Выбраць шаблён',
'templates-syntax-subpage': 'Сынтаксіс', // subpage name
'templates-error': 'Памылка: шаблён не існуе або не падтрымлівае гэтую магчымасьць.',
'templates-chooseTemplate-intro': 'Увядзіце ў поле назву шаблёна. Калі ён мае код для капіяваньня, вы зможаце дадаць яго ў код старонкі.'
});
var TemplatesTB = {
'templatesCache': {},
'templateName': '',
'templateCode': ''
};
TemplatesTB.init = function() {
TemplatesTB.Api = new mw.Api();
var templatesDialogs = {
'templates-toolbar-chooseTemplate': {
'title': mw.msg( 'templates-chooseTemplate-title' ),
'resizeme': false,
'id': 'templatestoolbar-chooseTemplate',
'html': '<div id="templates-chooseTemplate-loading">'+
'<img src="//upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif" />'+
' ' + mw.msg( 'templates-chooseTemplate-loading' ) + '</div>',
'init': function() {},
'dialog': {
'width': 550,
'open': function() {
TemplatesTB.renderChooseTemplate();
},
'buttons': {
'templates-chooseTemplate-insert': function() {
var templateName = $( '#templates-chooseTemplate-search' ).val();
TemplatesTB.probeTemplate( templateName );
},
'wikieditor-toolbar-tool-table-cancel': function() {
$(this).dialog( 'close' );
}
}
}
}
};
var templatesToolbar = {
'section': 'main',
'group': 'gadgets',
'tools': {
'chooseTemplateButton': {
'label': mw.msg( 'templates-toolbar-button' ),
'type': 'button',
'action': {
'type': 'dialog',
'module': 'templates-toolbar-chooseTemplate'
},
'icon': '//upload.wikimedia.org/wikipedia/commons/thumb/7/7b/Templatetools.svg/42px-Templatetools.svg.png'
}
}
};
TemplatesTB.probeTemplate = function( templateName ) {
TemplatesTB.templateName = templateName;
// caching
if( TemplatesTB.templateName in TemplatesTB.templatesCache ) {
TemplatesTB.templateCode = TemplatesTB.templatesCache[TemplatesTB.templateName];
TemplatesTB.injectTemplate();
$('#templatestoolbar-chooseTemplate').dialog( 'close' );
return;
}
TemplatesTB.startLoading();
TemplatesTB.Api.get({
'action': 'parse',
'page': mw.config.get( 'wgFormattedNamespaces' )[10] + ':' + TemplatesTB.templateName + '/' + mw.msg( 'templates-syntax-subpage' ),
'redirects': '',
'prop': 'wikitext'
})
.done( function( data ) {
TemplatesTB.stopLoading();
TemplatesTB.templateCode = $(data.parse.wikitext['*']).text();
TemplatesTB.templatesCache[TemplatesTB.templateName] = TemplatesTB.templateCode;
TemplatesTB.injectTemplate();
$('#templatestoolbar-chooseTemplate').dialog( 'close' );
} )
.fail( function ( error ) {
TemplatesTB.stopLoading();
TemplatesTB.showError( mw.msg( 'templates-error' ) );
} );
}
TemplatesTB.injectTemplate = function() {
var editorContents = $( '#wpTextbox1' ).val();
var caretPosition = $( '#wpTextbox1' ).prop( 'selectionStart' );
editorContents = editorContents.substr( 0, caretPosition ).concat( TemplatesTB.templateCode, editorContents.substr( caretPosition ) );
$( '#wpTextbox1' ).val( editorContents );
}
TemplatesTB.renderChooseTemplate = function() {
var form = $( '<div />' );
$( '#templatestoolbar-chooseTemplate' ).html( form );
form.html( mw.msg( 'templates-chooseTemplate-intro' ) );
form.after( '<div id="templates-chooseTemplate-form" />');
$( '#templates-chooseTemplate-form' )
.append( '<input id="templates-chooseTemplate-search" />' )
.append( '<img id="templates-chooseTemplate-form-loading" src="//upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif" />' );
$( '#templates-chooseTemplate-form' )
.append( '<span id="templates-chooseTemplate-form-message"></span>');
$( '#templates-chooseTemplate-search' ).attr( 'autofocus', true );
$( '#templates-chooseTemplate-form-loading, #templates-chooseTemplate-form-message' ).hide();
}
$( '#wpTextbox1' ).wikiEditor( 'addDialog', templatesDialogs );
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', templatesToolbar );
TemplatesTB.startLoading = function() {
$( '#templates-chooseTemplate-form-loading' ).show();
$( '#templates-chooseTemplate-form-message' ).hide();
}
TemplatesTB.stopLoading = function() {
$( '#templates-chooseTemplate-form-loading' ).hide();
}
TemplatesTB.showError = function( message ) {
$( '#templates-chooseTemplate-form-message' ).text( message ).show();
}
}
$('#wpTextbox1').on('wikiEditor-toolbar-buildGroup-gadgets', function(event) {
mw.loader.using(['ext.wikiEditor', 'jquery.ui', 'mediawiki.api'], function(){
TemplatesTB.init();
});
});
} /* WRAPPER EDIT CONDITION END */