MediaWiki:Gadget-recentEditLinks.js

Матеріал з Terraria Wiki
Перейти до навігації Перейти до пошуку

Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.

  • Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
  • Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
  • Internet Explorer / Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5
  • Opera: натисніть Ctrl-F5
// By Equazcion: http://terraria.gamepedia.com/User:Equazcion
// and Volodyslav: https://terraria.wiki.gg/wiki/User:Volodyslav

var l10n = (function(){
	var $text = {
		'undoLinktext': {
			'en': 'undo',
			'de': 'rückgängig machen',
			'fr': 'annuler',
			'ru': 'отменить',
			'uk': 'скасувати',
		},
		'undoHovertext': {
			'en': 'Undo this edit',
			'de': 'Diese Bearbeitung rückgängig machen',
			'fr': 'Annuler cette modification',
			'ru': 'Отменить эту правку',
			'uk': 'Скасувати це редагування',
		},
		'editLinktext': {
			'en': 'edit',
			'de': 'bearbeiten',
			'fr': 'modifier',
			'ru': 'править',
			'uk': 'редагувати',
		},
		'editHovertext': {
			'en': 'Edit: ',
			'de': 'Bearbeiten: ',
			'fr': 'Modifier ',
			'ru': 'Править ',
			'uk': 'Редагувати: ',
		},
	}
	var $lang = mw.config.get( 'wgUserLanguage' ) || 'en';
	return function(key){
		return $text[key] && ($text[key][$lang] || $text[key]['en']) || '';
	}
})();

var editLinkPre = [
	'<a title="' + l10n('editHovertext'),
	'" href="' + mw.config.get( 'wgScriptPath' ) + '/index.php?title=',
	'&action=edit">' + l10n('editLinktext') + '</a>'
	];
var undoLinkPre = [
	'<a title="' + l10n('undoHovertext') + '" href="',
	'&action=edit">' + l10n('undoLinktext') + '</a>'
	];

$(document).ready( function() {

	// get lines
	$('li[class*="mw-line"]').each(function(){
		var $this = $(this);
		// if has history link
		if ( !$this.find('a.mw-changeslist-history').length ) { return; }
		// get title
		var receditTitle = $this.find('a.mw-changeslist-title').attr('title');
		// create undo link from diff link (if it's not a new page)
		if ( !$this.find('abbr.newpage').length ) {
			var receditUndoHref = (
				$this.find('a.mw-changeslist-diff').attr('href')
				.replace(/&curid=[^&]*/, '')
				.replace(/&diff=/, '&undo=')
				.replace(/&oldid=/, '&undoafter=')
				);
			var receditUndoLink = (
				undoLinkPre[0] + receditUndoHref + undoLinkPre[1]
				);
		} else { var receditUndoLink = '' }
		// create edit link
		var receditEditLink = ( editLinkPre[0] + receditTitle + 
			editLinkPre[1] + receditTitle + editLinkPre[2] );
		// adding links
		$this.find('div.mw-changeslist-links').append(
			'<span>' + receditEditLink + '</span>' + 
			( receditUndoLink ? '<span>' + receditUndoLink + '</span>' : '' )
			);
	});
});