MediaWiki:Gadget-common-action-edit.js — различия между версиями
Материал из CelestePedia
SoulTrain (обсуждение | вклад) м |
SoulTrain (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | /* | + | runAsEarlyAsPossible( function () { |
+ | // Автоматическое заполнение полей при добавлении новых тем сверху | ||
+ | var summary = $( '#wpSummary' ).val(); | ||
+ | if ( decodeURIComponent( location.search ).search( /[?&]summary=\/\*[+ ]*\*\// ) !== -1 || | ||
+ | ( mw.config.get( 'wgAction' ) === 'submit' && | ||
+ | summary !== undefined && | ||
+ | summary.search( /\/\*\s*\*\// ) !== -1 | ||
+ | ) | ||
+ | ) { | ||
+ | mw.loader.load( 'ext.gadget.newTopicOnTop' ); | ||
+ | } | ||
+ | }, $( '#wpSummary' ), mw.hook( 'wikipage.content' ).add ); | ||
− | // | + | // Секция гаджетов в панели инструментов |
− | + | if ( mw.user.options.get( 'usebetatoolbar' ) === 1 ) { | |
− | + | var gadgetToolbarLocation = '#wikiEditor-section-main'; | |
− | + | $.when( | |
− | + | mw.loader.using( 'ext.wikiEditor' ), | |
− | + | $.ready | |
− | function | + | ).then( function() { |
− | + | function addGadgetsGroup() { | |
− | + | gadgetToolbar(); | |
− | } | + | |
− | + | $( '#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 ); |
− | + | } | |
− | + | ||
− | + | if ( $groupGadgets.length ) { | |
− | + | mw.hook( 'wikieditor.toolbar.gadgetsgroup' ).fire(); | |
− | + | } | |
− | + | } | |
− | + | ||
− | } | + | addGadgetsGroup(); |
− | + | if ( !$( '#wikiEditor-section-main .group-gadgets' ).length ) { | |
− | + | // Лечение для случаев, когда панель инструментов поздно прорисовывается | |
− | + | setTimeout( addGadgetsGroup, 0 ); | |
− | + | } | |
− | + | } ); | |
− | + | } else if ( mw.user.options.get( 'showtoolbar' ) === 1 ) { | |
− | + | var gadgetToolbarLocation = '#toolbar'; | |
− | + | importScript( 'MediaWiki:ToolbarOld.js' ); | |
− | + | } else { | |
− | } | + | var gadgetToolbarLocation = '#editform'; |
− | + | importScript( 'MediaWiki:ToolbarNone.js' ); | |
− | |||
− | |||
− | |||
} | } | ||
+ | function gadgetToolbar() { | ||
+ | if ( !$( '#gadget-toolbar' ).length ) { | ||
+ | var $where = $( gadgetToolbarLocation ); | ||
+ | if ( !$where.length ) return; // Новая панель инструментов ещё не готова | ||
− | + | $( '<div>' ) | |
− | + | .attr('id', 'gadget-toolbar' ) | |
− | + | .prependTo( $where ); | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | + | if ( mw.user.options.get( 'usebetatoolbar' ) !== 1 ) { | |
− | + | $( function() { | |
− | + | gadgetToolbar(); | |
− | + | setTimeout( gadgetToolbar, 2000 ); | |
− | + | setTimeout( gadgetToolbar, 6000 ); | |
− | + | } ); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | function | + | // Напоминание о подписи |
− | + | if ( mw.config.get( 'wgNamespaceNumber' ) % 2 || | |
− | + | mw.config.get( 'wgNamespaceNumber' ) === 4 || | |
− | + | mw.config.get( 'wgNamespaceNumber' ) === 104 | |
− | + | ) { | |
− | + | $( function () { | |
+ | var matches = $( '#wpTextbox1' ).val().match( /\n/g ); | ||
+ | var newLinesCountInitial = matches ? matches.length : 0; | ||
+ | var copywarn = document.getElementById( 'editpage-copywarn' ), | ||
+ | wpSave = document.getElementById( 'wpSave' ); | ||
+ | if ( !copywarn || !wpSave ) { | ||
+ | return; | ||
+ | } | ||
+ | if ( ( mw.config.get( 'wgNamespaceNumber' ) === 4 || mw.config.get( 'wgNamespaceNumber' ) === 104 ) && | ||
+ | ( !mw.config.get( 'wgTitle' ).match( | ||
+ | // CelestePedia: | ||
+ | '^(?:Форум[/ ]|Голосования/|Опросы/|Обсуждение правил/|Заявки на |Запросы|Кандидаты в .*/|' + | ||
+ | 'К (?:удалению|объединению|переименованию|разделению|улучшению|оценке источников|посредничеству)/|' + | ||
+ | 'Оспаривание |Рецензирование/|Проверка участников/|Фильтр правок/Срабатывания|' + | ||
+ | // Проект: | ||
+ | 'Инкубатор/(?:Мини-рецензирование|Форум)|Социальная ответственность/Форум|Водные объекты|' + | ||
+ | 'Библиотека/(?:Требуются книги|Вопросы|Горячие темы|Технические вопросы)|' + | ||
+ | 'Графическая мастерская/Заявки|Добротные статьи/К лишению статуса|Грамотность/Запросы|.* запросы)' | ||
+ | ) || | ||
+ | mw.config.get( 'wgTitle' ).match( '/Архив' ) | ||
+ | ) | ||
+ | ) { | ||
+ | return; | ||
+ | } | ||
+ | var ins = '<a href="javascript:mw.toolbar.insertTags(\' ~~\~~\', \'\', \'\');">~~\~~</a>'; | ||
+ | $( '<div id="signReminder"></div>' ) | ||
+ | .insertAfter( '#editpage-copywarn' ); | ||
+ | $( '<div class="signReminder-common">Не забудьте добавить к вашему сообщению подпись с помощью ' + ins + '</div>' ) | ||
+ | .appendTo( '#signReminder' ); | ||
+ | if ( $.inArray( 'autoconfirmed', mw.config.get( 'wgUserGroups' ) ) !== -1 && !window.sigWarning ) { | ||
+ | return; | ||
+ | } | ||
+ | // Только незарегистрированные/новые пользователи и те, кто включил предупреждение в личном JS строчкой | ||
+ | // var sigWarning = true; | ||
+ | var warningDone = false; | ||
+ | wpSave.onclick = function () { | ||
+ | try { | ||
+ | var textboxContent = $( '#wpTextbox1' ).val(); | ||
+ | matches = textboxContent.match( /\n/g ); | ||
+ | var newLinesCount = matches ? matches.length : 0; | ||
+ | if ( warningDone || | ||
+ | $( '#wpMinoredit' ).prop( 'checked' ) || | ||
+ | newLinesCountInitial === newLinesCount || | ||
+ | textboxContent.indexOf( '~~\~~' ) !== -1 | ||
+ | ) { | ||
+ | return true; | ||
+ | } | ||
+ | warningDone = true; | ||
+ | $( '.signReminder-common' ).remove(); | ||
+ | $( '<div class="warningbox signReminder-warningbox"></div>' ) | ||
+ | .appendTo( '#signReminder' ); | ||
+ | $( '<div class="signReminder-warning">Пожалуйста, <strong>подпишитесь</strong>, добавив в конце своего сообщения ' + ins + ' <small>(<a href="http://celeste-rus.ru/wiki/CelestePedia:Подписывайтесь" title="(Ссылка откроется в новом окне)" target="_blank">подробнее</a>)</small></div>' ) | ||
+ | .appendTo( '.signReminder-warningbox' ); | ||
+ | return false; | ||
+ | } catch ( e ) { | ||
+ | return true; | ||
+ | } | ||
+ | }; | ||
+ | } ); | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Версия 15:45, 22 апреля 2018
runAsEarlyAsPossible( function () {
// Автоматическое заполнение полей при добавлении новых тем сверху
var summary = $( '#wpSummary' ).val();
if ( decodeURIComponent( location.search ).search( /[?&]summary=\/\*[+ ]*\*\// ) !== -1 ||
( mw.config.get( 'wgAction' ) === 'submit' &&
summary !== undefined &&
summary.search( /\/\*\s*\*\// ) !== -1
)
) {
mw.loader.load( 'ext.gadget.newTopicOnTop' );
}
}, $( '#wpSummary' ), mw.hook( 'wikipage.content' ).add );
// Секция гаджетов в панели инструментов
if ( mw.user.options.get( 'usebetatoolbar' ) === 1 ) {
var gadgetToolbarLocation = '#wikiEditor-section-main';
$.when(
mw.loader.using( 'ext.wikiEditor' ),
$.ready
).then( function() {
function addGadgetsGroup() {
gadgetToolbar();
$( '#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 );
}
if ( $groupGadgets.length ) {
mw.hook( 'wikieditor.toolbar.gadgetsgroup' ).fire();
}
}
addGadgetsGroup();
if ( !$( '#wikiEditor-section-main .group-gadgets' ).length ) {
// Лечение для случаев, когда панель инструментов поздно прорисовывается
setTimeout( addGadgetsGroup, 0 );
}
} );
} else if ( mw.user.options.get( 'showtoolbar' ) === 1 ) {
var gadgetToolbarLocation = '#toolbar';
importScript( 'MediaWiki:ToolbarOld.js' );
} else {
var gadgetToolbarLocation = '#editform';
importScript( 'MediaWiki:ToolbarNone.js' );
}
function gadgetToolbar() {
if ( !$( '#gadget-toolbar' ).length ) {
var $where = $( gadgetToolbarLocation );
if ( !$where.length ) return; // Новая панель инструментов ещё не готова
$( '<div>' )
.attr('id', 'gadget-toolbar' )
.prependTo( $where );
}
}
if ( mw.user.options.get( 'usebetatoolbar' ) !== 1 ) {
$( function() {
gadgetToolbar();
setTimeout( gadgetToolbar, 2000 );
setTimeout( gadgetToolbar, 6000 );
} );
}
// Напоминание о подписи
if ( mw.config.get( 'wgNamespaceNumber' ) % 2 ||
mw.config.get( 'wgNamespaceNumber' ) === 4 ||
mw.config.get( 'wgNamespaceNumber' ) === 104
) {
$( function () {
var matches = $( '#wpTextbox1' ).val().match( /\n/g );
var newLinesCountInitial = matches ? matches.length : 0;
var copywarn = document.getElementById( 'editpage-copywarn' ),
wpSave = document.getElementById( 'wpSave' );
if ( !copywarn || !wpSave ) {
return;
}
if ( ( mw.config.get( 'wgNamespaceNumber' ) === 4 || mw.config.get( 'wgNamespaceNumber' ) === 104 ) &&
( !mw.config.get( 'wgTitle' ).match(
// CelestePedia:
'^(?:Форум[/ ]|Голосования/|Опросы/|Обсуждение правил/|Заявки на |Запросы|Кандидаты в .*/|' +
'К (?:удалению|объединению|переименованию|разделению|улучшению|оценке источников|посредничеству)/|' +
'Оспаривание |Рецензирование/|Проверка участников/|Фильтр правок/Срабатывания|' +
// Проект:
'Инкубатор/(?:Мини-рецензирование|Форум)|Социальная ответственность/Форум|Водные объекты|' +
'Библиотека/(?:Требуются книги|Вопросы|Горячие темы|Технические вопросы)|' +
'Графическая мастерская/Заявки|Добротные статьи/К лишению статуса|Грамотность/Запросы|.* запросы)'
) ||
mw.config.get( 'wgTitle' ).match( '/Архив' )
)
) {
return;
}
var ins = '<a href="javascript:mw.toolbar.insertTags(\' ~~\~~\', \'\', \'\');">~~\~~</a>';
$( '<div id="signReminder"></div>' )
.insertAfter( '#editpage-copywarn' );
$( '<div class="signReminder-common">Не забудьте добавить к вашему сообщению подпись с помощью ' + ins + '</div>' )
.appendTo( '#signReminder' );
if ( $.inArray( 'autoconfirmed', mw.config.get( 'wgUserGroups' ) ) !== -1 && !window.sigWarning ) {
return;
}
// Только незарегистрированные/новые пользователи и те, кто включил предупреждение в личном JS строчкой
// var sigWarning = true;
var warningDone = false;
wpSave.onclick = function () {
try {
var textboxContent = $( '#wpTextbox1' ).val();
matches = textboxContent.match( /\n/g );
var newLinesCount = matches ? matches.length : 0;
if ( warningDone ||
$( '#wpMinoredit' ).prop( 'checked' ) ||
newLinesCountInitial === newLinesCount ||
textboxContent.indexOf( '~~\~~' ) !== -1
) {
return true;
}
warningDone = true;
$( '.signReminder-common' ).remove();
$( '<div class="warningbox signReminder-warningbox"></div>' )
.appendTo( '#signReminder' );
$( '<div class="signReminder-warning">Пожалуйста, <strong>подпишитесь</strong>, добавив в конце своего сообщения ' + ins + ' <small>(<a href="http://celeste-rus.ru/wiki/CelestePedia:Подписывайтесь" title="(Ссылка откроется в новом окне)" target="_blank">подробнее</a>)</small></div>' )
.appendTo( '.signReminder-warningbox' );
return false;
} catch ( e ) {
return true;
}
};
} );
}