User:DESiegel/monobook.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
![]() | The accompanying .css page for this skin can be added at User:DESiegel/monobook.css. |
if(document.title.indexOf("My watchlist") == 0) unwatchlinks();
// -----------------------------------------------------------------------------
// Übergodmode Monobook skin
// (c) 2005 Sam Hocevar <sam@zoy.org>
// $Id: ubergodmode.js 886 2005-05-14 23:56:48Z sam $
// -----------------------------------------------------------------------------
var blocklink = 'Block this user';
// -----------------------------------------------------------------------------
// Our nice Block functions
// -----------------------------------------------------------------------------
function PerformBlock() {
var l, target = '';
// Look for '&faketarget=XXX' in URL
url = location.pathname;
l = location.search.substring(1).split('&');
for (i = 0; i < l.length; i++) {
var n = l[i].indexOf('=');
if (l[i].substring(0, n) == 'faketarget') {
target = l[i].substring(n + 1);
}
}
if (!target)
return;
form = document.getElementById('blockip');
if (!form)
return;
input = form.getElementsByTagName('input')[0];
input.value = target;
}
// -----------------------------------------------------------------------------
// Add block buttons to the page
// -----------------------------------------------------------------------------
function AddBlockButtons() {
var l, article = '', vandal;
// Add 'block' links to a diff page
l = document.getElementById('t-emailuser');
if (l) {
clone = l.cloneNode(true);
l.id = 't-blockuser';
a = clone.getElementsByTagName('a')[0];
a.href = a.href.replace(/Special:Emailuser/, 'Special:Blockip');
a.href = a.href.replace(/target=/, 'faketarget=');
a.innerHTML = blocklink;
l.parentNode.insertBefore(clone, l.nextSibling);
}
}
// -----------------------------------------------------------------------------
// Modify the page once it is loaded
// -----------------------------------------------------------------------------
if (window.addEventListener) {
window.addEventListener("load", PerformBlock, false);
window.addEventListener("load", AddBlockButtons, false);
} else if (window.attachEvent) {
window.attachEvent("onload", PerformBlock);
window.attachEvent("onload", AddBlockButtons);
}
// [[User:Lupin/popups.js]] - please include this line
// document.write('<script type="text/javascript" src="'
// + 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
// + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
// popupAdminLinks=true; // optional: enable admin links
// popupStructure='fancy'; // links in popup itself
// popupFixRedirs=true;
// popupFixDabs=true;
//function MODULE_NAME(){
// MODULE_CODE;
//}
//if (window.addEventListener) window.addEventListener("load", MODULE_NAME, false);
//else if (window.attachEvent) window.attachEvent("onload", MODULE_NAME);
//
// This will add an [edit top] link at the top of all pages except preview pages // by
setTimeout("editTopLink()", 0) // this is equivalent of onload
function editTopLink() {
// if this is preview page or generated page, stop
if(document.getElementById("wikiPreview") || window.location.href.indexOf("w/index.php?title=Special:") != -1) return;
// get the page title
var pageTitle = document.title.split(" - ")[0].replace(" ", "_");
// create div and set innerHTML to link
var divContainer = document.createElement("div");
divContainer.innerHTML = '<div class="editsection" style="float:right;margin-left:5px;margin-top:3px;">[<a href="/w/index.php?title='+pageTitle+'&action=edit§ion=0" title="'+document.title.split(" - ")[0]+'">edit top</a>]</div>';
// insert divContainer into the DOM before the h1
document.getElementById("content").insertBefore(divContainer, document.getElementsByTagName("h1")[0]);
}
// //Add purge to tabs
function addPurge(){
ta['ca-purge'] = ['g', 'Purge the internal cache for this page'];
var x = document.getElementById('ca-history');
if(!x) return;
if(x.children) x = x.children[0].href;
else x = x.childNodes[0].href;
addTab(x.replace(/=history/, "=purge"), 'purge', 'ca-purge');
akeytt();
}
if (window.addEventListener) window.addEventListener("load", addPurge, false); else if (window.attachEvent) window.attachEvent("onload", addPurge);
//
//From http://en.wikipedia.org/w/index.php?title=User:JesseW/monobook.js&oldid=20755510
function addSinceTab() {
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
if (window.location.href.indexOf("&action=history&gotosince=true")!=-1) {
do_since_I_last_edited()
}
else if (!/wiki\/Special:|w\/index.php?title=Special:/.test(window.location.href)) {
var thetitle=document.title.slice(0, String(document.title).indexOf(" - "));
var l=addlilink(tabs, "/w/index.php?title="+thetitle+"&action=history&gotosince=true", 'since', '');
l.lastChild.title="Changes since I last edited";
}
}
function do_since_I_last_edited() {
var csub=document.getElementById("contentSub");
var msg=document.createElement("p");
msg.appendChild(document.createTextNode
("Parsing history... please wait..."));
msg.className="error";
csub.insertBefore(msg, csub.firstChild)
var username=document.getElementById("pt-userpage").textContent;
var hists=document.getElementById("pagehistory").childNodes;
for (n=0;n<hists.length;n++) {
if (hists[n].getElementsByTagName("span")[0].textContent==username) {
document.location=hists[n].childNodes[1].href;
return;
}
}
msg.replaceChild(document.createTextNode
("You have not edited this page! (recently)"),
msg.firstChild);
}
if (window.addEventListener) window.addEventListener("load", addSinceTab, false);
else if (window.attachEvent) window.attachEvent("onload", addSinceTab);
//
if (document.title.indexOf("Confirm delete") != -1) {
var csdDeleteForm = {
FillSelect:function(sel, arr){
if(arr && arr.length>0){
if(arr.length>1){
var FirstOpt = new Option("CSD Reasons", "");
// catches stupid IE error
if(FirstOpt.innerHTML != "CSD Reasons"){
FirstOpt.innerHTML = "CSD Reasons";
}
sel.appendChild(FirstOpt);
sel.options[0].style.color = "gray"
}
sel.disabled = false;
for(var i=0;i<arr.length;i++){
var opt = new Option(arr[i].display, arr[i].value);
// catches stupid IE error
if(opt.innerHTML != arr[i].display){
opt.innerHTML = arr[i].display;
}
sel.appendChild(opt);
}
}else{
sel.options[0] = new Option("No Options Available", "");
// catches stupid IE error
if(sel.options[0].innerHTML != "No Options Available"){
sel.options[0].innerHTML = "No Options Available";
}
sel.disabled = true;
return false;
}
return true;
},
ValueArray:[
{"value":"[[WP:CSD#G1|CSD G1]]","display":"G1 - Nonsense"},
{"value":"[[WP:CSD#G2|CSD G2]]","display":"G2 - Test Pages"},
{"value":"[[WP:CSD#G3|CSD G3]]","display":"G3 - Pure Vandalism"},
{"value":"[[WP:CSD#G4|CSD G4]]","display":"G4 - Recreated Deleted"},
{"value":"[[WP:CSD#G5|CSD G5]]","display":"G5 - Banned User"},
{"value":"[[WP:CSD#G6|CSD G6]]","display":"G6 - Housekeeping"},
{"value":"[[WP:CSD#G7|CSD G7]]","display":"G7 - Author Request"},
{"value":"[[WP:CSD#G8|CSD G8]]","display":"G8 - Talk Page"},
{"value":"[[WP:CSD#G9|CSD G9]]","display":"G9 - Office Actions"},
{"value":"[[WP:CSD#G10|CSD G10]]","display":"G10 - Attack Pages"},
{"value":"[[WP:CSD#G11|CSD G11]]","display":"G11 - Advertising"},
{"value":"[[WP:CSD#G12|CSD G12]]","display":"G12 - Copyright"},
{"value":"[[WP:CSD#A1|CSD A1]]","display":"A1 - No Context"},
{"value":"[[WP:CSD#A2|CSD A2]]","display":"A2 - Foreign Language"},
{"value":"[[WP:CSD#A3|CSD A3]]","display":"A3 - No Content"},
{"value":"[[WP:CSD#A5|CSD A5]]","display":"A5 - Transwikied"},
{"value":"[[WP:CSD#A7|CSD A7]]","display":"A7 - Unremarkable"},
{"value":"[[WP:CSD#R1|CSD R1]]","display":"R1 - Bad Target"},
{"value":"[[WP:CSD#R2|CSD R2]]","display":"R2 - Crossnamespace"},
{"value":"[[WP:CSD#R3|CSD R3]]","display":"R3 - Bad Typo"},
{"value":"[[WP:CSD#I1|CSD I1]]","display":"I1 - Redundant"},
{"value":"[[WP:CSD#I2|CSD I2]]","display":"I2 - Corrupt/Empty"},
{"value":"[[WP:CSD#I3|CSD I3]]","display":"I3 - Improper License"},
{"value":"[[WP:CSD#I4|CSD I4]]","display":"I4 - Lack of License"},
{"value":"[[WP:CSD#I5|CSD I5]]","display":"I5 - Unused Unfree"},
{"value":"[[WP:CSD#I6|CSD I6]]","display":"I6 - No Fair Use"},
{"value":"[[WP:CSD#I7|CSD I7]]","display":"I7 - Invalid Fair Use"},
{"value":"[[WP:CSD#I8|CSD I8]]","display":"I8 - On Commons"},
{"value":"[[WP:CSD#G1|CSD C1]]","display":"C1 - Empty"},
{"value":"[[WP:CSD#C2|CSD C2]]","display":"C2 - Speedy Rename"},
{"value":"[[WP:CSD#C3|CSD C3]]","display":"C3 - Template"},
{"value":"[[WP:CSD#U1|CSD U1]]","display":"U1 - User Request"},
{"value":"[[WP:CSD#U2|CSD U2]]","display":"U2 - No User"},
{"value":"[[WP:CSD#U3|CSD U3]]","display":"U3 - Fair Use Gallery"},
{"value":"[[WP:CSD#T1|CSD T1]]","display":"T1 - Divisive"},
{"value":"[[WP:CSD#P1|CSD P1]]","display":"P1 - Speedy Article"},
{"value":"[[WP:CSD#P2|CSD P2]]","display":"P2 - Underpopulated"},
],
}
// **** Functions called by Modules ****
function addlilink(tabs, url, name, id, title, key){
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
if(id) li.id = id;
li.appendChild(na);
tabs.appendChild(li);
if(id)
{
if(key && title)
{
ta[id] = [key, title];
}
else if(key)
{
ta[id] = [key, ];
}
else if(title)
{
ta[id] = [, title];
}
}
// re-render the title and accesskeys from existing code in wikibits.js
akeytt();
return li;
}
//
function addTab(url, name, id, title, key){
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
addlilink(tabs, url, name, id, title, key);
} //
// ================================================================
// Adds an unwatch link after each entry on the regular watchlist
// (instead of requiring you to navigate to a separate page)
// by User:Omegatron
// Workaround for Bug 424 http://bugzilla.wikipedia.org/show_bug.cgi?id=424
function unwatchlinks(){
if(document.title.indexOf("My watchlist") == 0) {
var x,i;
x=document.links; // Gets all the links on the page
for(i=0;i<x.length;++i) {
if (/action=history/.test(x[i].href)) { // Find all the ones that link to history pages
newUnwatchLink = document.createElement('a');
newSeparator = document.createTextNode("; ");
newUnwatchLink.href = x[i].href.match(/\/w\/.+?&/) + "action=unwatch"; // Replace the action=history with action=unwatch
newUnwatchLink.innerHTML = "un";
x[i].parentNode.insertBefore(newUnwatchLink, x[i].nextSibling);
x[i].parentNode.insertBefore(newSeparator, x[i].nextSibling); // Insert after the hist link with a semicolon
}
}
}
}
/* CSD helper script follows */
/* <pre><nowiki> */
//**************************** attaching function *****************************************
// got thIS super handi function from http://www.scottandrew.com he is pretty dang smart **
//*****************************************************************************************
addEvent:function(obj, evType, fn, useCapture){
//alert(obj);
if (obj.addEventListener){
obj.addEventListener(evType, fn, useCapture);
return true;
} else if (obj.attachEvent){
var r = obj.attachEvent("on"+evType, fn);
return r;
} else {
alert("Handler could not be attached");
}
}
}
function addSelectAfter(){
var obj = document.getElementById('wpReason');
// create select using included array
var sel = document.createElement("SELECT");
csdDeleteForm .FillSelect(sel, csdDeleteForm .ValueArray);
// name it
sel.name = "csdOptions";
sel.id = "csdOptions";
sel.style.marginLeft = "10px";
csdDeleteForm .addEvent(sel, "change", csdChangeBox, false);
// check for next sibling and insert before it or at the end
if(obj.nextSibling){
obj.parentNode.insertBefore(sel,obj.nextSibling);
}else{
obj.parentNode.appendChild(sel);
}
}
try{
// add one on load
csdDeleteForm.addEvent(window, "load", addSelectAfter, false);
}catch(err){}
function csdChangeBox() {
var obj = document.getElementById('wpReason');
obj.value = document.getElementById('csdOptions').value;
}
/* </nowiki><pre> */
/* End CSD helper script */