Чемпион Южной Америки 1916 Чемпион Южной Америки 1917 Чемпион Южной Америки 1920 Чемпион Южной Америки 1923 Олимпийский чемпион и чемпион мира среди любителей 1924 Чемпион Южной Америки 1924 Чемпион Южной Америки 1926 Олимпийский чемпион и чемпион мира среди любителей 1928 Чемпион мира 1930 Чемпион Южной Америки 1935 Чемпион Южной Америки 1942 Чемпион мира 1950 Чемпион Южной Америки 1956 Чемпион Южной Америки 1959 (Эквадор) Чемпион Южной Америки 1967 Победитель Мундиалито 1980-81 Победитель Кубка Америки 1983 Победитель Кубка Америки 1987 Победитель Кубка Америки 1995 Победитель Кубка Америки 2011

MediaWiki:Gadget-common-action-edit.js — различия между версиями

Материал из CelestePedia
Перейти к: навигация, поиск
 
Строка 1: Строка 1:
runAsEarlyAsPossible( function () {
+
mw.hook( 'wikipage.content' ).add( function () {
 
// Автоматическое заполнение полей при добавлении новых тем сверху
 
// Автоматическое заполнение полей при добавлении новых тем сверху
 
var summary = $( '#wpSummary' ).val();
 
var summary = $( '#wpSummary' ).val();
Строка 10: Строка 10:
 
  mw.loader.load( 'ext.gadget.newTopicOnTop' );
 
  mw.loader.load( 'ext.gadget.newTopicOnTop' );
 
}
 
}
}, $( '#wpSummary' ), mw.hook( 'wikipage.content' ).add );
+
} );
  
 
// Секция гаджетов в панели инструментов
 
// Секция гаджетов в панели инструментов
 
