MediaWiki:Gadget-common-action-history.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.
/**
 * З-за невялікага памеру няма сэнсу выдаткоўваць на загрузку гэтага гаджэта асобны запыт; ён грузіцца
 * безумоўна (на падставе «|default» у [[MediaWiki:Gadgets-definition]]). Калі код вырасце да
 * некалькіх кілабайт, можна дэлегіраваць яго загрузку [[MediaWiki:Common.js]] і загружаць па
 * ўмове/ўмовам.
 * 
 * Паколькі на цяперані час гаджэт змяшчае толькі функцыі для зарэгістраваных
 * удзельнікаў, ён грузіцца толькі ім. Калі гэта зменіцца, выдаліце «|rights=minoredit» з
 * [[MediaWiki:Gadgets-definition]] для гэтага гаджэта.
 */
if ( mw.config.get( 'wgAction' ) === 'history' ) {
	$( function () {
		// Функцыя для дадання спасылкі ў меню пад загалоўкам
		function addSubLink( $link, toolName ) {
			$( '.mw-history-subtitle' ).append(
				' • ',
				$link
					.attr( 'href', 'javascript:' )
					.css( 'font-style', 'italic' )
					.click( showRevertToLinks )
			);
		}

		// Дадаць спасылкі «Вярнуць да» для аўтадаглядчыкаў, даглядчыкаў і адміністратараў
		var wgUserGroups = mw.config.get( 'wgUserGroups' );
		if ( wgUserGroups && /autoreview|editor|sysop/.test( wgUserGroups.join( '|' ) ) ) {  // У тым ліку autoeditor
			addSubLink( $( '<a>' )
				.attr( 'title', 'Дадаць спасылкі для вяртання да старых версій' )
				.text( 'Вярнуць да …' )
			);
		}

		// Іконкі «абноўлена пасля майго апошняга наведвання»
		$( '.updatedmarker' ).attr( 'title', 'абноўлена пасля майго апошняга наведвання' );

		function plural( number, one, few, many ) {
			number = Math.abs( number ) % 100;
			if ( number < 10 || number > 20 ) {
				var x = number % 10;
				if ( x == 1 ) {
					return one;
				}
				if ( 0 < x && x < 5 ) {
					return few;
				}
			}
			return many;
		}

		function showRevertToLinks( e ) {
			e.preventDefault();
			if ( !window.revertLinksCSS ) {
				appendRevertToLinks();
			}
			revertLinksCSS.disabled = false;
			setTimeout( function () {
				revertLinksCSS.disabled = true;
			}, 5000 );
		}

		function appendRevertToLinks() {
			var $ul = $( '#pagehistory' );
			if ( !$ul.length ) {
				alert( 'Гісторыя версій старонкі пустая' );
				return;
			}
			var $li, $link, version, user, url,
				$lis = $ul.find( 'li' );
			for (var i = 2; i < $lis.length; i++ ) {
				$li = $lis.eq( i );
				$link = $li.find( '.mw-changeslist-date' );
				version = $li.find( 'input' ).val();
				user = $li.find( 'a.mw-userlink' ).text();
				url = $link.attr( 'href' ) + '&action=edit&summary=' + encodeURIComponent(
					i + ' ' + plural( i, 'праўка', 'праўкі', 'правак' ) + ' [[ВП:ВЯРНУЦЬ ДА|' +
					plural( i, 'вернута', 'вернуты', 'вернута' ) + ']] да версіі ' + version + (user ? ' ' + user : '') + ': '
				) + '#wpSummary';
				$link.after(
					' (',
					$( '<a>' )
						.attr( 'href', url )
						.attr( 'title', 'Вярнуць гэтую версію' )
						.addClass( 'revertTo' )
						.text( 'вярнуць' ),
					')'
				);
			}
			revertLinksCSS = mw.util.addCSS( '.revertTo { font-weight: bold; }' );  // Глабальная пераменная
		}
	} );
}