User:2D/afdvote2.js

function formatResponse(response) {

try {

response = response.query.pages;

for (var property in response)

return response[property];

} catch (e) {

}

}

function zeroPad(str)

{

return ("0" + str).slice(-2);

}

function buildForm()

{

jsMsg('

'

+ ''

+ 'AFD Voting'

+ ''

+ '


'

+ '

'

+ '

'

+ '

'

+ '

Vote(eg. Delete):
Reason:
'

+ '

');

}

function vote()

{

document.getElementById("submitData").disabled=true;

var yourvote = document.getElementById("vote").value;

var reason = document.getElementById("reason").value;

if(yourvote == "" || reason == "")

{

alert("Please enter a vote and a reason");

document.getElementById("submitData").disabled=false;

return;

}

var req = new sajax_init_object();

req.open("GET", wgScriptPath + "/api.php?action=query&prop=info|revisions&format=json&intoken=edit&rvprop=content|timestamp&titles=" + encodeURIComponent(mw.config.get('wgPageName')), false);

req.send(null);

var info = formatResponse(eval("(" + req.responseText + ")"));

var date = new Date();

var startTime = date.getUTCFullYear() + zeroPad(date.getUTCMonth() + 1) + zeroPad(date.getUTCDate()) + zeroPad(date.getUTCHours()) + zeroPad(date.getUTCMinutes()) + zeroPad(date.getUTCSeconds());

var editTime = (info.revisions[0] ? info.revisions[0].timestamp.replace(/[^0-9]/g, "") : startTime);

var pagecontent = (info.revisions[0]["*"] ? info.revisions[0]["*"] : "");

var editToken = info.edittoken;

pagecontent += "\r\n" + "*" + yourvote + " - " + reason + " ~" + "~" + "~" + "~" + "\r\n";

pagecontent = encodeURIComponent(pagecontent);

var postdata = "wpMinoredit=1&wpTextbox1=" + pagecontent + "&wpSummary=" + encodeURIComponent("Voting Using AFDVote") + "&wpSave=save&wpEditToken=" + encodeURIComponent(editToken) + "&wpEdittime=" + editTime + "&wpStarttime=" + startTime;

var req1 = new sajax_init_object();

req1.open("POST", mw.config.get('wgServer') + wgScript + "?title=" + encodeURIComponent(mw.config.get('wgPageName')) + "&action=submit", false);

req1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

req1.setRequestHeader("Content-Length", postdata.length);

req1.send(postdata);

location.reload(true); // Refresh

return;

}

function start()

{

if(wgTitle.indexOf("Articles for deletion/") != -1)

{

mw.util.addPortletLink("p-cactions","javascript:buildForm()","!vote","ca-vote");

}

}

addOnloadHook(start);