if ( mw.user.options.get( 'usebetatoolbar' ) === 1 ) {
 
if ( mw.user.options.get( 'usebetatoolbar' ) === 1 ) {
var gadgetToolbarLocation = '#wikiEditor-section-main';
 
 
$.when(
 
$.when(
 
mw.loader.using( 'ext.wikiEditor' ),
 
mw.loader.using( 'ext.wikiEditor' ),
Строка 20: Строка 19:
 
).then( function() {
 
).then( function() {
 
function addGadgetsGroup() {
 
function addGadgetsGroup() {
gadgetToolbar();
 
 
 
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
 
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
 
'section': 'main',
 
'section': 'main',
Строка 29: Строка 26:
 
} );
 
} );
 
 
var $groupGadgets = $( '#wikiEditor-section-main .group-gadgets' ),
+
$groupGadgets = $( '#wikiEditor-section-main .group-gadgets' );
$groupFormat = $( '#wikiEditor-section-main .group-format' );
+
$groupFormat = $( '#wikiEditor-section-main .group-format' );
if ( $groupGadgets.length && $groupFormat.length ) {
 
$groupGadgets.insertBefore( $groupFormat );
 
}
 
 
 
if ( $groupGadgets.length ) {
 
if ( $groupGadgets.length ) {
 +
if ( $groupFormat.length ) {
 +
$groupGadgets.insertBefore( $groupFormat );
 +
}
 
mw.hook( 'wikieditor.toolbar.gadgetsgroup' ).fire();
 
mw.hook( 'wikieditor.toolbar.gadgetsgroup' ).fire();
 
}
 
}
 
}
 
}
 
 
 +
var $groupGadgets, $groupFormat;
 
addGadgetsGroup();
 
addGadgetsGroup();
if ( !$( '#wikiEditor-section-main .group-gadgets' ).length ) {
+
if ( !$groupGadgets.length ) {
 
// Лечение для случаев, когда панель инструментов поздно прорисовывается
 
// Лечение для случаев, когда панель инструментов поздно прорисовывается
 
setTimeout( addGadgetsGroup, 0 );
 
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 namespaceNumber = mw.config.get( 'wgNamespaceNumber' );
var $where = $( gadgetToolbarLocation );
+
if ( namespaceNumber % 2 || namespaceNumber === 4 || namespaceNumber === 104 ) {
if ( !$where.length ) return;  // Новая панель инструментов ещё не готова
+
$( function () {
 
+
var $textbox, matches, newLinesCountInitial, $tildes, $signReminderCommon, $signReminder,
$( '<div>' )
+
$copyrightWarning = $( '#editpage-copywarn' ),
.attr('id', 'gadget-toolbar' )
+
$saveButton = $( '#wpSave' ),
.prependTo( $where );
+
warningDone = false;
}
 
}
 
 
 
if ( mw.user.options.get( 'usebetatoolbar' ) !== 1 ) {
 
$( function() {
 
gadgetToolbar();
 
setTimeout( gadgetToolbar, 2000 );
 
setTimeout( gadgetToolbar, 6000 );
 
} );
 
}
 
  
// Напоминание о подписи
+
if ( !$copyrightWarning.length ||
if ( mw.config.get( 'wgNamespaceNumber' ) % 2 ||
+
!$saveButton.length ||
mw.config.get( 'wgNamespaceNumber' ) === 4 ||
+
// Пространства имён «Википедия» и «Проект»
mw.config.get( 'wgNamespaceNumber' ) === 104
+
( mw.config.get( 'wgNamespaceNumber' ) === 4 || mw.config.get( 'wgNamespaceNumber' ) === 104 ) &&
) {
+
( !mw.config.get( 'wgTitle' ).match(
$( 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:
 
 
'^(?:Форум[/ ]|Голосования/|Опросы/|Обсуждение правил/|Заявки на |Запросы|Кандидаты в .*/|' +
 
'^(?:Форум[/ ]|Голосования/|Опросы/|Обсуждение правил/|Заявки на |Запросы|Кандидаты в .*/|' +
 
'К (?:удалению|объединению|переименованию|разделению|улучшению|оценке источников|посредничеству)/|' +
 
'К (?:удалению|объединению|переименованию|разделению|улучшению|оценке источников|посредничеству)/|' +
Строка 102: Строка 73:
 
return;
 
return;
 
}
 
}
var ins = '<a href="javascript:mw.toolbar.insertTags(\' ~~\~~\', \'\', \'\');">~~\~~</a>';
+
 
$( '<div id="signReminder"></div>' )
+
$textbox = $( '#wpTextbox1' );
.insertAfter( '#editpage-copywarn' );
+
matches = $textbox.val().trim().match( /\n/g );
$( '<div class="signReminder-common">Не забудьте добавить к вашему сообщению подпись с помощью ' + ins + '</div>' )
+
newLinesCountInitial = matches ? matches.length : 0;
.appendTo( '#signReminder' );
+
 
if ( $.inArray( 'autoconfirmed', mw.config.get( 'wgUserGroups' ) ) !== -1 && !window.sigWarning ) {
+
$tildes = $( '<a>' )
 +
.attr( 'href', 'javascript:' )
 +
.text( '~~\~~' )
 +
.click( function () {
 +
$textbox.textSelection( 'encapsulateSelection', { pre: ' ~~\~~' } );
 +
} );
 +
$signReminderCommon = $( '<div>' )
 +
.addClass( 'signReminder-common' )
 +
.append(
 +
'Не забудьте добавить к вашему сообщению подпись с помощью ',
 +
$tildes
 +
);
 +
$signReminder = $( '<div>' )
 +
.attr( 'id', 'signReminder' )
 +
.append( $signReminderCommon )
 +
.insertAfter( $copyrightWarning );
 +
 
 +
if ( mw.config.get( 'wgUserGroups' ).indexOf( 'autoconfirmed' ) !== -1 && !window.sigWarning ) {
 
return;
 
return;
 
}
 
}
 +
 
// Только незарегистрированные/новые пользователи и те, кто включил предупреждение в личном JS строчкой
 
// Только незарегистрированные/новые пользователи и те, кто включил предупреждение в личном JS строчкой
 
// var sigWarning = true;
 
// var sigWarning = true;
var warningDone = false;
+
$saveButton.click( function () {
wpSave.onclick = function () {
 
 
try {
 
try {
var textboxContent = $( '#wpTextbox1' ).val();
+
var newLinesCount, $signReminderWarningbox, $tildesCopy,
matches = textboxContent.match( /\n/g );
+
textboxContent = $textbox.val();
var newLinesCount = matches ? matches.length : 0;
+
 
if ( warningDone ||
+
matches = textboxContent.trim().match( /\n/g );
 +
newLinesCount = matches ? matches.length : 0;
 +
 
 +
if ( textboxContent.indexOf( '~~\~~' ) !== -1 ||
 
$( '#wpMinoredit' ).prop( 'checked' ) ||
 
$( '#wpMinoredit' ).prop( 'checked' ) ||
 
newLinesCountInitial === newLinesCount ||
 
newLinesCountInitial === newLinesCount ||
textboxContent.indexOf( '~~\~~' ) !== -1
+
warningDone
 
) {
 
) {
 
return true;
 
return true;
 
}
 
}
 +
 
warningDone = true;
 
warningDone = true;
$( '.signReminder-common' ).remove();
+
$tildesCopy = $tildes.clone( true );
$( '<div class="warningbox signReminder-warningbox"></div>' )
+
$signReminderCommon.remove();
.appendTo( '#signReminder' );
+
$signReminderWarning = $( '<div>' )
$( '<div class="signReminder-warning">Пожалуйста, <strong>подпишитесь</strong>, добавив в конце своего сообщения&nbsp;' + ins + ' <small>(<a href="http://celeste-rus.ru/wiki/CelestePedia:Подписывайтесь" title="(Ссылка откроется в новом окне)" target="_blank">подробнее</a>)</small></div>' )
+
.addClass( 'signReminder-warning' )
.appendTo( '.signReminder-warningbox' );
+
.append( 'Пожалуйста, <strong>подпишитесь</strong>, добавив в конце своего сообщения ',
 +
$tildesCopy,
 +
' <small>(<a href="https://celeste-rus.ru/index.php/CelestePedia:Подписывайтесь" title="(Ссылка откроется в новом окне)" target="_blank">подробнее</a>)</small>'
 +
);
 +
$( '<div>' )
 +
.addClass( 'warningbox signReminder-warningbox' )
 +
.append( $signReminderWarning )
 +
.appendTo( $signReminder );
 
return false;
 
return false;
 
} catch ( e ) {
 
} catch ( e ) {
 
return true;
 
return true;
 
}
 
}
};
+
} );
 
} );
 
} );
 
}
 
}

Текущая версия на 14:21, 17 сентября 2022

mw.hook( 'wikipage.content' ).add( 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' );
	}
} );

