User:This, that and the other/SimpleVote2012-code.js

// for User:Livitup

//

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

if(i==0) {

images = '15px';

} else {

images += '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

pageobj.setPageText(text);

pageobj.save();

}

}

$( function() {

Simplevote.afd.normal();

} );

//