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 <span class="mw-uctop">//            Add userHideAllSubsequent user setting.//            Fix issue reported by [[User talk:Markhurd/hidetopcontrib.js#Bug|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 [[Wikipedia:Added or removed characters|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. //<pre><nowiki> 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();      });    }}); //</nowiki></pre>//[[Category:Wikipedia scripts]]