MediaWiki:Editpage.js
Материал из Wikitranslators
(Различия между версиями)
(Новая страница: «function addExtraChars1(){ var block = document.getElementById ('editpage-specialchars'); if (!block) return; block.innerHTML = '<a href=\'javascript:inser...») |
Dimetr (обсуждение | вклад) (обновление) |
||
Строка 1: | Строка 1: | ||
− | function | + | // 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 img { padding:2px; }' + | ||
+ | '#gadget-toolbar { height:26px; margin:3px; }' ); | ||
+ | $.when( | ||
+ | mw.loader.using( 'ext.wikiEditor.toolbar' ), | ||
+ | $.ready | ||
+ | ).then( function() { | ||
+ | $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { | ||
+ | 'section': 'main', | ||
+ | 'groups': { | ||
+ | 'gadgets': {} | ||
+ | } | ||
+ | } ); | ||
+ | var $groupGadgets = $( '#wikiEditor-section-main .group-gadgets' ), | ||
+ | $groupFormat = $( '#wikiEditor-section-main .group-format' ); | ||
+ | if ( $groupGadgets.length && $groupFormat.length ) { | ||
+ | $groupGadgets.insertBefore( $groupFormat ); | ||
+ | } | ||
+ | } ); | ||
+ | } 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 || | ||
+ | mw.config.get( 'wgNamespaceNumber' ) === 104 | ||
+ | ) { | ||
+ | $( function () { | ||
+ | var cp = document.getElementById( 'editpage-copywarn' ), | ||
+ | wpSave = document.getElementById( 'wpSave' ); | ||
+ | if ( !cp || !wpSave ) { | ||
+ | return; | ||
+ | } | ||
+ | if ( ( mw.config.get( 'wgNamespaceNumber' ) === 4 || mw.config.get( 'wgNamespaceNumber' ) === 104 ) && | ||
+ | ( !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; | ||
+ | } | ||
+ | } ); | ||
} | } | ||
− |
Версия 07:01, 27 февраля 2016
// 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 img { padding:2px; }' + '#gadget-toolbar { height:26px; margin:3px; }' ); $.when( mw.loader.using( 'ext.wikiEditor.toolbar' ), $.ready ).then( function() { $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { 'section': 'main', 'groups': { 'gadgets': {} } } ); var $groupGadgets = $( '#wikiEditor-section-main .group-gadgets' ), $groupFormat = $( '#wikiEditor-section-main .group-format' ); if ( $groupGadgets.length && $groupFormat.length ) { $groupGadgets.insertBefore( $groupFormat ); } } ); } 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 || mw.config.get( 'wgNamespaceNumber' ) === 104 ) { $( function () { var cp = document.getElementById( 'editpage-copywarn' ), wpSave = document.getElementById( 'wpSave' ); if ( !cp || !wpSave ) { return; } if ( ( mw.config.get( 'wgNamespaceNumber' ) === 4 || mw.config.get( 'wgNamespaceNumber' ) === 104 ) && ( !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; } } ); }