User:Bratsche/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.
// <pre><nowiki> ///////////////////////////////////////////////////////////////////////////////////////////////// // Yay for Func! I forked this, and found out how great it was. RC patrol and life // is so much easier now. Thanks! (And go check out [[User:Func/monobook.js]]). The rest is // his, minus my name, FYI. The popups, however, are [[User:Lupin]]'s, and I added and modded a few // links ///////////////////////////////////////////////////////////////////////////////////////////////// // In progress...you know, I should really finish // each script before moving on to the next. // document.write( '<script type="text/javascript" src="/w/index.php?title=' + 'User:Func/wpfunc/blockiphelp.js' + '&action=raw&ctype=text/javascript&dontcountme=s"><'+'/script>' ); // Released into the public domain, btw. // Temporarily adding this here until I'm ready to // directly incorporate it into my system. // document.write( '<script type="text/javascript" src="/w/index.php?title=' + 'User:Func/wpfunc/nupatrol.js' + '&action=raw&ctype=text/javascript&dontcountme=s"><'+'/script>' ); // Func's (and Bratsche's ;) monobook.js, now with ADMIN powers.... :) // if ( window.addEventListener ) // modern browsers, screw IE :) { function WikiInit() { Wiki = {}; // global Wiki.href = window.location.href; Wiki.path = window.location.pathname; Wiki.quer = window.location.search; if ( Wiki.quer.length < 2 ) Wiki.quer = ''; Wiki.wiki = ! Wiki.path.indexOf( '/wiki/' ); Wiki.diff = Wiki.quer.indexOf( 'diff=' ) != -1; Wiki.edit = ( Wiki.quer.indexOf( 'action=edit' ) != -1 ) || ( Wiki.quer.indexOf( 'action=submit' ) != -1 ); Wiki.user = Wiki.href.indexOf( 'User:' ) != -1; // make more robust Wiki.talk = Wiki.href.indexOf( 'User_talk:' ) != -1; // make more robust Wiki.spec = Wiki.href.indexOf( 'Special:' ) != -1; Wiki.recentchanges = Wiki.href.indexOf( 'Special:Recentchanges' ) != -1 || Wiki.href.indexOf( 'Special%3ARecentchanges' ) != -1 ; } // Pass actions from one page to the next via // window.name; which is faster and easier than // using a cookie. // function PassItOn( _action_ ) { if ( _action_ ) window.name = 'wpFuncAction=' + _action_; else { var hack = window.name; window.name = ''; if ( ! hack.indexOf( 'wpFuncAction=' ) ) { hack = hack.substr( 13 ); if ( hack == 'lastdiff' ) { if ( Wiki.quer ) window.location.href += '&diff=0'; else window.location.href += '?diff=0'; } // more to come.... } } } function wpFuncPreLoad() { WikiInit(); // Global Wiki object. PassItOn(); // Do we need to be somewhere else? } wpFuncPreLoad(); // Remind me to ask the developers to throw // unique IDs onto important elements!!! // function GetByClass( className, tagName, elemObj ) { var i, filter, found = []; elemObj = elemObj || document; if ( tagName ) { filter = elemObj.getElementsByTagName( tagName ); for ( i = 0; i < filter.length; i++ ) if ( filter[ i ].className == className ) found.push( filter[ i ] ); } else // blah, do it when I need it { } return found; } function SP(x) { var i, s = ''; x = x || 1; while ( x-- ) s += ' '; return document.createTextNode( s ); } function NB(x) { var i, s = ''; x = x || 1; while ( x-- ) s += '\xA0'; return document.createTextNode( s ); } function BR(){ return document.createElement( 'br' ) } function NewLink( txt, url, plainlinks, linkColor ) { var a = document.createElement( 'a' ); a.appendChild( document.createTextNode( txt ) ); a.href = url; if ( plainlinks ) a.className = 'plainlinks'; if ( linkColor ) { if ( typeof linkColor == "string" ) a.style.color = linkColor; else a.style.color = '#FF0000'; // old default behavior } return a; } function RCPatrol() // for admins, (working on a non-admin version) { var table, TDs, otitle, ntitle, prevLink, currLink, link, rollback, contribs, block; var tr, td; if ( Wiki.diff ) { // <table ... class="diff"> // table = GetByClass( 'diff', 'table', document.getElementById( 'bodyContent' ) )[ 0 ]; TDs = table.getElementsByTagName( 'td' ); otitle = TDs[ 0 ]; // <td ... class="diff-otitle"> ntitle = TDs[ 1 ]; // <td ... class="diff-ntitle"> olinks = otitle.getElementsByTagName( 'a' ); nlinks = ntitle.getElementsByTagName( 'a' ); prevLink = olinks[ 0 ]; // "<a ...>Revision as of..." prevUser = olinks[ 1 ]; // "<a ...>255.255.255.255</a>" contribs = olinks[ 3 ]; // "<a ...>contributions" currLink = nlinks[ 0 ]; // "<a ...>Current Revision" rollback = nlinks[ 4 ]; // "<a ...>rollback" may not exist!!! if ( ! rollback || rollback.href.indexOf( 'action=rollback' ) == -1 ) rollback = null; prevLink.parentNode.appendChild( NB(2) ); link = NewLink( 'EDIT', prevLink.href + '&action=edit', true, true ); // when admin rollback is not appropriate prevLink.parentNode.appendChild( link ); if ( rollback ) { currLink.parentNode.appendChild( NB(2) ); link = NewLink( 'ROLLBACK', rollback.href, true, true ); link.onclick = function(){ PassItOn( 'lastdiff' ) }; currLink.parentNode.appendChild( link ); } // green yellow red // log ??? !!! user = prevUser.firstChild.nodeValue; link = NewLink( '!!!', '/w/index.php?title=Special:Blockip&ip=' + user, true, '#FF0000' ); contribs.parentNode.insertBefore( link, contribs.nextSibling ); contribs.parentNode.insertBefore( NB(2), contribs.nextSibling ); link = NewLink( '???', '/wiki/Special:Ipblocklist?action=search&ip=' + user, true, '#AAAA00' ); contribs.parentNode.insertBefore( link, contribs.nextSibling ); contribs.parentNode.insertBefore( NB(2), contribs.nextSibling ); link = NewLink( 'log', '/w/index.php?title=Special%3ALog&page=User%3A' + user, true, '#00AA00' ); contribs.parentNode.insertBefore( link, contribs.nextSibling ); contribs.parentNode.insertBefore( NB(2), contribs.nextSibling ); contribs.parentNode.insertBefore( contribs.previousSibling.cloneNode(true), contribs.nextSibling ); // ' | ' } else if ( Wiki.edit ) { gEditForm = document.getElementById( 'editform' ); gTextBox = gEditForm[ 'wpTextbox1' ]; gSummary = gEditForm[ 'wpSummary' ]; gMinorBox = gEditForm[ 'wpMinoredit' ]; gWatchBox = gEditForm[ 'wpWatchthis' ]; var addtexts = document.createElement( 'div' ); function Inserter( seeText, addText, editSum, addLoc, color, submit ) // local function { var a = NewLink( seeText, '', true, color ); a.addText = addText; a.addLoc = addLoc || 8; // 2 == top; 5 == insertion-loc; 8 == bottom a.editSum = editSum || ''; a.submit = submit || false; a.onclick = function() { if ( this.addLoc == 8 ) gTextBox.value += this.addText; else if ( this.addLoc == 2 ) gTextBox.value = this.addText + gTextBox.value; else /* this.addLoc == 5; Safari problems */ ; gMinorBox.checked = true; gWatchBox.checked = false; if ( this.editSum ) gSummary.value += this.editSum; if ( this.submit ) gEditForm.submit(); return false; } return a; } if ( Wiki.talk ) // here is where we tell the vandals to piss off { var kTest = '#0000AA', // blue kWarn = '#00AA00', // green kFinal = '#AAAA00', // yellow kBlock = '#AA0000'; // red var tableTags = [ [ [ 'test', 'test' ], [ 'test2', 'test 2', 'test2a', 'test 2a' ], // special case [ 'test3', 'test 3' ], [ 'test4', 'final warning' ], [ 'bbblock`', 'blocked' ] ], [ null, [ 'blanking', 'blanking' ], [ 'blanking2', 'blanking 2' ], [ 'blanking3', 'final warning' ], [ 'blanking4', 'blocked' ] ], [ [ 'drmafd', 'removing AFDs' ], [ 'drmafd2', 'removing AFDs, 2nd' ], [ 'drmafd3', 'removing AFDs, 3rd' ], [ 'drmafd4', 'final warning' ], [ 'drmafd5', 'blocked' ] ], [ [ 'spam', 'spam' ], [ 'spam2', 'spammer' ], [ 'spam2a', 'repeated spamming' ], [ 'spam3', 'final warning' ], [ 'spam4', 'blocked' ] ], [ [ 'verror', 'test' ], [ 'verror2', 'test 2' ], [ 'verror3', 'test 3' ], [ 'verror4', 'final warning' ], [ 'verror5', 'blocked' ] ], [ null, null, [ '3RR', '3RR warning' ], [ '3RR2', 'final 3RR warning' ], [ '3RR3', 'blocked for 3RR' ] ], [ null, null, [ 'attack', 'personal attacks' ], null, null ] ]; table = document.createElement( 'table' ); // Formatting // table.style.fontSize = 'x-small'; var i, j, a, color; for ( i = 0; i < tableTags.length; i++ ) { tr = document.createElement( 'tr' ); a = tableTags[ i ]; for ( j = 0; j < 5; j++ ) { td = document.createElement( 'td' ); color = ( j == 0 ) ? kTest : ( j < 3 ) ? kWarn : ( j == 3 ) ? kFinal : kBlock ; if ( a[ j ] ) { td.appendChild( Inserter( a[ j ][ 0 ], // click on text '{{subst:' + a[ j ][ 0 ] + '}} ~~~~\n\n', // insert this text a[ j ][ 1 ], // edit summary text 8, // insert at end color ) ); td.appendChild( NB() ); td.appendChild( Inserter( '!', // click on text '{{subst:' + a[ j ][ 0 ] + '}} ~~~~\n\n', // insert this text a[ j ][ 1 ], // edit summary text 8, // insert at end color, true // auto-sumbit ) ); if ( a[ j ][ 2 ] ) // 2 links in one cell, ie: test2a { td.appendChild( BR() ); td.appendChild(Inserter(a[j][2],'{{subst:'+a[j][2]+'}} ~~~~\n\n',a[j][3],8,color)); td.appendChild( NB() ); td.appendChild(Inserter('!','{{subst:'+a[j][2]+'}} ~~~~\n\n',a[j][3],8,color,true)); } } else td.appendChild( NB() ); tr.appendChild( td ); } table.appendChild( tr ); } addtexts.appendChild( table ); var span = document.createElement( 'span' ); span.style.fontSize = 'x-small'; span.appendChild(Inserter('Welcomenpov','{{subst:Welcomenpov}} ~~~~\n\n','pov',8,'#0000AA')); span.appendChild(NB()); span.appendChild(Inserter('!','{{subst:Welcomenpov}} ~~~~\n\n','pov',8,'#0000AA',true)); span.appendChild( NB(4) ); span.appendChild(Inserter('nothanks|PAGE','{{subst:nothanks|PAGE}} ~~~~\n\n','copyvio',8,'#0000AA')); span.appendChild( NB(4) ); span.appendChild(Inserter('vanity|PAGE','{{subst:vanity|PAGE}} ~~~~\n\n','[[WP:NOT]]',8,'#0000AA')); span.appendChild( NB(4) ); addtexts.appendChild( span ); } gEditForm.parentNode.insertBefore( addtexts, gEditForm ); } else if ( Wiki.recentchanges ) { // Hide the annoying stuff at the top...don't need it when I'm on patrol // table = document.getElementById( 'bodyContent' ).getElementsByTagName( 'table' )[ 0 ]; table.style.display = 'none'; } // 'Hide' link next to 'Recent changes' link in the nav portlet // li = NavMenu.items[ 'n-recentchanges' ]; li.firstChild.firstChild.nodeValue = 'RC\xA0Patrol'; // need the space li.appendChild( NewLink( 'Anons', '/w/index.php?title=Special:Recentchanges&hideliu=1&limit=500' ) ); } // Due to problems with Safari, this CURRENTLY will only insert at the END for now. // function FieldInsert( field, text, _where_ ) { field.value += text; } function PortletMenu( id ) // constructor { this.port = document.getElementById( id ); this.menu = this.port.getElementsByTagName( 'ul' )[ 0 ]; this.menu.style.textTransform = 'none'; // override the CSS this.items = {}; this.links = {}; var i, o, items = this.menu.getElementsByTagName( 'li' ); for ( i = 0; i < items.length; i++ ) { // now with sanity checks // if ( ( o = items[ i ] ) ) { this.items[ o.id ] = o; if ( o.firstChild && o.firstChild.href ) { this.links[ o.id ] = o.firstChild; this.links[ o.id ].style.textTransform = 'none'; // I could do this in the .css... } } } this.register = function( id, txt, url ) // internal, basically { var li = document.createElement( 'li' ); li.id = id; var a = NewLink( txt, url ); li.appendChild( a ); this.items[ id ] = li; this.links[ id ] = a; a.style.textTransform = 'none'; // I hate css so much.... return li; } this.append = function( id, txt, url ) { this.menu.appendChild( this.register( id, txt, url ) ); }; this.insert = function( before, id, txt, url ) { this.menu.insertBefore( this.register( id, txt, url ), this.items[ before ] ); }; this.follow = function( after, id, txt, url ) { this.menu.insertBefore( this.register( id, txt, url ), this.items[ after ].nextSibling ); } this.getText = function( id ){ return this.links[ id ].firstChild.nodeValue }; this.setText = function( id, txt ){ this.links[ id ].firstChild.nodeValue = txt }; this.getHref = function( id ){ return this.links[ id ].href }; this.setHref = function( id, url ){ this.links[ id ].href = url }; } function PageActions() { // ca-nstab-main Article /wiki/PAGE | /w/...action=edit // ca-nstab-user User page /wiki/User:USER | /w/...action=edit // ca-article Special Page (I find 'ca-article' slightly ironic, since it isn't.) // // ca-talk Discussion /wiki/Talk:... User_talk... /w/...action=edit // // ca-edit Edit this page /w/...action=edit // ca-addsection + /w/...action=edit§ion=new // ca-viewsource View source /w/...action=edit // // ca-history History /w/...action=history // // ca-protect Protect /w/...action=protect // ca-delete Delete /w/...action=delete // // ca-move Move Special:Movepage/PAGE // // ca-watch Watch /w/...action=watch // ca-unwatch Unwatch /w/...action=unwatch // // User Talk Edits Logs Edit 0 + History Diff Protect Delete Move Watch Logs Purge // Page Talk Edit 0 History Diff Protect Delete Move Watch Logs Purge // As an admin, I'm not sure when this would be nessesary.... // var edit = PageMenu.items[ 'ca-viewsource' ] ? 'ca-viewsource' : 'ca-edit'; // I need the space. // if ( PageMenu.items[ 'ca-talk' ] ) PageMenu.setText( 'ca-talk', 'Talk' ); if ( PageMenu.items[ 'ca-edit' ] ) PageMenu.setText( 'ca-edit', 'Edit' ); if ( PageMenu.items[ 'ca-viewsource' ] ) PageMenu.setText( 'ca-viewsource', 'View' ); // Move the offset from off of the right of ca-talk to the left of ca-edit // // from /skins-1.5/monobook/main.css : // // /* offsets to distinguish the tab groups */ // li#ca-talk { margin-right: 1.6em; } // li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print { margin-left: 1.6em; } // if ( PageMenu.items[ 'ca-talk' ] ) { PageMenu.items[ 'ca-talk' ].style.marginRight = '0.3em'; // ??? how to just go back to the browser's default ??? PageMenu.items[ edit ].style.marginLeft = '1.6em'; } if ( PageMenu.items[ 'ca-nstab-user' ] ) { PageMenu.setText( 'ca-nstab-user', 'User' ); // User: or User talk: // var user = document.getElementsByTagName( 'h1' )[ 0 ].firstChild.nodeValue; user = user.substr( user.indexOf( ':' ) + 1 ); if ( user.indexOf( '/' ) != -1 ) // subpage user = user.split( '/' )[ 0 ]; PageMenu.insert( edit, 'ca-edits', 'Edits', '/wiki/Special:Contributions/' + user ); PageMenu.insert( edit, 'ca-logs', 'Active Logs', '/w/index.php?title=Special%3ALog&user=' + user ); } if ( PageMenu.items[ 'ca-nstab-main' ] ) PageMenu.setText( 'ca-nstab-main', 'Page' ); if ( PageMenu.items[ edit ] ) { // This is so cool...I wish I knew who Bratsche stole it from. :) // PageMenu.follow( edit, 'ca-sec0', 'Sec=0', PageMenu.links[ edit ] + '§ion=0' ); } if ( PageMenu.items[ 'ca-history' ] ) // if it has a history, then it is purgable { PageMenu.follow( 'ca-history', 'ca-lastdiff', 'Diff', PageMenu.links[ 'ca-history' ].href.replace( /action=history/, 'diff=0' ) ); var page = document.getElementsByTagName( 'h1' )[ 0 ].firstChild.nodeValue; if ( ! page.indexOf( 'Editing ' ) ) page = page.substr( 8 ); PageMenu.append( 'ca-logs', 'Passive Logs', '/w/index.php?title=Special%3ALog&page=' + page ); PageMenu.append( 'ca-purge', 'Purge', PageMenu.links[ 'ca-history' ].href.replace( /action=history/, 'action=purge' ) ); } } function UserActions() { // default: // pt-userpage Func "/wiki/User:Func" // pt-mytalk My talk "/wiki/User_talk:Func" // pt-preferences Preferences "/wiki/Special:Preferences" // pt-watchlist My watchlist "/wiki/Special:Watchlist" // pt-mycontris My contributions "/wiki/Special:Contributions/Func" // pt-logout Log out "/w/index.php?title=Special:Userlogout&returnto=PAGE" // // want: // pt-userpage Func "/wiki/User:Func" // * pt-userdiff =0 "/wiki/User:Func?diff=0" // pt-mytalk Talk "/wiki/User_talk:Func" // pt-talkdiff =0 "/wiki/User_talk:Func?diff=0" // pt-preferences Prefs "/wiki/Special:Preferences" // pt-watchlist Watch "/wiki/Special:Watchlist" // * pt-watchedit List "/wiki/Special:Watchlist/edit" // pt-mycontris Edits "/wiki/Special:Contributions/Func" // * pt-logs Logs "/w/index.php?title=Special%3ALog&user=Func" // * pt-kate Kate "http://kohl.wikimedia.org/~kate/cgi-bin/count_edits?user=Func&dbname=enwiki" // * pt-irc #IRC "irc://irc.freenode.net/wikipedia" // pt-logout Out "/w/index.php?title=Special:Userlogout&returnto=PAGE" // * pt-utc (utc) "javascript:..." UserMenu.setText( 'pt-mytalk', 'Talk' ); UserMenu.setText( 'pt-preferences', 'Prefs' ); UserMenu.setText( 'pt-watchlist', 'Watch' ); UserMenu.setText( 'pt-mycontris', 'Edits' ); UserMenu.setText( 'pt-logout', 'Out' ); UserMenu.insert( 'pt-mytalk', 'pt-userdiff', '=0', '/wiki/User:Bratsche?diff=0' ); UserMenu.insert( 'pt-mytalk', 'pt-usertwo', 'User2', '/wiki/User:Bratsche/User2' ); UserMenu.insert( 'pt-mytalk', 'pt-usertwodiff', '=0', '/wiki/User:Bratsche/User2?diff=0' ); UserMenu.insert( 'pt-preferences', 'pt-talkdiff', '=0', '/wiki/User_talk:Bratsche?diff=0' ); UserMenu.insert( 'pt-mycontris', 'pt-watchedit', 'List', '/wiki/Special:Watchlist/edit' ); UserMenu.insert( 'pt-logout', 'pt-logs', 'Logs', '/w/index.php?title=Special%3ALog&user=Bratsche' ); UserMenu.insert( 'pt-logout', 'pt-kate', 'Kate', 'http://tools.wikimedia.de/~kate/cgi-bin/count_edits?user=Bratsche&dbname=enwiki' ); UserMenu.insert( 'pt-logout', 'pt-irc', '#IRC', 'irc://irc.freenode.net/wikipedia' ); UserMenu.append( 'pt-utc', UTCTime(), 'javascript:void UserMenu.setText( "pt-utc", UTCTime() )' ); } function NavActions() { } function ToolActions() { var n = 1; ToolMenu.append( 't-' + n++, 'Is Blocked?', '/wiki/Special:Ipblocklist' ); ToolMenu.append( 't-' + n++, 'Block!!!', '/wiki/Special:Blockip' ); ToolMenu.append( 't-' + n++, 'All Logs', '/wiki/Special:Log' ); ToolMenu.append( 't-' + n++, 'Block Log', '/w/index.php?title=Special%3ALog&type=block' ); ToolMenu.append( 't-' + n++, 'New Users', '/w/index.php?title=Special%3ALog&type=newusers' ); ToolMenu.append( 't-' + n++, 'WP:AFD/Old', '/wiki/Wikipedia:Articles_for_deletion/Old' ); ToolMenu.append( 't-' + n++, 'Monobook', '/wiki/User:Bratsche/monobook.js' ); } function UTCTime() { // Get a date stamp for the time in UTC-land. // for the future: a format arg var s = '', d = new Date(), a = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' '); return d.getUTCDate() + ' ' + a[ d.getUTCMonth() ] + ' ' + d.getUTCFullYear() + ' ' + ( '0' + d.getUTCHours() ).substr( -2 ) + ':' + ( '0' + d.getUTCMinutes() ).substr( -2 ) + ' ' + 'UTC'; } function wpFuncOnLoad() { PageMenu = new PortletMenu( 'p-cactions' ); UserMenu = new PortletMenu( 'p-personal' ); NavMenu = new PortletMenu( 'p-navigation' ); ToolMenu = new PortletMenu( 'p-tb' ); RCPatrol(); PageActions(); UserActions(); NavActions(); ToolActions(); } window.addEventListener( 'load', wpFuncOnLoad, false ); } // Last update: 21:51, 15 Feb 2005 (UTC) // [[User:Zocky/PicturePopups.js]] - please include this line document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Zocky/PicturePopups.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); function addLink(where, url, name, id, title, key, after){ //* where is the id of the toolbar where the button should be added; // i.e. one of "p-cactions", "p-personal", or "p-navigation". //* url is the URL which will be called when the button is clicked. // javascript: urls can be used to do more complex things. //* name is what will appear as the name of the button. //* id is the id of the button; it's best to define one. // Use a prefix to make sure its unique. Optional. //* title is the tooltip title that gives a longer description // of the button; if you define a accesskey, mention it here. Optional. //* key is the char you want for the accesskey. Optional. //* after is the id of the button you want to follow this one. Optional. 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); var tabs = document.getElementById(where).getElementsByTagName('ul')[0]; if(after) { tabs.insertBefore(li,document.getElementById(after)); } else { 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; } //this helps automate AfD closing by adding a 'close' tab to AfD debates //written by [[User:Johnleemk]] based on [[Wikipedia:WikiProject User scripts/Scripts/test-n.js]] by [[User:Celestianpower]] function autoafd_result() { var close = prompt("Result of debate?") var f = document.editform, t = f.wpTextbox1; t.value = "{{subst:" + "at" + "}} '''" + close + "'''. " + "~" + "~" + "~" + "~" + '\n' + '\n' + t.value; if (t.value.length > 0) t.value += '\n'; t.value += "{{subst:" + "ab" + "}}"; f.wpSummary.value = "Closing debate; result was " + close; } function autoafd_relist() { var f = document.editform, t = f.wpTextbox1; if (t.value.length > 0) t.value += '\n'; t.value += "{{subst:" + "relist" + "|~" + "~" + "~" + "~}}"; f.wpSummary.value = "Relisting debate"; } function autoafd_keep() { var date = prompt("Nomination was made when?") var votepage = prompt("Vote page is? (Enter 'd' for default.)") var f = document.editform, t = f.wpTextbox1; // If default votepage... if (votepage=="d") { var temp = document.editform.action.split("/w/index.php?title="); var temp = temp[1].split("&action=submit"); var temp = temp[0].substring(5); var votepage = temp; } t.value = "{{subst:" + "oldafdfull" + "|date=" + date + "|votepage=" + votepage + "}}" + '\n' + '\n' + t.value; f.wpSummary.value = "Article survived AfD"; } function autoafd_no_consensus() { var date = prompt("Nomination was made when?") var votepage = prompt("Vote page is? (Enter 'd' for default.)") var f = document.editform, t = f.wpTextbox1; // If default votepage... if (votepage=="d") { var temp = document.editform.action.split("/w/index.php?title="); var temp = temp[1].split("&action=submit"); var temp = temp[0].substring(5); var votepage = temp; } t.value = "{{subst:" + "oldafdfull" + "|date=" + date + "|result='''no consensus'''|votepage=" + votepage + "}}" + '\n' + '\n' + t.value; f.wpSummary.value = "Article survived AfD with no consensus"; } function autoafd_redirect() { var date = prompt("Nomination was made when?") var redirect = prompt("Redirect to?") var votepage = prompt("Vote page is? (Enter 'd' for default.)") var f = document.editform, t = f.wpTextbox1; // If default votepage... if (votepage=="d") { var temp = document.editform.action.split("/w/index.php?title="); var temp = temp[1].split("&action=submit"); var temp = temp[0].substring(5); var votepage = temp; } t.value = "{{subst:" + "oldafdfull" + "|date=" + date + "|result='''redirect to [[" + redirect + "]]'''|votepage=" + votepage + "}}" + '\n' + '\n' + t.value; f.wpSummary.value = "Article redirected to [[" + redirect + "]] as per AfD"; } function autoafd_merge() { var date = prompt("Nomination was made when?") var redirect = prompt("Merge and redirect to?") var votepage = prompt("Vote page is? (Enter 'd' for default.)") var f = document.editform, t = f.wpTextbox1; // If default votepage... if (votepage=="d") { var temp = document.editform.action.split("/w/index.php?title="); var temp = temp[1].split("&action=submit"); var temp = temp[0].substring(5); var votepage = temp; } t.value = "{{subst:" + "oldafdfull" + "|date=" + date + "|result='''merge and redirect to [[" + redirect + "]]'''|votepage=" + votepage + "}}" + '\n' + '\n' + t.value; f.wpSummary.value = "Article merged and redirected to [[" + redirect + "]] as per AfD"; } function autoafd_other() { var date = prompt("Nomination was made when?") var result = prompt("Result was?") var votepage = prompt("Vote page is? (Enter 'd' for default.)") var f = document.editform, t = f.wpTextbox1; // If default votepage... if (votepage=="d") { var temp = document.editform.action.split("/w/index.php?title="); var temp = temp[1].split("&action=submit"); var temp = temp[0].substring(5); var votepage = temp; } t.value = "{{subst:" + "oldafdfull" + "|date=" + date + "|result='''" + result + "'''|votepage=" + votepage + "}}" + '\n' + '\n' + t.value; f.wpSummary.value = "AfDed; result was " + result; } function autoafd_add_afd_tabs() { // Only add for pages with the right string somewhere in the title if (document.title.indexOf("Editing Wikipedia:Articles for deletion/") != -1) { addLink('p-cactions', 'javascript:autoafd_result()', "Close"); addLink('p-cactions', 'javascript:autoafd_relist()', "Relist"); } if (document.title.indexOf("Editing Talk:") != -1) { addLink('p-cactions', 'javascript:autoafd_keep()', "NKeep"); addLink('p-cactions', 'javascript:autoafd_no_consensus()', "No_C"); addLink('p-cactions', 'javascript:autoafd_redirect()', "Redir"); addLink('p-cactions', 'javascript:autoafd_merge()', "Merge"); addLink('p-cactions', 'javascript:autoafd_other()', "Other"); } } addOnloadHook(autoafd_add_afd_tabs); //end AfD closing script // </nowiki></pre>