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(); } ); //