Jump to content

User:MrX/userhighlighter.js

From Wikipedia, the free encyclopedia
This is the current revision of this page, as edited by MrX (talk | contribs) at 00:36, 25 July 2015. The present address (URL) is a permanent link to this version.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// [[User:MrX/userhighlighter.js]]
// Based on [[Amalthea/userhighlighter.js]]e.
// Based on [[User:Ais523/adminrights.js]], inner logic taken straight from there.
// Consider using [[User:Theopolisme/Scripts/adminhighlighter.js]] instead, a better version of this script
//
// This script highlights bluelinks to admins' userpages or talkpages in bodyContent (that is, everything but the tabs, personal
// links at the top of the screen and sidebar) by giving them a cyan background.
//
// If you want a colour other than cyan, add something like
// .amalthea_userhighlighter_sysop {background-color: red !important}
// to your common.css file.

;(function($){
	$.getJSON( mw.config.get('wgScriptPath')+'/index.php?action=raw&ctype=application/json&title=User:Amalthea_(bot)/userhighlighter.js/sysop.js', function(data){
		$(function(){
			function highlightadmins_inner(n,h) //node, relevant hyperlink fragment
			{
			  if (n.nodeType!=1||n.tagName.toLowerCase()!="a") return 0; // not an anchor
			  if (n.href.indexOf(mw.config.get('wgScript')+"?title="+h) == -1 &&
			      n.href.indexOf(mw.config.get('wgArticlePath').split("$1")[0]+h) == -1) return 0; // to the wrong target
			  var u=decodeURIComponent(n.href).split(h)[1];
			  if(data[u.split("_").join(" ")]==1)
			  {
			    //n.style.backgroundColor="#FFFFFF";
			    if(n.className==null||n.className=="") n.className="MrX_userhighlighter_sysop";
			    else n.className+=" MrX_userhighlighter_sysop";
			  }
			  return 1;
			}
			 
			function highlightadmins(n) //node
			{
			  while(n!=null)
			  {
			    if(highlightadmins_inner(n,"User:")) n=n.nextSibling;
			    //else if(highlightadmins_inner(n,"User_talk:")) n=n.nextSibling;
			    //else if(highlightadmins_inner(n,"Special:Contributions:")) n=n.nextSibling;
			    else
			    {
			      if(n.firstChild!=null) highlightadmins(n.firstChild);
			      n=n.nextSibling;
			    }
			  }
			}
			
			highlightadmins(document.getElementById('bodyContent'));			
		});	
	});
}(jQuery));