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);
//
// **** 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
}
}
}
}
// Delete reason helper //
/* <pre><nowiki> */
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]]: Patent Nonsense","display":"G1 - Nonsense"},
{"value":"[[WP:CSD#G2|CSD G2]]: Test Pages","display":"G2 - Test Pages"},
{"value":"[[WP:CSD#G3|CSD G3]]: Pure Vandalism","display":"G3 - Pure Vandalism"},
{"value":"[[WP:CSD#G4|CSD G4]]: Recreation of deleted material","display":"G4 - Recreated Deleted"},
{"value":"[[WP:CSD#G5|CSD G5]]: Contributions by Banned User","display":"G5 - Banned User"},
{"value":"[[WP:CSD#G6|CSD G6]]: Housekeeping","display":"G6 - Housekeeping"},
{"value":"[[WP:CSD#G7|CSD G7]]: Author Requests Deletion","display":"G7 - Author Request"},
{"value":"[[WP:CSD#G8|CSD G8]]: Talkpage of non-Existent Article","display":"G8 - Talk Page"},
{"value":"[[WP:CSD#G9|CSD G9]]: [[WP:OFFICE|Office Actions]]","display":"G9 - Office Actions"},
{"value":"[[WP:CSD#G10|CSD G10]]: Attack Page","display":"G10 - Attack Pages"},
{"value":"[[WP:CSD#G11|CSD G11]]: Blatant Advertising","display":"G11 - Advertising"},
{"value":"[[WP:CSD#G12|CSD G12]]: Blatant Copyright","display":"G12 - Copyright"},
{"value":"[[WP:CSD#A1|CSD A1]]: Very short article providing little or no context","display":"A1 - No Context"},
{"value":"[[WP:CSD#A2|CSD A2]]: Foreign language article that exists on another Wikipedia","display":"A2 - Foreign Language"},
{"value":"[[WP:CSD#A3|CSD A3]]: No content","display":"A3 - No Content"},
{"value":"[[WP:CSD#A5|CSD A5]]: Has been transwikied","display":"A5 - Transwikied"},
{"value":"[[WP:CSD#A7|CSD A7]]: Unremarkable people, groups, companies and web content","display":"A7 - Unremarkable"},
{"value":"[[WP:CSD#R1|CSD R1]]: Redirect to non-existent page","display":"R1 - Bad Target"},
{"value":"[[WP:CSD#R2|CSD R2]]: Redirect to User/User talk namespaces from mainspace","display":"R2 - Crossnamespace"},
{"value":"[[WP:CSD#R3|CSD R3]]: Implausible typo","display":"R3 - Bad Typo"},
{"value":"[[WP:CSD#I1|CSD I1]]: Redundant to another image","display":"I1 - Redundant"},
{"value":"[[WP:CSD#I2|CSD I2]]: Image is corrupted","display":"I2 - Corrupt/Empty"},
{"value":"[[WP:CSD#I3|CSD I3]]: Improper license","display":"I3 - Improper License"},
{"value":"[[WP:CSD#I4|CSD I4]]: No license","display":"I4 - Lack of License"},
{"value":"[[WP:CSD#I5|CSD I5]]: Is unused and not free","display":"I5 - Unused Unfree"},
{"value":"[[WP:CSD#I6|CSD I6]]: No justification given for fair use","display":"I6 - No Fair Use"},
{"value":"[[WP:CSD#I7|CSD I7]]: Bad justification given for fair use","display":"I7 - Invalid Fair Use"},
{"value":"[[WP:CSD#I8|CSD I8]]: Image exists on the Commons","display":"I8 - On Commons"},
{"value":"[[WP:CSD#G1|CSD C1]]: Category is Empty","display":"C1 - Empty"},
{"value":"[[WP:CSD#C2|CSD C2]]: Speedy Renaming","display":"C2 - Speedy Rename"},
{"value":"[[WP:CSD#C3|CSD C3]]: Corresponding template was deleted","display":"C3 - Template"},
{"value":"[[WP:CSD#U1|CSD U1]]: User requested deletion","display":"U1 - User Request"},
{"value":"[[WP:CSD#U2|CSD U2]]: Userpage of non-existent user","display":"U2 - No User"},
{"value":"[[WP:CSD#U3|CSD U3]]: Userpage that is primarily a gallery of fair use images","display":"U3 - Fair Use Gallery"},
{"value":"[[WP:CSD#T1|CSD T1]]: Template that is divisive and inflammatory.","display":"T1 - Divisive"},
{"value":"[[WP:CSD#P1|CSD P1]]: Any topic that would be subject to speedy deletion as an article.","display":"P1 - Speedy Article"},
{"value":"[[WP:CSD#P2|CSD P2]]: Underpopulated","display":"P2 - Underpopulated"}
],
//**************************** 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 Delete reason helper //