MediaWiki:Gadget-common-action-edit.js

Материал из Викиучебника — открытых книг для открытого мира

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
//[[MediaWiki:Editpage.js]] = [[w:MediaWiki:Editpage.js]] with some 'project' changes
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 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( '^(Общий форум|Планы и заявки|Голосования/|Опросы/|Обсуждение правил/|Заявки на .*|Запросы.|Кандидаты в .*/|К (удалению|объединению|переименованию|разделению|улучшению)/|Форум администраторов)' ) ||
				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;
		}
		// Только незарегистрированные/новые пользователи
		var warningDone = false;
		wpSave.onclick = function() {
			try {
				if ( warningDone || document.editform.wpTextbox1.value.indexOf( '~~\~~' ) !== -1 ) {
					return true;
				}
				warningDone = true;
				$( '.signReminder-common' ).remove();
				$( '<div class="warningbox signReminder-warningbox"></div>' )
					.appendTo( '#signReminder' );
				$( '<div class="signReminder-warning">Пожалуйста, <strong>подпишитесь</strong>, добавив в конце своего сообщения&nbsp;' + ins + ' <small>(<a href="https://ru.wikipedia.org/wiki/Википедия:Подписывайтесь" title="(ссылка откроется в новом окне)" target="_blank">подробнее</a>)</small></div>' )
					.appendTo( '.signReminder-warningbox' );
				return false;
			} catch ( e ) {
				return true;
			}
		};
	} );
}