MediaWiki:Gadget-liveDiffLink.js
Перейти до навігації
Перейти до пошуку
Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.
- 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);
});
});