User:Equazcion/DynaThank.js

if (mw.config.get('wgAction') == 'history'){

// Append the toggle link

$('#histlegend hr')

.before(' · ' +

'' +

'Thank a user' +

'');

// Iterate through the History lines and hide the thank links, also remove its displayed pipe separator (|)

$('ul#pagehistory li').each(function(){

if ($(this).find('.mw-thanks-thank-link').length > 0){

$(this).find('.mw-thanks-thank-link').attr('hidden','').css('color','#910300');

$(this).contents().filter(function(){

return this.nodeType != 1 && $.trim($(this).text()) != '';

}).slice(-2, -1).replaceWith('');

}

});

// Define the animation that plays when toggling to momentarily highlight lines where thank is being displayed

function flash(obj){

obj.css('transition','');

obj.css('background','#FFF2F2');

setTimeout(function(){

obj.css('transition','background-color 500ms ease-out');

setTimeout(function(){

obj.css('background','');

setTimeout(function(){

obj.css('transition','');

},500);

},50);

},50);

}

// Set the toggle link click function

$('.dynathank').click(function(){

if ($('.dynathank').hasClass('dtoff')){

$('.dynathank').removeClass('dtoff');

// Iterate through the History lines, displaying the thank links and re-inserting their pipe separators (|)

$('ul#pagehistory li').each(function(){

if ($(this).find('.mw-thanks-thank-link').length > 0){

flash($(this));

$(this).find('.mw-thanks-thank-link').before(' | ');

$(this).find('.mw-thanks-thank-link').fadeIn(200);

}

});

} else {

$('.dynathank').addClass('dtoff');

// Iterate through the History lines, hiding the thank links and removing their pipe separators (|)

$('ul#pagehistory li').each(function(){

if ($(this).find('.mw-thanks-thank-link').length > 0){

flash($(this));

$(this).find('.mw-thanks-thank-link').fadeOut(200, function(){

$(this).parent().contents().filter(function(){

return this.nodeType != 1 && $.trim($(this).text()) != '';

}).slice(-2, -1).replaceWith('');

});

}

});

}

});

}

/* Thank link creation code (for use with li.each), would become useful if history thank links are removed in MediaWiki:

var rev = $(this).find('input:first').attr('value');

$(this).find('span.mw-history-undo').after('');

  • /