User:Markhurd/watchcontrib.js

// Testing for 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.

// 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 wcPortletId == 'undefined' ) wcPortletId = 'p-cactions'; if ( typeof wcPortletText == 'undefined' ) wcPortletText = 'show/hide top (debug)'; function watchcontrib {  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,b; links = li[i].getElementsByTagName( "a" ); b = 2; if ( li[i].innerHTML.match( /]*class *= *(['"])?newpage\1/i ) == undefined )      b++;     if ( li[i].innerHTML.match( /class *= *(['"])?mw-revdelundel-link\1/i ) != undefined ) b++; if ( typeof links == 'undefined' || links.length<( b + 1 ) ) continue; t = links[b].innerHTML; if ( li[i].innerHTML.match(/mw\-uctop/i) != undefined || ( typeof wcRegex != 'undefined' && li[i].innerHTML.match(wcRegex) != 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" ); } } jQuery( function( $ ) {   if ( mw.config.get( 'wgCanonicalSpecialPageName' ) == 'Contributions') {      var wcPortletLink = mw.util.addPortletLink( wcPortletId, '#', wcPortletText, 'ca-watchcontrib', "Show/hide pages for which you're the top contributor (debug)", '' );     $( wcPortletLink ).click( function ( e ) { e.preventDefault; watchcontrib; });   } }); //  //Category:Wikipedia scripts