MediaWiki:Gadget-liveDiffLink.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: https://terraria.gamepedia.com/User:Equazcion

$(document).ready( function() {
	if ( mw.config.get( 'wgAction' ) != 'history' ) { return; } // Don't do anything unless we're on a History page.

	var l10n = ( function() {
		var $text = {
			'linktext': {
				'en': 'DIFF',
				'uk': 'РІЗН',
			},
		};
		var $lang = mw.config.get( 'wgUserLanguage' ) || 'en';
		return function(key){
			return $text[key] && ($text[key][$lang] || $text[key].en) || '';
		};
	} )();

	var wgPageName = mw.config.get( 'wgPageName' );
	var wgScriptPath = mw.config.get( 'wgScriptPath' );

// Grab the Compare buttons, create an empty link after each, and grab the empty links
	var submitButton = $('.historysubmit:submit');
	submitButton.after("<a class='diffURL' style='border:#999 1px dashed; padding:2px 4px 2px 4px;'></a>");
	var displayDiffField = $('.diffURL');

// Grab the initial revision selections
	var displayDiffNew = $('[name="diff"]:checked').slice(0,1).attr('value');
	var displayDiffOld = $('[name="oldid"]:checked').slice(0,1).attr('value');

	var link = (
		'https://terraria.wiki.gg' + wgScriptPath + '/index.php?title=' + wgPageName + '&diff=' + displayDiffNew + '&oldid=' + displayDiffOld
		);

// Set the initial main diff link URL, text, & tooltip, add arrow between Compare button and link
	displayDiffField.text( link );
	displayDiffField.attr({ 'href':link, 'title':link });
	displayDiffField.before('<b> → </b>');

// Grab initial revision size fields
	var displayDiffSizeNew = $('[name="diff"]:checked').slice(0,1).parent('li').find('.history-size');
	var displayDiffSizeOld = $('[name="oldid"]:checked').slice(0,1).parent('li').find('.history-size');

	var difflink = (
		'<span class="historyDiffLink">(<a href="https://terraria.wiki.gg' + wgScriptPath + '/index.php?title=' + wgPageName + 
		'&diff=' + displayDiffNew + '&oldid=' + displayDiffOld + '">' + l10n( 'linktext' ) + '</a>) . . </span>'
		);

// Add diff link before initial revision sizes. Using a link contained in a <span> allows us to refer back to the entire added text using its class.
	var displayDiffMobileNew = displayDiffSizeNew.before( difflink );
	var displayDiffMobileOld = displayDiffSizeOld.before( difflink );

// Set tooltip for the size diff link
	$('.historyDiffLink').find('a').attr( 'title', link );

// Set the Click event function for radio buttons
	$(":radio").click(function(){

	// Clear existing revision size links
		$('.historyDiffLink').remove();

	// Grab the revision selection, place in appropriate var
		if ( $(this).attr('name') == 'oldid' ) displayDiffOld = $(this).attr('value');
		if ( $(this).attr('name') == 'diff' ) displayDiffNew = $(this).attr('value');

		var link = (
			'https://terraria.wiki.gg' + wgScriptPath + '/index.php?title=' + wgPageName + '&diff=' + displayDiffNew + '&oldid=' + displayDiffOld
			);
	// Update the main diff link URL, text, & tooltip
		displayDiffField.text( link );
		displayDiffField.attr({ 'href':link, 'title':link });

	// Grab new revision size fields
		displayDiffSizeNew = $('[name="diff"]:checked').slice(0,1).parent('li').find('.history-size');
		displayDiffSizeOld = $('[name="oldid"]:checked').slice(0,1).parent('li').find('.history-size');


		var difflink = (
			'<span class="historyDiffLink">(<a href="https://terraria.wiki.gg' + wgScriptPath + '/index.php?title=' + wgPageName + 
			'&diff=' + displayDiffNew + '&oldid=' + displayDiffOld + '">' + l10n( 'linktext' ) + '</a>) . . </span>'
			);
	// Add diff link before revision sizes
		var displayDiffMobileNew = displayDiffSizeNew.before( difflink );
		var displayDiffMobileOld = displayDiffSizeOld.before( difflink );

	// Set tooltip for the size diff link
		$('.historyDiffLink').find('a').attr('title', link);

	});
});