MediaWiki:Gadget-common-action-edit.js: различия между версиями
Перейти к навигации
Перейти к поиску
Содержимое удалено Содержимое добавлено
Putnik (обсуждение | вклад) Викификатор теперь самдобавляет кнопки |
Putnik (обсуждение | вклад) создание секции для гаджетов в самое начало; мелкие исправления |
||
Строка 1: | Строка 1: | ||
// Helper function for toolbar buttons |
|||
function wgImg ( img ) { |
|||
return '//upload.wikimedia.org/wikipedia/' + img; |
|||
} |
|||
function createFuncBtn ( id, func, img, tip ) { |
|||
$( '<img id="' + id + '" src="' + wgImg( img ) + '" style="cursor:pointer" ' + |
|||
'title="' + tip + '" alt="' + tip.substr( 0, 3 ) + '" />' ) |
|||
.appendTo( '#gadget-toolbar' ) |
|||
.click( func ); |
|||
} |
|||
// Toolbar section for gadgets |
|||
if ( mw.user.options.get( 'usebetatoolbar' ) ) { |
|||
var gTlbLoc = '#wikiEditor-ui-toolbar'; |
|||
mw.util.addCSS( '#gadget-toolbar {height:26px; border-right:1px solid #ddd; margin:3px; padding-right:6px} #gadget-toolbar img {padding:2px}' ); |
|||
} else if ( document.getElementById( 'toolbar' ) ) { |
|||
var gTlbLoc = '#toolbar'; |
|||
importMW( 'ToolbarOld' ); |
|||
} else { |
|||
var gTlbLoc = '#editform'; |
|||
importMW( 'ToolbarNone' ); |
|||
} |
|||
function gToolbar() { |
|||
if ( !document.getElementById( 'gadget-toolbar' ) ) { |
|||
var $where = $( gTlbLoc ); |
|||
if ( !$where.length ) { |
|||
return; //beta toolbar not ready yet |
|||
} |
|||
$( '<div id="gadget-toolbar" style="float:left" />' ).prependTo( $where ); |
|||
} |
|||
for ( var id in mwCustomEditButtons ) { |
|||
var b = mwCustomEditButtons[id]; |
|||
if ( !b.length ) { |
|||
continue; |
|||
} |
|||
createFuncBtn( id, b[0], b[1], b[2] ); |
|||
delete mwCustomEditButtons[id]; |
|||
} |
|||
} |
|||
$( function() { |
|||
gToolbar(); |
|||
setTimeout( gToolbar, 2000 ); |
|||
setTimeout( gToolbar, 6000 ); |
|||
} ); |
|||
// Summary buttons |
// Summary buttons |
||
Строка 6: | Строка 59: | ||
} |
} |
||
var vv = $( '#wpSummary' ).val(); |
var vv = $( '#wpSummary' ).val(); |
||
if ( vv.indexOf(txt) !== -1 ) { |
if ( vv.indexOf( txt ) !== -1 ) { |
||
return; |
return; |
||
} |
} |
||
Строка 26: | Строка 79: | ||
$( function() { |
$( function() { |
||
var frm = document.getElementById( 'editform' ); |
var frm = document.getElementById( 'editform' ); |
||
if ( !mw.config.get( 'wgArticleId' ) || !frm || $( frm.wpSection ).val() == 'new' ) { |
if ( !mw.config.get( 'wgArticleId' ) || !frm || $( frm.wpSection ).val() === 'new' ) { |
||
return; |
return; |
||
} |
} |
||
Строка 51: | Строка 104: | ||
// Wikificator |
// Wikificator |
||
importMW( 'Wikificator' ); |
importMW( 'Wikificator' ); |
||
if ( mw.user.options.get('usebetatoolbar') ) { |
|||
var gTlbLoc = '#wikiEditor-ui-toolbar'; |
|||
mw.util.addCSS( '#gadget-toolbar {height:26px; border-right:1px solid #ddd; margin:3px; padding-right:6px} #gadget-toolbar img {padding:2px}' ); |
|||
} else if ( document.getElementById('toolbar') ) { |
|||
var gTlbLoc = '#toolbar'; |
|||
importMW( 'ToolbarOld' ); |
|||
} else { |
|||
var gTlbLoc = '#editform'; |
|||
importMW( 'ToolbarNone' ); |
|||
} |
|||
$( function() { |
|||
gToolbar(); |
|||
setTimeout( gToolbar, 2000 ); |
|||
setTimeout( gToolbar, 6000 ); |
|||
} ); |
|||
function gToolbar() { |
|||
if ( !document.getElementById('gadget-toolbar') ) { |
|||
var where = $( gTlbLoc ); |
|||
if ( !where.length ) { |
|||
return; //beta toolbar not ready yet |
|||
} |
|||
$( '<div id=gadget-toolbar style="float:left" />' ).prependTo( where ); |
|||
} |
|||
for ( var id in mwCustomEditButtons ) { |
|||
var b = mwCustomEditButtons[id]; |
|||
if ( !b.length ) { |
|||
continue; |
|||
} |
|||
createFuncBtn( id, b[0], b[1], b[2] ); |
|||
delete mwCustomEditButtons[id]; |
|||
} |
|||
} |
|||
function createFuncBtn ( id, func, img, tip ) { |
|||
$( '<img id="' + id + '" src="' + wgImg( img ) + '" style="cursor:pointer" ' + |
|||
'title="' + tip + '" alt="' + tip.substr( 0, 3 ) + '" />' ) |
|||
.appendTo( '#gadget-toolbar' ) |
|||
.click( func ); |
|||
} |
|||
function wgImg ( img ) { |
|||
return '//upload.wikimedia.org/wikipedia/' + img; |
|||
} |
|||
// For userscripts |
|||
function addFuncBtn ( id, func, img, tip ) { |
|||
if ( document.getElementById('gadget-toolbar') ) { |
|||
createFuncBtn( id, func, img, tip ); |
|||
} else { |
|||
mwCustomEditButtons[id] = [ func, img, tip ]; |
|||
} |
|||
} |
|||
// Sig reminder |
// Sig reminder |
||
if ( mw.config.get( 'wgNamespaceNumber' ) % 2 || |
if ( mw.config.get( 'wgNamespaceNumber' ) % 2 || |
||
mw.config.get( 'wgNamespaceNumber' ) == 4 |
mw.config.get( 'wgNamespaceNumber' ) === 4 |
||
) { |
) { |
||
$(function (){ |
$( function () { |
||
var cp = document.getElementById( 'editpage-copywarn' ), |
var cp = document.getElementById( 'editpage-copywarn' ), |
||
wpSave = document.getElementById( 'wpSave' ); |
wpSave = document.getElementById( 'wpSave' ); |
||
Строка 128: | Строка 116: | ||
return; |
return; |
||
} |
} |
||
if ( mw.config.get( 'wgNamespaceNumber' ) == 4 && |
if ( mw.config.get( 'wgNamespaceNumber' ) === 4 && |
||
( !mw.config.get( 'wgTitle' ).match( '^(Форум[/ ]|Голосования/|Опросы/|Обсуждение правил/|Заявки на .*|Запросы.|Кандидаты в .*/|К (удалению|объединению|переименованию|разделению|улучшению)/|Рецензирование/|Проверка участников/|Инкубатор/(Мини-рецензирование|Форум[/ ]))' ) || |
( !mw.config.get( 'wgTitle' ).match( '^(Форум[/ ]|Голосования/|Опросы/|Обсуждение правил/|Заявки на .*|Запросы.|Кандидаты в .*/|К (удалению|объединению|переименованию|разделению|улучшению)/|Рецензирование/|Проверка участников/|Инкубатор/(Мини-рецензирование|Форум[/ ]))' ) || |
||
mw.config.get( 'wgTitle' ).match( '/Архив' ) ) |
mw.config.get( 'wgTitle' ).match( '/Архив' ) ) |
||
Строка 135: | Строка 123: | ||
} |
} |
||
// FIXME: Use of "insertTags" is deprecated. Use mw.toolbar.insertTags instead. |
// FIXME: Use of "insertTags" is deprecated. Use mw.toolbar.insertTags instead. |
||
var ins = ' <a href=\'javascript:insertTags(" ~~\~~ |
var ins = ' <a href=\'javascript:insertTags(" ~~\~~","","")\'>~~\~~</a>'; |
||
cp.innerHTML += ' Не забудьте добавить к вашему сообщению подпись с помощью' + ins; |
cp.innerHTML += ' Не забудьте добавить к вашему сообщению подпись с помощью' + ins; |
||
if ( $.inArray( 'autoconfirmed', mw.config.get( 'wgUserGroups' ) ) !== -1 && !window.sigWarning ) { |
if ( $.inArray( 'autoconfirmed', mw.config.get( 'wgUserGroups' ) ) !== -1 && !window.sigWarning ) { |
||
Строка 144: | Строка 132: | ||
wpSave.onclick = function() { |
wpSave.onclick = function() { |
||
try { |
try { |
||
if ( warningDone || document.editform.wpTextbox1.value.indexOf( '~~\~~' ) |
if ( warningDone || document.editform.wpTextbox1.value.indexOf( '~~\~~' ) !== -1 ) { |
||
return true; |
return true; |
||
} |
} |
||
Строка 150: | Строка 138: | ||
cp.innerHTML = 'Пожалуйста, <b>подпишитесь</b>, добавив в конце' + |
cp.innerHTML = 'Пожалуйста, <b>подпишитесь</b>, добавив в конце' + |
||
' своего сообщения' + ins + ' (<a href="' + |
' своего сообщения' + ins + ' (<a href="' + |
||
mw.config.get('wgArticlePath').replace(/\$1/, 'Википедия:Подписывайтесь') + |
mw.config.get( 'wgArticlePath' ).replace( /\$1/, 'Википедия:Подписывайтесь' ) + |
||
'" title="(ссылка откроется в новом окне)" target=_blank>подробнее ↗</a>)'; |
'" title="(ссылка откроется в новом окне)" target=_blank>подробнее ↗</a>)'; |
||
cp.style.background = '#FFD080'; |
cp.style.background = '#FFD080'; |
||
Строка 159: | Строка 147: | ||
} |
} |
||
}; |
}; |
||
}); |
} ); |
||
} |
} |
||
// Hack for Opera 11.6 |
|||
if ( window.opera && /11\.6[01]/.test( window.opera.version() ) ) { |
if ( window.opera && /11\.6[01]/.test( window.opera.version() ) ) { |
||
$( '#wpTextbox1' ) |
$( '#wpTextbox1' ) |
||
Строка 168: | Строка 158: | ||
} ) |
} ) |
||
.click( function() { |
.click( function() { |
||
if ( this.scrollTop == 0 ) { |
if ( this.scrollTop === 0 ) { |
||
this.scrollTop = this.sT; |
this.scrollTop = this.sT; |
||
} |
} |
Версия от 05:53, 5 октября 2014
// Helper function for toolbar buttons
function wgImg ( img ) {
return '//upload.wikimedia.org/wikipedia/' + img;
}
function createFuncBtn ( id, func, img, tip ) {
$( '<img id="' + id + '" src="' + wgImg( img ) + '" style="cursor:pointer" ' +
'title="' + tip + '" alt="' + tip.substr( 0, 3 ) + '" />' )
.appendTo( '#gadget-toolbar' )
.click( func );
}
// Toolbar section for gadgets
if ( mw.user.options.get( 'usebetatoolbar' ) ) {
var gTlbLoc = '#wikiEditor-ui-toolbar';
mw.util.addCSS( '#gadget-toolbar {height:26px; border-right:1px solid #ddd; margin:3px; padding-right:6px} #gadget-toolbar img {padding:2px}' );
} else if ( document.getElementById( 'toolbar' ) ) {
var gTlbLoc = '#toolbar';
importMW( 'ToolbarOld' );
} else {
var gTlbLoc = '#editform';
importMW( 'ToolbarNone' );
}
function gToolbar() {
if ( !document.getElementById( 'gadget-toolbar' ) ) {
var $where = $( gTlbLoc );
if ( !$where.length ) {
return; //beta toolbar not ready yet
}
$( '<div id="gadget-toolbar" style="float:left" />' ).prependTo( $where );
}
for ( var id in mwCustomEditButtons ) {
var b = mwCustomEditButtons[id];
if ( !b.length ) {
continue;
}
createFuncBtn( id, b[0], b[1], b[2] );
delete mwCustomEditButtons[id];
}
}
$( function() {
gToolbar();
setTimeout( gToolbar, 2000 );
setTimeout( gToolbar, 6000 );
} );
// Summary buttons
function insertSummary ( txt ) {
if ( typeof txt !== 'string' ) {
txt = this.title;
}
var vv = $( '#wpSummary' ).val();
if ( vv.indexOf( txt ) !== -1 ) {
return;
}
if ( /[^,; \/]$/.test( vv ) ) {
vv += ',';
}
if ( /[^ ]$/.test( vv ) ) {
vv += ' ';
}
$( '#wpSummary' ).val( vv + txt );
}
function addSumButton ( btn, txt ) {
$( '<a title="' + txt + '">' + btn + '</a>' )
.appendTo( '#userSummaryButtonsA' )
.click( insertSummary );
}
$( function() {
var frm = document.getElementById( 'editform' );
if ( !mw.config.get( 'wgArticleId' ) || !frm || $( frm.wpSection ).val() === 'new' ) {
return;
}
mw.util.addCSS( '\
input#wpSummary { margin-bottom: 0 }\
#userSummaryButtonsA a { background:#cef; border:1px solid #adf; padding:0 2px;\
margin:0 2px;cursor:pointer; font-size:86%; color:#666 }\
#userSummaryButtonsA a:hover { background:#bdf; color:black; text-decoration:none }' );
$( '<div id=userSummaryButtonsA />' ).insertAfter( '#wpSummary' );
$.each(
[
'викиф|икация', 'оформл|ение', 'стил|евые правки', 'орфогр|афия',
'пункт|уация', 'ответ', 'комм|ентарий', 'кат|егория', 'шаб|лон',
'к удал|ению', 'иллюстрация', 'источ|ники', 'запр|ос источника',
'доп|олнение', 'уточн|ение', 'обнов|ление данных', 'закр|ыто', 'итог'
],
function ( i, s ) {
addSumButton( s.replace( /\|.*/, '' ), s.replace( /\|/, '' ) );
}
);
} );
// Wikificator
importMW( 'Wikificator' );
// Sig reminder
if ( mw.config.get( 'wgNamespaceNumber' ) % 2 ||
mw.config.get( 'wgNamespaceNumber' ) === 4
) {
$( function () {
var cp = document.getElementById( 'editpage-copywarn' ),
wpSave = document.getElementById( 'wpSave' );
if ( !cp || !wpSave ) {
return;
}
if ( mw.config.get( 'wgNamespaceNumber' ) === 4 &&
( !mw.config.get( 'wgTitle' ).match( '^(Форум[/ ]|Голосования/|Опросы/|Обсуждение правил/|Заявки на .*|Запросы.|Кандидаты в .*/|К (удалению|объединению|переименованию|разделению|улучшению)/|Рецензирование/|Проверка участников/|Инкубатор/(Мини-рецензирование|Форум[/ ]))' ) ||
mw.config.get( 'wgTitle' ).match( '/Архив' ) )
) {
return;
}
// FIXME: Use of "insertTags" is deprecated. Use mw.toolbar.insertTags instead.
var ins = ' <a href=\'javascript:insertTags(" ~~\~~","","")\'>~~\~~</a>';
cp.innerHTML += ' Не забудьте добавить к вашему сообщению подпись с помощью' + ins;
if ( $.inArray( 'autoconfirmed', mw.config.get( 'wgUserGroups' ) ) !== -1 && !window.sigWarning ) {
return;
}
//unreg/new users only
var warningDone = false;
wpSave.onclick = function() {
try {
if ( warningDone || document.editform.wpTextbox1.value.indexOf( '~~\~~' ) !== -1 ) {
return true;
}
warningDone = true;
cp.innerHTML = 'Пожалуйста, <b>подпишитесь</b>, добавив в конце' +
' своего сообщения' + ins + ' (<a href="' +
mw.config.get( 'wgArticlePath' ).replace( /\$1/, 'Википедия:Подписывайтесь' ) +
'" title="(ссылка откроется в новом окне)" target=_blank>подробнее ↗</a>)';
cp.style.background = '#FFD080';
cp.style.border = '1px solid orange';
return false;
} catch ( e ) {
return true;
}
};
} );
}
// Hack for Opera 11.6
if ( window.opera && /11\.6[01]/.test( window.opera.version() ) ) {
$( '#wpTextbox1' )
.mousedown( function() {
this.sT = this.scrollTop;
} )
.click( function() {
if ( this.scrollTop === 0 ) {
this.scrollTop = this.sT;
}
} );
}