User:Markhurd/hidetopcontrib.js

//User:Markhurd/hidetopcontrib.js

// Based on User:Ais523/hidetopcontrib.js

// By a suggestion by User:Discospinster

// 090325 MEH Fixed where it is not hiding all (top)s, starting with redirects

// and continuing after any regex mismatch.

// 090615 MEH Cater for new

// Add userHideAllSubsequent user setting.

// Fix issue reported by Lenore.

// 100407 MEH Use simplified regex that works on IE8.

// 100413 MEH Cater for new pages.

// 100428 MEH Cater better for new pages.

// 100519 User:Ale_jrb Cater for Single-Revision Deletion, newly available to Admins.

// 110520 User:Waldir Better page check.

// 120206 MEH Cater for IE renderer differences.

// 120207 MEH Cater for all skins.

// 120321 MEH Cater for WP:AORC by removing support for top not using the mw-uctop class.

// 121123 User:Waldir Allow user configuration of link location and text.

// 150121 MEH Remove legacy Javascript.

// 170608 Fixed dependency declaration for mediawiki.util

// 180413 User:Amorymeltzer allow for compatibility with a couple other scripts present on contributions page

// 200107 User:Suffusion_of_Yellow use mw-contributions-title class instead of guessing which link is to the title

// This script hides lines according to who has the top contribution for a page.

// If userHideAllSubsequent=true, all subsequent contributions are hidden too, more like watchlists.

//

if ( typeof userHideAllSubsequent == 'undefined' )

userHideAllSubsequent = false;

if ( typeof portletId == 'undefined' )

portletId = 'p-cactions';

if ( typeof portletText == 'undefined' )

portletText = 'show/hide top';

function hidetopcontrib()

{

var i,li,a;

li = document.getElementById( "bodyContent" );

if ( li === null )

li = document.getElementById( "article" );

if ( li === null )

li = document.getElementById( "mw_main" );

li = li.getElementsByTagName( "li" );

i = -1;

a = new Array();

while ( ++i < li.length )

{

var s,t,links;

links = li[i].getElementsByClassName( "mw-contributions-title" );

if ( typeof links == 'undefined' || links.length != 1 )

continue;

t = links[0].innerHTML;

if ( /* li[i].getElementsByTagName("strong").length>0|| */ li[i].innerHTML.match(/mw\-uctop/i) != undefined )

s = "none";

else

s = "";

if ( a[t] != undefined )

s = userHideAllSubsequent ? "none" : a[t];

else

a[t] = s;

if ( s != "" )

// li[i].innerHTML=li[i].innerHTML + ":'" + s + "'";

li[i].style.display = ( li[i].style.display == "none" ? "list-item" : "none" );

}

}

$.when( mw.loader.using('mediawiki.util'), $.ready).done( function() {

if ( mw.config.get( 'wgCanonicalSpecialPageName' ) == 'Contributions') {

var htPortletLink = mw.util.addPortletLink( portletId, '#', portletText, 'ca-hidetop',

"Show/hide pages for which you're the top contributor", '' );

$( htPortletLink ).click( function ( e ) {

e.preventDefault();

hidetopcontrib();

});

}

});

//

//Category:Wikipedia scripts