User:Peoplelikeyou/common.js: Difference between revisions

From Test Wiki
Jump to navigation Jump to search
Content deleted Content added
No edit summary
Amos (talk | contribs)
mNo edit summary
 
(8 intermediate revisions by one other user not shown)
Line 1: Line 1:
var adminrights = {};
//adapted from [[User:ais523/adminrights.js]]
//
// This script highlights bluelinks to selected users' userpages or talkpages in bodyContent
//Start of section to update

adminrights['3PPYB6']=1;
var userlist=new Array();
adminrights['Abuse filter']=1;

adminrights['AlPaD']=1;
importScript('User:Peoplelikeyou/userlist.js');
adminrights['Brewster239']=1;

adminrights['C1K98V']=1;
//Highlighting script. Based on [[User:ais523/highlightmyname.js]].
//End of section to update

function highlightusers_inner(n,h) //node, relevant hyperlink fragment
//Updating script
{
$( function() {
if (n.nodeType!=1||n.tagName.toLowerCase()!="a") return 0; // not an anchor
if(location.href==mw.config.get( 'wgServer' )+ mw.config.get( 'wgScript') + "?title=Special:ListUsers&limit=5000&"+
if (n.href.indexOf(wgScript+"?title="+h) == -1 &&
"group=sysop&adminupdate=y")
n.href.indexOf(wgArticlePath.split("$1")[0]+h) == -1) return 0; // to the wrong target
var u=n.href.split(h)[1];
if(userlist[u.split("_").join("%20")]==1)
{
{
n.style.backgroundColor="#FACDD5";
var h=document.getElementById('bodyContent').innerHTML;
}
var a= [];
return 1;
h=h.split(/\< *li *\>/i);
}
var i=0;

while(++i<h.length)
function highlightusers(n) //node
{
while(n!=null)
{
if(highlightusers_inner(n,"User:")) n=n.nextSibling;
else if(highlightusers_inner(n,"User_talk:")) n=n.nextSibling;
else if(highlightusers_inner(n,"Special:Contributions:")) n=n.nextSibling;
else
{
{
if(n.firstChild!=null) highlightusers(n.firstChild);
a[h[i].split(">")[1].split("<")[0]]=h[i].split(/\< *\/ *li *\>/i)[0];
n=n.nextSibling;
}
}
for(i in a)
{
document.write("adminrights['"+
encodeURIComponent(i).split("\\").join("\\\\").split("'").join("%27")
.split("(").join("%28").split(")").join("%29")
.split("!").join("%21").split(",").join("%2C")
.split("%3A").join(":")+"']=1;<BR/>");
}
}
});
$( function() {
if( location.href.indexOf("?adminupdate") == -1 && location.href.indexOf("&adminupdate")==-1 &&
mw.config.get( 'wgAction') != 'edit' && mw.config.get( 'wgAction') != 'submit' &&
mw.config.get( 'wgPageName')!="Special:Preferences")
{
$("#bodyContent a").each(function() {
var component;
linkTarget = $(this).attr("href");
if(linkTarget !== undefined && linkTarget.startsWith("/wiki/User_talk:")) {
pageTitle = linkTarget.split("/wiki/User_talk:")
try {
component = decodeURIComponent(pageTitle[1].replace("_", " "));
} catch (e) {
component = null;
}
if(component && adminrights[component]==1) {
$(this).addClass("adminrights_admin");
$(this).css("background-color", "#BBFFFF");
}
}
});
}
}
}

$(function() {
highlightusers(document.getElementById('bodyContent'));
});
});

Latest revision as of 01:07, 20 October 2023

//adapted from [[User:ais523/adminrights.js]]
//
// This script highlights bluelinks to selected users' userpages or talkpages in bodyContent 

var userlist=new Array();

importScript('User:Peoplelikeyou/userlist.js'); 

//Highlighting script. Based on [[User:ais523/highlightmyname.js]].

function highlightusers_inner(n,h) //node, relevant hyperlink fragment
{
  if (n.nodeType!=1||n.tagName.toLowerCase()!="a") return 0; // not an anchor
  if (n.href.indexOf(wgScript+"?title="+h) == -1 &&
      n.href.indexOf(wgArticlePath.split("$1")[0]+h) == -1) return 0; // to the wrong target
  var u=n.href.split(h)[1];
  if(userlist[u.split("_").join("%20")]==1)
  {
    n.style.backgroundColor="#FACDD5";
  }
  return 1;
}

function highlightusers(n) //node
{
  while(n!=null)
  {
    if(highlightusers_inner(n,"User:")) n=n.nextSibling;
    else if(highlightusers_inner(n,"User_talk:")) n=n.nextSibling;
    else if(highlightusers_inner(n,"Special:Contributions:")) n=n.nextSibling;
    else
    {
      if(n.firstChild!=null) highlightusers(n.firstChild);
      n=n.nextSibling;
    }
  }
}

$(function() {
    highlightusers(document.getElementById('bodyContent'));
});