Различие между версиями «MediaWiki:Editpage.js»
Содержимое удалено Содержимое добавлено
назад |
Нет описания правки |
||
Строка 343: | Строка 343: | ||
function updateToolbar(){ |
function updateToolbar(){ |
||
if( mw.user.options.get('usebetatoolbar') ) { |
if( mw.user.options.get('usebetatoolbar') ) { |
||
mw.loader.using( 'ext.wikiEditor |
mw.loader.using( 'ext.wikiEditor', function () { |
||
updateNewToolbar(); |
updateNewToolbar(); |
||
}); |
}); |
Версия от 16:56, 2 февраля 2018
//<!--
//Toolbar buttons
importScript('MediaWiki:Wikificator.js')
// Добавление кода обработчка как в [[mw:extension:CharInsert]]
function addHandlers() {
$('#editpage-specialchars').find('a.mw-charinsert-item').each( function () {
var $elm = $( this ),
start = $elm.data( 'mw-charinsert-start' ),
end = $elm.data( 'mw-charinsert-end' );
if ( $elm.data( 'mw-charinsert-done' ) ) {
return;
}
$elm.click( function ( e ) {
e.preventDefault();
mw.toolbar.insertTags( start, end, '' );
} )
.data( 'mw-charinsert-done', true )
.attr( 'href', '#' );
} );
}
// Временно повторно установливаем обработчики
// $(addHandlers);
/* select subsection of special characters */
window.chooseCharSubset = function ( s ) {
var l = document.getElementById('editpage-specialchars').getElementsByTagName('p');
for (var i = 0; i < l.length ; i++) {
l[i].style.display = i == s ? 'inline' : 'none';
l[i].style.visibility = i == s ? 'visible' : 'hidden';
}
jQuery.cookie('edittoolscharsubset', s);
}
/* add menu for selecting subsets of special characters */
function addCharSubsetMenu() {
$('#editpage-specialchars').prepend("<select id=\"charSubsetControl\" style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">");
$( "#editpage-specialchars > p").each(function () {
$('#charSubsetControl').append('<option>' + decodeURIComponent($( this ).attr('id').replace(/\.(?!_)/g, "%")).replace(/_/g, ' ') + '</option>');
});
/* default subset from cookie */
var s = parseInt( jQuery.cookie('edittoolscharsubset') );
if ( isNaN(s) ) s = 0;
$('#charSubsetControl').prop('selectedIndex', s);
/* display the subset indicated by the cookie */
chooseCharSubset( s );
}
$(addCharSubsetMenu);
//Summary buttons
function SummaryButtons(){
var sum = document.getElementById('wpSummary')
if (!sum || (sum.form.wpSection && sum.form.wpSection.value == 'new')) return
var sp = document.createElement('div'); sp.id = 'userSummaryButtonsA'
sum.parentNode.insertBefore(sp, sum.nextSibling)
addSumButton('викиф.','викификация')
addSumButton('оформл.','оформление')
addSumButton('стандарт.','стандартизация структуры')
addSumButton('стиль','стилевые правки')
addSumButton('орфогр.','орфография')
addSumButton('пункт.','пунктуация')
addSumButton('кат.','категория','Исправлена категоризация')
addSumButton('шаб.','шаблон','Добавлен / изменён шаблон')
addSumButton('к удал.','к удалению','Страница предложена к удалению')
addSumButton('доп.','дополнение')
addSumButton('илл.','иллюстрация')
addSumButton('обнов.','обновление данных')
addSumButton('уточн.','уточнение')
addSumButton('испр.', 'исправление')
}
function addSumButton(name, text, title) {
var btn = document.createElement('a')
btn.appendChild(document.createTextNode(name))
btn.title = title || text
btn.onclick = function(){insertSummary(text);return(false)}
document.getElementById('userSummaryButtonsA').appendChild(btn)
}
function insertSummary(text) {
var sum = document.getElementById('wpSummary')
if (sum.value.indexOf(text) != -1) return
if (sum.value.match(/[^,; \/]$/)) sum.value += ','
if (sum.value.match(/[^ ]$/)) sum.value += ' '
sum.value += text
}
$(SummaryButtons);
// Служебная функция, добавляет к тулбару кнопку спереди
function prependFuncButton(img, tip, func){
var toolbar = document.getElementById('toolbar') || document.getElementById('wikiEditor-ui-toolbar');
first = toolbar.firstChild;
if (!toolbar) return
var i=document.createElement('img')
i.src=img; i.alt=tip; i.title=tip; i.onclick=func; i.style.cursor='pointer'
toolbar.insertBefore(i, first);
}
// Служебная функция, добавляет к тулбару кнопку сзади
function addFuncButton(img, tip, func){
var toolbar = document.getElementById('toolbar') || document.getElementById('wikiEditor-ui-toolbar');
if (!toolbar) return
var i=document.createElement('img')
i.src=img; i.alt=tip; i.title=tip; i.onclick=func; i.style.cursor='pointer'
toolbar.appendChild(i)
}
//Update toolbar buttons
function updateNewToolbar() {
if ($('body').hasClass('ns-0')) {
// move replace button
$('div.tabs').after($('div.group-search[rel="search"]'))
// remove useless sections
$('#wpTextbox1').wikiEditor('removeFromToolbar',
{'section': 'main', 'group': 'insert', 'tool' : 'signature'});
$('#wpTextbox1').wikiEditor('removeFromToolbar',
{'section': 'advanced'});
//$('#wpTextbox1').wikiEditor('removeFromToolbar',
//{'section': 'characters'});
$('#wpTextbox1').wikiEditor('removeFromToolbar',
{'section': 'help'});
$('.sections').css('height', '0px');
}
// Adding groups to an existing toolbar section:
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'main',
'groups': {
'extra': {
'tools': {
'wikif': {
'label': 'Викификатор',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/0/06/Wikify-toolbutton.png',
'action': {
'type': 'callback',
'execute': function() {Wikify()}
}
}
}
},
'insert': {
'tools': {
'redirect': {
'labelMsg': 'wikieditor-toolbar-tool-redirect',
'type': 'button',
'icon': {'default': 'insert-redirect.png', 'default-rtl': 'insert-redirect-rtl.png'},
'action': {
'type': 'encapsulate',
'options': {
'pre': "#перенаправление [[",
'periMsg': 'wikieditor-toolbar-tool-redirect-example',
'post': "]]",
'ownline': true
}
}
},
'link': {
'label': 'Ссылка',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/7/7f/Vector_toolbar_brackets_button.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': "[[",
'peri': 'Заголовок ссылки',
'post': "]]"
}
}
},
'template': {
'label': 'Шаблон',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/d/dd/Vector_toolbar_template_button.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': "{{",
'peri': 'Название шаблона',
'post': "}}"
}
}
},
'category': {
'label': 'Категория',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/c/c4/Toolbar_category.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': "[[Категория:",
'peri': 'Название категории',
'post': "]]"
}
}
},
'vertical_bar': {
'label': 'Вертикальная черта',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/3/32/Toolbaricon_vertical_bar.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': "|"
}
}
},
'number_sign': {
'label': 'Знак решётки',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/c/cd/Number_Sign_button.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': "#"
}
}
},
'nonbreakspace': {
'label': 'Неразрывный пробел',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/e/ed/Toolbaricon_nbsp.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': " "
}
}
},
'wikipedialink': {
'label': 'Ссылка на Википедию',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/b/b0/Wikipedia-favicon.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': "{{wikipedia",
'post': "}}"
}
}
},
'acute': {
'label': 'Ударение',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/thumb/a/a2/A_with_acute.svg/22px-A_with_acute.svg.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': "́"
}
}
},
'grave': {
'label': 'Гравис',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/thumb/b/b2/A_with_grave.svg/22px-A_with_grave.svg.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': "̀"
}
}
},
'double_grave': {
'label': 'Двойной гравис',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/thumb/c/c2/A_with_double_grave.svg/22px-A_with_double_grave.svg.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': "̏"
}
}
},
'inverted_breve': {
'label': 'Арка',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/thumb/3/33/A_with_inverted_breve.svg/22px-A_with_inverted_breve.svg.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': "̑"
}
}
},
'macron': {
'label': 'Макрон',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/thumb/6/6c/A_with_a_macron.svg/22px-A_with_a_macron.svg.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': "̄"
}
}
},
'tagpre': {
'label': 'Тег <pre>',
'type': 'button',
'icon': '//upload.wikimedia.org/wikipedia/commons/b/b9/Toolbar_pre_vector.png',
'action': {
'type': 'encapsulate',
'options': {
'pre': "<pre>",
'peri': 'Текст',
'post': "</pre>"
}
}
}
}
}
}
} );
// Prepend wikificator button
$('#wikiEditor-ui-toolbar .section-main').prepend($('#wikiEditor-ui-toolbar .group-extra'));
}
function updateOldToolbar(){
// Добавление кнопок на устаревшую панель инструментов
addFuncButton("//upload.wikimedia.org/wikipedia/ru/1/1d/Button_redirect_rus.png",
"Перенаправление", function(){insertTags('#Redirect [[',']]','название страницы')});
addFuncButton("//upload.wikimedia.org/wikipedia/commons/3/3b/Button_template_alt.png",
"Шаблон", function(){insertTags('{{','}}','Название шаблона')});
addFuncButton("//upload.wikimedia.org/wikipedia/commons/3/3c/Button_cat_ru.png",
"Категория", function(){insertTags('[[Категория:',']]','Название категории')});
addFuncButton("//upload.wikimedia.org/wikipedia/commons/4/4b/Button_nbsp.png",
"Неразрывный пробел", function(){insertTags(' ','','')});
addFuncButton("//upload.wikimedia.org/wikipedia/commons/b/bf/WP-icon.png",
"Ссылка на Википедию", function(){insertTags('{{wikipedia','}}','')});
addFuncButton("//upload.wikimedia.org/wikipedia/commons/0/0e/Button_acute_accent.png",
"Ударение", function(){insertTags('́','','')});
addFuncButton("//upload.wikimedia.org/wikipedia/commons/e/ec/Button_diacritique_2.png",
"Гравис", function(){insertTags('̀','','')});
addFuncButton("//upload.wikimedia.org/wikipedia/commons/3/3c/Button_pre.png",
"Тег <pre>", function(){insertTags('<pre>','</pre>','Текст')});
prependFuncButton("//upload.wikimedia.org/wikipedia/commons/3/38/Button_wikify.png",
'Викификатор', function(){Wikify()});
}
function updateToolbar(){
if( mw.user.options.get('usebetatoolbar') ) {
mw.loader.using( 'ext.wikiEditor', function () {
updateNewToolbar();
});
} else {
updateOldToolbar();
}
$('#wpTextbox1').removeClass('mw-ui-input');
}
// Execute on load
$(updateToolbar);
//-->