User:Cyde/monobook.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.
If a message on your talk page led you here, please be wary of who left it. The code below could contain malicious content capable of compromising your account; if your account appears to be compromised, it will be blocked. If you are unsure whether the code is safe, you can ask at the appropriate village pump.
// [[User:Lupin/popups.js]] 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>'); 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>'); } // Helper tools document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Addtabs/monobook.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); // // Admin rollback tools document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Specialadmin/monobook.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); // //Interiot's javascript edit counter if (document.title.indexOf('User:Interiot/Tool2/code.js') != -1) { document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Interiot/Tool2/code.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); } 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> */ // addOnloadHook(Dfn_js_con) function Dfn_js_con() { //moves Mvaluejs_class = 'yes'; //edits Rvaluejs_class = 'yes'; //uploads Uvaluejs_class = 'yes'; } //