// Секция гаджетов в панели инструментов
if ( mw.user.options.get( 'usebetatoolbar' ) === 1 ) {
	$.when(
		mw.loader.using( 'ext.wikiEditor' ),
		$.ready
	).then( function() {
		function addGadgetsGroup() {
			$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
				'section': 'main',
				'groups': {
					'gadgets': {}
				}
			} );
			
			$groupGadgets = $( '#wikiEditor-section-main .group-gadgets' );
			$groupFormat = $( '#wikiEditor-section-main .group-format' );
			if ( $groupGadgets.length ) {
				if ( $groupFormat.length ) {
					$groupGadgets.insertBefore( $groupFormat );
				}
				mw.hook( 'wikieditor.toolbar.gadgetsgroup' ).fire();
			}
		}
		
		var $groupGadgets, $groupFormat;
		addGadgetsGroup();
		if ( !$groupGadgets.length ) {
			// Лечение для случаев, когда панель инструментов поздно прорисовывается
			setTimeout( addGadgetsGroup, 0 );
		}
	} );
}

// Напоминание о подписи. Выводится в пространствах имён обсуждений, «Википедия» и «Проект».
var namespaceNumber = mw.config.get( 'wgNamespaceNumber' );
if ( namespaceNumber % 2 || namespaceNumber === 4 || namespaceNumber === 104 ) {
	$( function () {
		var $textbox, matches, newLinesCountInitial, $tildes, $signReminderCommon, $signReminder,
			$copyrightWarning = $( '#editpage-copywarn' ),
			$saveButton = $( '#wpSave' ),
			warningDone = false;

		if ( !$copyrightWarning.length ||
			!$saveButton.length ||
			// Пространства имён «Википедия» и «Проект»
			( mw.config.get( 'wgNamespaceNumber' ) === 4 || mw.config.get( 'wgNamespaceNumber' ) === 104 ) &&
			( !mw.config.get( 'wgTitle' ).match(
				// Википедия:
				'^(?:Форум[/ ]|Голосования/|Опросы/|Обсуждение правил/|Заявки на |Запросы|Кандидаты в .*/|' +
				'К (?:удалению|объединению|переименованию|разделению|улучшению|оценке источников|посредничеству)/|' +
				'Оспаривание |Рецензирование/|Проверка участников/|Фильтр правок/Срабатывания|' +
				// Проект:
				'Инкубатор/(?:Мини-рецензирование|Форум)|Социальная ответственность/Форум|Водные объекты|' +
				'Библиотека/(?:Требуются книги|Вопросы|Горячие темы|Технические вопросы)|' +
				'Графическая мастерская/Заявки|Добротные статьи/К лишению статуса|Грамотность/Запросы|.* запросы)'
			) ||
				mw.config.get( 'wgTitle' ).match( '/Архив' )
			)
		) {
			return;
		}

		$textbox = $( '#wpTextbox1' );
		matches = $textbox.val().trim().match( /\n/g );
		newLinesCountInitial = matches ? matches.length : 0;

		$tildes = $( '<a>' )
			.attr( 'href', 'javascript:' )
			.text( '~~\~~' )
			.click( function () {
				$textbox.textSelection( 'encapsulateSelection', { pre: ' ~~\~~' } );
			} );
		$signReminderCommon = $( '<div>' )
			.addClass( 'signReminder-common' )
			.append(
				'Не забудьте добавить к вашему сообщению подпись с помощью ',
				$tildes
			);
		$signReminder = $( '<div>' )
			.attr( 'id', 'signReminder' )
			.append( $signReminderCommon )
			.insertAfter( $copyrightWarning );

		if ( mw.config.get( 'wgUserGroups' ).indexOf( 'autoconfirmed' ) !== -1 && !window.sigWarning ) {
			return;
		}

		// Только незарегистрированные/новые пользователи и те, кто включил предупреждение в личном JS строчкой
		// var sigWarning = true;
		$saveButton.click( function () {
			try {
				var newLinesCount, $signReminderWarningbox, $tildesCopy,
					textboxContent = $textbox.val();

				matches = textboxContent.trim().match( /\n/g );
				newLinesCount = matches ? matches.length : 0;

				if ( textboxContent.indexOf( '~~\~~' ) !== -1 ||
					$( '#wpMinoredit' ).prop( 'checked' ) ||
					newLinesCountInitial === newLinesCount ||
					warningDone
				) {
					return true;
				}

				warningDone = true;
				$tildesCopy = $tildes.clone( true );
				$signReminderCommon.remove();
				$signReminderWarning = $( '<div>' )
					.addClass( 'signReminder-warning' )
					.append( 'Пожалуйста, <strong>подпишитесь</strong>, добавив в конце своего сообщения ',
						$tildesCopy,
						' <small>(<a href="https://celeste-rus.ru/index.php/CelestePedia:Подписывайтесь" title="(Ссылка откроется в новом окне)" target="_blank">подробнее</a>)</small>'
					);
				$( '<div>' )
					.addClass( 'warningbox signReminder-warningbox' )
					.append( $signReminderWarning )
					.appendTo( $signReminder );
				return false;
			} catch ( e ) {
				return true;
			}
		} );
	} );
}