User:Barticus88/dpl.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Firefox/Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.
/* {{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);