User:BagelCarr/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:BagelCarr/monobook.css. |
// [[User:Lupin/popups.js]]
mw.loader.load(
'https://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s');
function winc(s) {
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=' + s
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}
//Interiot's javascript edit counter
if (document.title.indexOf('User:Interiot/Tool2/code.js') != -1) {
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Interiot/Tool2/code.js&action=raw&ctype=text/javascript'); }
winc('User:Cyde/monobook.js/close_afd.js');
//You may need up to all of these for the dates and units things to work.
winc('User:Cyde/monobook.js/dates.js');
winc('User:Cyde/monobook.js/anwar.js');
winc('User:Cyde/monobook.js/unitformatter.js');
winc('User:Omegatron/monobook.js/addlink.js');
winc('User:Omegatron/monobook.js/fixdiffwidth.js');
winc('User:Omegatron/monobook.js/edittop.js');
winc('User:Quarl/unwatch.js&oldid=35457582');
//End section listing.
popupFixRedirs=true;
popupFixDabs=true;
popupMaxPreviewSentences=12;
popupMaxPreviewCharacters=2400;
popupRedirAutoClick='wpSave';
popupStructure='menus'
/* <pre><nowiki> */
/**
* Here be all good stuff
* Original location: [[User:Alphax/monobook.js]]
* Forked from [[User:ABCD/monobook.js]] around April 2005
* Dual licensed under the GFDL and GPL
* See also: [[User:JesseW/monobook.js]]
* And best of all: [[WP:US]]
*/
/**** Add Godmode-lite ****/
// this one breaks popups
// document.write('<SCRIPT SRC="http://sam.zoy.org/wikipedia/godmode-light.js"><\/SCRIPT>');
/**** Live RC filter ****/
// [[User:Lupin/recent2.js]] - please include this line
document.write('<script type="text/javascript" src="http://en.wikipedia.org/w/index.php?title=User:Lupin/recent2.js&action=raw&ctype=text/javascript&dontcountme=s"><\/script>');
/**** afd helper ****/
// From [[User:Jnothman/afd_helper/script.js]]
document.write('<script type="text/javascript" src="http://en.wikipedia.org/w/index.php?title=User:Cyde/afd_helper/script.js&action=raw&ctype=text/javascript&dontcountme=s"><\/script>');
/**** Initialise on window load ****/
if (window.addEventListener) window.addEventListener("load",myLoadFuncs,false);
else if (window.attachEvent) window.attachEvent("onload",myLoadFuncs);
else
{
window.previousLoadFunction = window.onload;
window.onload = function()
{
window.previousLoadFunction();
myLoadFuncs();
}
}
/**** Load custom functions ****/
function myLoadFuncs()
{
// &action=purge
//addPurge();
// §ion=0
addEditSection0();
// cause the personal menu looks bad
//changeLinks();
// now add a million extra tabs
morelinks();
// and some stuff for the sidebar
addToolBoxLinks();
// make red talk page links start new sections
talkpageplus();
// for admins only...
// if(document.title.indexOf("Confirm delete - Delete") == 0) addVfdLink();
// change the title of the edit link
ta['ca-edit'] = ['e', 'Edit page'];
// remove the logout access key
//ta['pt-logout'] = new Array(null, null);
// re-render the title and accesskeys for stuff
akeytt();
// add history link to new messages box
newmessagehistory();
}
/**** Edit section 0 ****/
function addEditSection0()
{
ta['ca-edit-0'] = ['', 'Edit the zeroth section of this page'];
if(!document.getElementById) return;
var x = document.getElementById('ca-edit');
if(!x) return;
var y = document.createElement('LI');
y.id = 'ca-edit-0';
if(x.className == 'selected'){
if(/&action=edit§ion=0$/.test(window.location.href)){
x.className = 'istalk';
y.className = 'selected';
} else {
x.className = 'selected istalk';
}
} else if(x.className == 'selected istalk'){
if(/&action=edit§ion=0$/.test(window.location.href)){
x.className = 'istalk';
y.className = 'selected istalk';
} else {
y.className = 'istalk';
}
} else {
y.className = x.className;
x.className = 'istalk';
}
var z = document.createElement('A');
if(x.children){
z.href = x.children[0].href + '§ion=0';
z.appendChild(document.createTextNode('0'));
y.appendChild(z);
document.getElementById('p-cactions').children[1].insertBefore(y,x.nextSibling);
}else{
z.href = x.childNodes[0].href + '§ion=0';
z.appendChild(document.createTextNode('0'));
y.appendChild(z);
document.getElementById('p-cactions').childNodes[3].insertBefore(y,x.nextSibling);
}
}
/**** Add generic tab ****/
function addlilink(tabs, url, name, id){
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
li.id = id;
li.appendChild(na);
tabs.appendChild(li);
return li;
}
/**** Add tab as menu ****/
function addlimenu(tabs, name, id)
{
var na = document.createElement('a');
na.href = '#';
var mn = document.createElement('ul');
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
li.id = id;
li.className = 'tabmenu';
li.appendChild(na);
li.appendChild(mn);
tabs.appendChild(li);
return li;
}
/**** Add purge tab ****/
function addPurge()
{
ta['ca-purge'] = ['g', 'Purge the internal cache for this page'];
if(!document.getElementById) return;
var x = document.getElementById('ca-history');
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
if(!x) return;
if(x.children) x = x.children[0];
else x = x.childNodes[0];
var pf = document.createElement('form');
pf.action = '?action=purge';
pf.method = 'POST';
pf.id = 'pf';
x.appendChild(pf);
addlilink(tabs, 'javascript:document.getElementById("pf").submit();', 'purge', 'ca-purge');
}
/**** Add afd header, footer and comment ****/
function closeafd(bold, notbold)
{
var txt = document.editform.wpTextbox1;
txt.value = "{{subst:vt}} '''" + bold + "'''" + notbold + ". – ~~~~\n" + txt.value
+ "\n{{subst:vb}}\n";
txt = document.editform.wpSummary;
txt.value = "close discussion: " + bold + notbold;
// I don't mind still watching them
// document.editform.wpWatchthis.checked = false;
}
/**** Generic custom talk message ****/
function autoMessage(msgtext, summary, saveopt)
{
var txt = document.editform.wpTextbox1;
document.editform.wpSummary.value = summary;
if(txt.value.length > 0) txt.value += '\n';
txt.value += msgtext;
if(saveopt == 'save')
{
document.editform.submit();
}
else if(saveopt == 'preview')
{
document.editform.wpPreview.click();
}
else if(saveopt == 'diff')
{
document.editform.wpDiff.click();
}
}
/**** Get the pagename for a specified thread ****/
function startThread()
{
var which = prompt("Thread number?");
var now = new Date();
if(which < 10) which = '0' + which;
var timestamp = now.getUTCFullYear() + '';
now.getUTCMonth() < 9 ? timestamp += '0' + (now.getUTCMonth() + 1) : timestamp += (now.getUTCMonth() + 1);
now.getUTCDate() < 10 ? timestamp += '0' + now.getUTCDate() : timestamp += now.getUTCDate();
return '{{User talk:Alphax/' + timestamp + '-' + which + '}}';
}
/**** Get the text for a specified test number ****/
function test(x)
{
var s = (x == '1' ? '' : x);
return ['{{subst:test' + s + '}} – ~~~~', '{{test' + s + '}}'];
}
/**** String replacement popup ****/
function replace()
{
var s = prompt("Search regexp?");
if(s){
var r = prompt("Replace regexp?");
var txt = document.editform.wpTextbox1;
txt.value = txt.value.replace(new RegExp(s, "g"), r);
}
}
/**** Talk page AFD result ****/
function afdresult()
{
var res = prompt("Result?");
if(!res) return;
var afddate = prompt("Nomination date?");
document.editform.wpSummary.value = 'AFD result - ' + res.replace(/'/g, '');
var txt = document.editform.wpTextbox1;
if(txt.value.length > 0) txt.value += '\n';
txt.value += '{{oldafdfull|date=[[' + afddate + ']] [[{{subst:CURRENTYEAR}}]]|result=' + res + '|votepage={{subst:PAGENAME}}}}';
txt.focus();
}
/**** Make old AfD's appear or disappear ****/
function hideafd()
{
var divs = document.getElementsByTagName("div");
for(var x = 0; x < divs.length; ++x)
if(divs[x].className.indexOf("vfd") != -1)
divs[x].style.display = "none";
// needed to shrink the page - rendering bug
document.getElementById('footer').style.display = 'none';
}
function showafd()
{
var divs = document.getElementsByTagName("div");
for(var x = 0; x < divs.length; ++x)
if(divs[x].className.indexOf("vfd") != -1)
divs[x].style.display = "";
// might as well put it back...
document.getElementById('footer').style.display = '';
}
/**** Make the top links look better ****/
function changeLinks()
{
if(!document.getElementById) return;
// remove the "my" bits
document.getElementById('pt-mytalk').firstChild.innerHTML = 'talk';
document.getElementById('pt-watchlist').firstChild.innerHTML = 'watchlist';
document.getElementById('pt-mycontris').firstChild.innerHTML = 'contributions';
// add a clock
var toplinks = document.getElementById('p-personal').getElementsByTagName('ul')[0];
addlilink(toplinks, '#', '', 'utcdate');
showtime();
}
/**** Not sure how this works ****/
function afddelete(){
var form = document.forms.deleteconfirm;
form.wpReason.value = '[[Wikipedia:Articles for deletion/' + unescape(window.location.href.replace(/^.*\?title=([^&]+)&action=delete.*$/, '$1').replace(/_/g, ' ')) + ']]';
form.wpConfirm.checked = true;
}
/**** Mega Tab Adding ****
*
* I'm making this comment block REALLY REALLY BIG so I can find it
*
* Possibly the most useful bit of this entire file, it adds various tabs depending on
* what page we are on
*
*/
function morelinks()
{
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
if(document.title.indexOf("Editing Wikipedia:Articles for deletion") == 0)
{
/**** I'm insane! ****/
addlimenu(tabs, 'afd actions', 'afda');
var afda = document.getElementById('afda').getElementsByTagName('ul')[0];
addlilink(afda, 'javascript:closeafd("keep", "")', 'keep', '');
addlilink(afda, 'javascript:closeafd("merge and redirect", " to [[" + prompt("Merge and redirect to?") + "]]")', 'merge', '');
addlilink(afda, 'javascript:closeafd("redirect", " to [[" + prompt("Redirect to?") + "]]")', 'redir', '');
addlilink(afda, 'javascript:closeafd("transwiki", " to " + prompt("Transwiki to?"))', 'trans', '');
addlilink(afda, 'javascript:closeafd("transwiki", " to Wiktionary")', 'wikt', '');
addlilink(afda, 'javascript:closeafd("speedy delete", "")', 'speedy', '');
addlilink(afda, 'javascript:closeafd("delete", "")', 'del', '');
addlilink(afda, 'javascript:closeafd(prompt("Result?"), "")', 'other', '');
addlilink(tabs, 'javascript:replace()', 'replace', '');
/**** Finish insanity ****/
/**** The "Make it Awesome!" button ****
document.editform.wpSummary.value = 'This vote brought to you by the "Make it Awesome!" button';
var txt = document.editform.wpTextbox1;
if(txt.value.length > 0) txt.value += '\n';
txt.value += "*'''Make it awesome!''' ~~~~";
document.editform.submit();
**** Finish making it awesome ****/
}
else if(document.title.indexOf("Confirm delete - Delete") == 0)
{
addlilink(tabs, 'javascript:afddelete()', 'afd', '');
}
else if(document.title.indexOf("Editing User talk:") == 0)
{
addlilink(tabs, 'javascript:replace()', 'replace', '');
addlimenu(tabs, 'talk messages', 'talkm');
var talkm = document.getElementById('talkm').getElementsByTagName('ul')[0];
addlilink(talkm, 'javascript:autoMessage("{{subst:User:Alphax/Welcome}} ~~~~", "Welcome to Wikipedia!", "save")', 'welcome', '');
addlilink(talkm, 'javascript:autoMessage("{{subst:anon}} Thanks, ~~~~", "Create an account!", "save")', 'anon', '');
addlilink(talkm, 'javascript:autoMessage(startThread(), "new thread", "save")', 'thread', '');
addlilink(talkm, 'javascript:autoMessage("{{subst:edit summary}} ~~~~", "Edit summary", "save")', 'summary', '');
addlilink(talkm, 'javascript:autoMessage("{{subst:oldwelcome}} ~~~~", "Welcome to Wikipedia!", "save")', 'oldwelcome', '');
addlilink(talkm, 'javascript:autoMessage("{{subst:blanking}} ~~~~", "{{blanking}}", "save")', 'blanking', '');
addlilink(talkm, 'javascript:autoMessage("{{subst:bv}} ~~~~", "{{bv}}", "save")', 'bv', '');
addlilink(talkm, 'javascript:autoMessage(test(1)[0], test(1)[1], "save")', 'test', '');
addlilink(talkm, 'javascript:autoMessage(test(2)[0], test(2)[1], "save")', 'test2', '');
addlilink(talkm, 'javascript:autoMessage(test("2a")[0], test("2a")[1], "save")', 'test2a', '');
addlilink(talkm, 'javascript:autoMessage(test(3)[0], test(3)[1], "save")', 'test3', '');
addlilink(talkm, 'javascript:autoMessage(test(4)[0], test(4)[1], "save")', 'test4', '');
addlilink(talkm, 'javascript:autoMessage(test(5)[0], test(5)[1], "save")', 'test5', '');
addlilink(talkm, 'javascript:autoMessage("{{subst:selftest}} ~~~~", "{{selftest}}", "save")', 'selftest', '');
}
else if(document.title.indexOf("Editing ") == 0)
{
addlilink(tabs, 'javascript:replace()', 'replace', '');
addlilink(tabs, 'javascript:afdresult()', 'afd result', '');
}
else if(document.title.indexOf("Wikipedia:Articles for deletion") == 0)
{
addlilink(tabs, 'javascript:hideafd()', 'hide closed', 'ca-hide');
ta['ca-hide'] = ['', 'Hide closed AFDs'];
addlilink(tabs, 'javascript:showafd()', 'show closed', 'ca-show');
ta['ca-show'] = ['', 'Show closed AFDs'];
}
}
/**** Add links to the toolbox ****/
function addToolBoxLinks()
{
var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
var afdtime = new Date();
var months = ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'];
afdtime.setUTCDate(afdtime.getUTCDate() - 7);
addlilink(tb, '/wiki/Special:Newpages', 'New pages', '');
addlilink(tb, '/wiki/Special:Shortpages', 'Short pages', '');
addlilink(tb, '/wiki/Special:Log', 'Logs', '');
addlilink(tb, '/wiki/Template:Deletiontools', 'Deletion tools', '');
addlilink(tb, '/wiki/Wikipedia:Articles_for_deletion/Log/' + afdtime.getUTCFullYear()
+ '_' + months[afdtime.getUTCMonth()] + '_' + afdtime.getUTCDate(), 'Week old AfD', '');
addlilink(tb, '/wiki/Wikipedia:Disambiguation_pages_with_links', 'Dab list', '');
addlilink(tb, '/wiki/Wikipedia:Template_messages/User_talk_namespace', 'Talk messages', '');
addlilink(tb, '/wiki/User:Cyde/monobook.js', 'Monobook.js', '');
addlilink(tb, '/wiki/User:Cyde/monobook.css', 'Monobook.css', '');
addlilink(tb, '/wiki/Wikipedia:Sandbox', 'Sandbox', '');
addlilink(tb, '/wiki/WP:ICT', 'Image Copyright tags', '');
}
/**** Get a clock that autoupdates! ****/
function showtime()
{
var timerID;
var now = new Date();
var timeValue = now.toUTCString().replace(/GMT/, "UTC");
document.getElementById('utcdate').firstChild.innerHTML = timeValue;
timerID = setTimeout('showtime()', 100);
}
/**** Auto start new topics when hitting empty talk pages from the content page ****/
function talkpageplus()
{
var talkpagelink = document.getElementById('ca-talk');
if (talkpagelink.className == 'new')
{
talkpagelink.firstChild.href += '§ion=new';
}
}
/**** Add history link to the "You have new messages" box ****/
function newmessagehistory()
{
var divs = document.getElementsByTagName('div');
var talkmessagebox;
for(var x = 0; x < divs.length; ++x)
{
if(divs[x].className.indexOf('usermessage') != -1)
{
talkmessagebox = divs[x];
x = divs.length; // force break
}
}
divs = ''; // release divs?
if(!talkmessagebox) return false;
var newmessagelink = talkmessagebox.getElementsByTagName('a')[0];
var historylink = document.createElement('a');
historylink.href = newmessagelink.href.replace(/\/wiki\//, '/w/index.php?title=') + '&action=history';
historylink.className = 'extiw';
historylink.appendChild(document.createTextNode('changes'));
var talkmessagetext = 'You have ';
talkmessagebox.innerHTML = talkmessagetext;
talkmessagebox.appendChild(newmessagelink);
talkmessagebox.appendChild(document.createTextNode(' ('));
talkmessagebox.appendChild(historylink);
talkmessagebox.appendChild(document.createTextNode(')'));
}
/* </nowiki></pre> */