Jump to content

User:Paranomia/simplevoteafd.js

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// <nowiki>
if(typeof Simplevote !== 'undefined') {
Simplevote.afd = new Object();
if( typeof( SimplevoteConfig.useAfdIcons ) == 'undefined' ) {
	SimplevoteConfig.useAfdIcons = true;
}
$( function() {
	Simplevote.afd.normal();
}
);
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 = new Array();
    		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 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 SimpleWindow( 600, 200 );
        Window.setTitle( "Create a vote" );
        var form = new 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: '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 query = { 
		'title': form.link.value, 
		'action': 'submit'
	};
	Status.init( form );
 
	Wikipedia.actionCompleted.redirect = null; // we will try null and see if it works, was previously wgPageName
	Wikipedia.actionCompleted.notice = "Adding vote";
	var wikipedia_wiki = new Wikipedia.wiki( 'Grabbing vote page for article ' + form.link.value.split('/',2)[1], query, Simplevote.afd.voteon.callbacks.main );
	wikipedia_wiki.params = params;
	wikipedia_wiki.get();
}
Simplevote.afd.voteon.callbacks = {
main: function(self) {
		// code to make the vote goes here - self.params.vote, and self.params.reason are available - responseXML should be available too
		var rawvote = self.params.vote;
		var reason = self.params.reason;
		var form = self.responseXML.getElementById('editform');
		if( !form ) {
//			Status.error( 'Failed to retrieve edit form.' );
			return;
		}
		var text = form.wpTextbox1.value; // now we have it in a nice var, we can do various operations on it
//                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 = '[[Image:' + votearr[i] + '|15px]]';
                } else {
                images += '[[Image:' + votearr[i] + '|15px]]';
                }
                }
                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
		var postData = {
			'wpMinoredit': undefined,
			'wpWatchthis': undefined,
			'wpStarttime': form.wpStarttime.value,
			'wpEdittime': form.wpEdittime.value,
			'wpAutoSummary': form.wpAutoSummary.value,
			'wpEditToken': form.wpEditToken.value,
			'wpSummary': summary,
			'wpTextbox1': text
		};
//                Status.info( 'Saving changes...' );
               	  self.post( postData );
//                Status.info( 'Done' )
	}
}
}
// </nowiki>