/*
{{TOCright}}
This script was originally written for the needs of
[[Wikipedia:Disambiguation pages with links|Disambiguation pages with links]],
hence the name. I have decided to "Class B" this script in favor of a
generalized WhatLinksHere enhancement script called
<code>[[User:Barticus88/WhatLinksHere.js]]</code>.
==Randall Bart's whatlinkshere select script==
by Randall Bart [[User:Barticus88]]
version 1.1 GPL GFDL February 2007
version 1.0 GPL GFDL January 2007
Derived from Agentsoo/dpl.js
On What links here pages, this script adds this line to your toolbox:
Mode: DPL T P R W U
Each selection mode filters the list of pages
Hover over each letter to get a description
When selection mode is activated, a yellow banner appears at the top and
bottom of the page, with the mode description and counts, eg
Select Mode: Redirect (11 shown/687 hidden)
== Selection funcs ==
*/
function getValueOf(varName) {defaultize(varName); return eval(varName);};
function sel_mode_DPL (linkHTML) {
return !(linkHTML.toLowerCase().indexOf( '</a> (redirect page' )
== -1 &&
( linkHTML.indexOf( 'href="/wiki/Talk:' ) != -1 ||
linkHTML.indexOf( 'href="/wiki/Category_talk:' ) != -1 ||
linkHTML.indexOf( 'href="/wiki/Template_talk:' ) != -1 ||
linkHTML.indexOf( 'href="/wiki/Image_talk:' ) != -1 ||
linkHTML.indexOf( 'href="/wiki/Portal_talk:' ) != -1 ||
linkHTML.indexOf( 'href="/wiki/Wikipedia:' ) != -1 ||
linkHTML.indexOf( 'href="/wiki/Wikipedia_talk:' ) != -1 ||
linkHTML.indexOf( 'href="/wiki/User:' ) != -1 ||
linkHTML.indexOf( 'href="/wiki/User_talk:' ) != -1
)
)
}
function sel_mode_Template (linkHTML) {
return linkHTML.indexOf( 'href="/wiki/Template:' ) != -1
}
function sel_mode_Portal (linkHTML) {
return linkHTML.indexOf( 'href="/wiki/Portal:' ) != -1
|| linkHTML.indexOf( 'href="/wiki/Template:' ) != -1
|| linkHTML.indexOf( 'href="/wiki/Category:' ) != -1
|| linkHTML.indexOf( 'href="/wiki/Image:' ) != -1
}
function sel_mode_User (linkHTML) {
return linkHTML.indexOf( 'href="/wiki/User:' ) != -1
|| linkHTML.indexOf( 'href="/wiki/User_talk:' ) != -1
}
function sel_mode_Wiki (linkHTML) {
return linkHTML.indexOf( 'href="/wiki/Wikipedia:' ) != -1
|| linkHTML.indexOf( 'href="/wiki/Wikipedia_talk:' ) != -1
}
function sel_mode_Redir (linkHTML) {
return linkHTML.toLowerCase().indexOf( '</a> (redirect page' ) != -1
}
/*
==Da Main func==
*/
function select_pages(select_this, mode_name){
body = document.getElementById('bodyContent');
if( !body ){ return; }
banner = document.getElementById('dpl_banner')
if (banner && banner.innerHTML.indexOf(mode_name) != -1) {
open(document.URL, "_self"); //refresh the page
return;
}
lists = body.getElementsByTagName( "ul" );
for( j=0; j<lists.length; j++ ){
lists[j].style.listStyleType = 'decimal';
}
links = body.getElementsByTagName( "li" );
dpl_in = 0;
dpl_ex = 0;
for( i=0; i<links.length; i++ ){
if( select_this(links[i].innerHTML) ) {
links[i].style.display = ''; // clear prior style
dpl_in++;
} else {
links[i].style.display = 'none'; // hide
dpl_ex++;
}
}
window.wlhCt = window.wlhCt || 0;
window.wlhCt ++;
banner_text = "Select Mode: " + mode_name + " ("
+ dpl_in.toFixed() + " shown/" + dpl_ex.toFixed() + " hidden)";
if (banner) {
banner.innerHTML = banner_text;
banner = document.getElementById('dpl_footer');
banner.innerHTML = banner_text;
}else{
banner = document.createElement("div");
banner.id = "dpl_banner";
banner.style.backgroundColor = "yellow";
banner.style.fontSize = 'larger';
banner.innerHTML = banner_text;
body.insertBefore(banner,body.childNodes[0]);
body = document.getElementById('footer');
if( !body ){ return; }
banner = document.createElement("div");
banner.id = "dpl_footer";
banner.style.backgroundColor = "yellow";
banner.style.fontSize = 'larger';
banner.innerHTML = banner_text;
body.insertBefore(banner,body.childNodes[0]);
}
}/* end function select_pages
==Da toolbox fiddler==
*/
function addCountLinks(){
if (!document.URL.match('Special:Whatlinkshere')) { return; }
// only add toolbox link on 'whatlinkshere' pages
target = document.getElementById('p-tb').getElementsByTagName( "ul" );
if( target.length == 0 ){ return; } //no toolbox to hook into
target = target[0];
newTool = document.createElement("li");
target.appendChild( newTool );
function ptool(btn,func,desc){
return '<a href="" onclick="select_pages(sel_mode_'
+ func + ',\'' + desc + '\');return false;" title="'
+ desc + '"> ' + btn + ' </a>'
}
newTool.innerHTML = 'Mode:'
+ ptool ('DPL', 'DPL', 'Main Space and Template')
+ ptool ('T', 'Template', 'Template Only')
+ ptool ('P', 'Portal', 'Portal, Template, Category, Image')
+ ptool ('R', 'Redir', 'Redirect')
+ ptool ('W', 'Wiki', 'Wikipedia')
+ ptool ('U', 'User', 'User and User Talk')
;
}
addOnloadHook(addCountLinks);