User:Equazcion/LiveDiffLink.js

if (mw.config.get('wgAction') == 'history') { // Don't do anything unless we're on a History page.

// Grab the Compare buttons, create an empty link after each, and grab the empty links

var submitButton = $('.historysubmit:submit');

submitButton.after("");

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');

// Set the initial main diff link URL, text, & tooltip, add arrow between Compare button and link

displayDiffField.text("http://en.wikipedia.org/w/index.php?title=" + mw.config.get('wgPageName') + "&diff=" + displayDiffNew + "&oldid=" + displayDiffOld);

displayDiffField.attr("href", "http://en.wikipedia.org/w/index.php?title=" + mw.config.get('wgPageName') + "&diff=" + displayDiffNew + "&oldid=" + displayDiffOld);

displayDiffField.attr('title', 'http://en.wikipedia.org/w/index.php?title=' + mw.config.get('wgPageName') + '&diff=' + displayDiffNew + '&oldid=' + displayDiffOld);

displayDiffField.before("");

// 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');

// Add diff link before initial revision sizes. Using a link contained in a allows us to refer back to the entire added text using its class.

var displayDiffMobileNew = displayDiffSizeNew.before('(DIFF‎) . . ');

var displayDiffMobileOld = displayDiffSizeOld.before('(DIFF‎) . . ');

// Set tooltip for the size diff link

$('.historyDiffLink').find('a').attr('title', 'http://en.wikipedia.org/w/index.php?title=' + mw.config.get('wgPageName') + '&diff=' + displayDiffNew + '&oldid=' + displayDiffOld);

// 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');

// Update the main diff link URL, text, & tooltip

displayDiffField.attr("href", "http://en.wikipedia.org/w/index.php?title=" + mw.config.get('wgPageName') + "&diff=" + displayDiffNew + "&oldid=" + displayDiffOld);

displayDiffField.text("http://en.wikipedia.org/w/index.php?title=" + mw.config.get('wgPageName') + "&diff=" + displayDiffNew + "&oldid=" + displayDiffOld);

displayDiffField.attr('title', 'http://en.wikipedia.org/w/index.php?title=' + mw.config.get('wgPageName') + '&diff=' + displayDiffNew + '&oldid=' + displayDiffOld);

// 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');

// Add diff link before revision sizes

var displayDiffMobileNew = displayDiffSizeNew.before('(DIFF)‎ . . ');

var displayDiffMobileOld = displayDiffSizeOld.before('(DIFF) . . ');

// Set tooltip for the size diff link

$('.historyDiffLink').find('a').attr('title', 'http://en.wikipedia.org/w/index.php?title=' + mw.config.get('wgPageName') + '&diff=' + displayDiffNew + '&oldid=' + displayDiffOld);

});

}