User:Livitup/SimpleVote2012-code.js

// for User:Livitup // if(typeof Simplevote !== 'undefined') { Simplevote.afd = {}; if( typeof( SimplevoteConfig.useAfdIcons ) == 'undefined' ) { SimplevoteConfig.useAfdIcons = false; } Simplevote.afd.normal = function { if(mw.config.get('wgPageName').indexOf( 'Wikipedia:Articles_for_deletion/Log/') != -1 ) { // yes its redundant, but it works for safety purposes // afdhelper code goes here var anchors = []; var oldanchors = document.getElementById('bodyContent').getElementsByTagName('a'); for (var i=0; i < oldanchors.length; i++) { anchors[i] = oldanchors[i]; }   		var url_re = /\?title=Wikipedia:Articles_for_deletion\/([^&]+)&action=edit&/; var url, matches; for (var i=0; i < anchors.length; i++) { if (!(matches = anchors[i].href.match(url_re)) || (matches[1].substr(0, 4) == 'Log/')) continue; var article = matches[1]; var na = document.createElement('a'); var query = new Morebits.queryString( anchors[i].href.split('?',2)[1].toString ); var link = query.get('title'); na.href = "javascript:Simplevote.afd.voteon('"+escape(link).replace(/_/g,' ')+"')"; na.title = "Vote on deletion of "+unescape(link).replace(/_/g,' ').split('/',2)[1]; var inlink = document.createElement('sup'); inlink.appendChild(document.createTextNode('vote')); na.appendChild(inlink); anchors[i].parentNode.insertBefore(na, anchors[i].nextSibling); }	} } Simplevote.afd.voteon = function(link) { var Window = new Morebits.simpleWindow( 600, 200 ); Window.setTitle( "Create a vote" ); var form = new Morebits.quickForm( Simplevote.afd.voteon.evaluate ); var categories = form.append( {			type: 'select',			name: 'vote',			label: 'Select vote: ' //			event: twinklearv.callback.change_category		} ); categories.append( {			type: 'option',			label: 'Delete',			value: 'Symbol delete vote.svg|Delete'		} ); categories.append( {			type: 'option',			label: 'Keep',			value: 'Symbol keep vote.svg|Keep'		} ); categories.append( {			type: 'option',			label: 'Weak Delete',			value: 'Symbol delete vote.svg|Weak Delete'		} ); categories.append( {			type: 'option',			label: 'Weak Keep',			value: 'Symbol keep vote.svg|Weak Keep'		} ); categories.append( {			type: 'option',			label: 'Speedy delete',			value: 'Symbol delete vote.svg|Speedy delete'		} ); categories.append( {			type: 'option',			label: 'Merge/redirect',			value: 'Symbol merge vote.svg|Symbol redirect vote.svg|Merge/redirect'		} ); categories.append( {			type: 'option',			label: 'Redirect',			value: 'Symbol redirect vote.svg|Redirect'		} ); categories.append( {			type: 'option',			label: 'Merge',			value: 'Symbol merge vote.svg|Merge'		} ); categories.append( {			type: 'option',			label: 'Strong keep',			value: 'Symbol keep vote.svg|Strong keep'		} ); categories.append( {			type: 'option',			label:'Strong delete',			name: 'Symbol delete vote.svg|Strong delete'		} ); categories.append( {			type: 'option',			label:'Comment',			name: 'Symbol comment vote.svg|Comment'		} ); form.append( {			type: 'hidden',			name: 'link',			value: link		} ); form.append( {			type: 'textarea',			name: 'reason',			label: 'Comment:'		} ); form.append( { type:'submit' } ); var result = form.render; Window.setContent( result ); Window.display; } Simplevote.afd.voteon.evaluate = function(e) { var form = e.target; //      alert( form.vote.value + ' on ' + form.link.value + ' for reason "' + form.reason.value + '"' ); var params = { vote: form.vote.value, //		article: form.link.value, // just in case, hopefully temp as it is unneccesary reason: form.reason.value };	var link = form.link.value; Morebits.status.init( form ); Morebits.simpleWindow.setButtonsEnabled(false); //Morebits.wiki.actionCompleted.redirect = mw.config.get('wgPageName'); Morebits.wiki.actionCompleted.notice = "Adding vote"; var wikipedia_page = new Morebits.wiki.page( link, 'Grabbing vote page for article ' + link.split('/',2)[1] ); wikipedia_page.setCallbackParameters(params); wikipedia_page.load(Simplevote.afd.voteon.callbacks.main); } Simplevote.afd.voteon.callbacks = { main: function(pageobj) { // code to make the vote goes here - params.vote, and params.reason are available var params = pageobj.getCallbackParameters; var rawvote = params.vote; var reason = params.reason; var text = pageobj.getPageText; Morebits.status.info( 'Automatically adding vote to page text...' ); var votearr = rawvote.split('|'); var votetext = votearr[votearr.length-1]; if(reason != '') { temptext = '\'\'\ + votetext + '\'\'\'—' + reason + ' ' + ; } else { temptext = '\'\'\ + votetext + '\'\'\' ' + ; }               for(var i=0; i<votearr.length-1; i++) { if(i==0) { images = ''; } else { images += ''; }               }                if(SimplevoteConfig.useAfdIcons) { temptext = '\n* ' + images + ' ' + temptext; } else { temptext = '\n* ' + temptext; }               if(votetext == 'Comment') { summary = 'Added ' + votetext.toLowerCase + SimplevoteConfig.summaryAd + '.'; } else { summary = 'Voted ' + votetext.toLowerCase + SimplevoteConfig.summaryAd + '.'; }               text += temptext; // alert(text); // DEBUG pageobj.setEditSummary(summary); pageobj.setPageText(text); pageobj.save; } } $( function {	Simplevote.afd.normal; } ); } //