MediaWiki:Gadget-common-action-edit.js

З Вікіпедыі, свабоднай энцыклапедыі

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

  • Firefox / Safari: націсніце Reload, утрымліваючы Shift, або націсніце Ctrl-F5 ці Ctrl-R (⌘-R на Макінтошах)
  • Google Chrome: Націсніце Ctrl-Shift-R (⌘-Shift-R на Mac)
  • Internet Explorer / Edge: націсніце Refresh, утрымліваючы Ctrl, або націсніце Ctrl-F5
  • Opera: Увайдзіце Menu → Settings (Opera → Preferences на Mac), далей Privacy & security → Clear browsing data → Cached images and files.
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://ru.wikipedia.org/wiki/Википедия:Подписывайтесь" title="(Спасылка адкрыецца ў новым акне)" target="_blank">падрабязней</a>)</small>'
					);
				$( '<div>' )
					.addClass( 'warningbox signReminder-warningbox' )
					.append( $signReminderWarning )
					.appendTo( $signReminder );
				return false;
			} catch ( e ) {
				return true;
			}
		} );
	} );
}