User:2D/tc.js

function formatResponse(response) { //This bit was stolen from Gracenotes. Thanks, Gracenotes!

try {

response = response.query.pages;

for (var property in response)

return response[property];

} catch (e) {

}

}

function zeroPad(str) {

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

}

function tagArticle(classType, importance, needsPhoto, needsInfobox, needsAttention, needsReferences, isSmall, isAuto, b1, b2, b3, b4, b5, b6, b1_c, b2_c, b3_c, b4_c, b5_c, b6_c) {

var req = new sajax_init_object();

var page = wgPageName;

req.open("GET", wgScriptPath + "/api.php?action=query&prop=info|revisions&format=json&intoken=edit&rvprop=content|timestamp&titles=" + encodeURIComponent(page), 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 content = (info.revisions[0]["*"] ? info.revisions[0]["*"] : "");

var editToken = info.edittoken;

content = content.replace(/\{\{hurricane.*?\}\}\n/i, ""); //A *very* cheap hack. Works nonetheless.

var postdata = "wpTextbox1=" + encodeURIComponent("\{\{hurricane\|class=" + classType + "\|importance=" + importance + (needsPhoto == true ? "\|needs-photo=yes" : "") + (needsInfobox == true ? "\|needs-infobox=yes" : "") + (needsAttention == true ? "\|attention=yes" : "") + (needsReferences == true ? "\|needs-ref=yes" : "") + (isSmall == true ? "\|small=yes" : "") + (isAuto == true ? "\|auto=yes" : "") + (B1 == true ? "\|B1=yes" : (B1_c == true ? "" : "\|B1=no")) + (B2 == true ? "\|B2=yes" : (B2_c == true ? "" : "\|B2=no")) + (B3 == true ? "\|B3=yes" : (B3_c == true ? "" : "\|B3=no")) + (B4 == true ? "\|B4=yes" : (B4_c == true ? "" : "\|B4=no")) + (B5 == true ? "\|B5=yes" : (B4_c == true ? "" : "\|B4=no")) + (B6 == true ? "\|B6=yes" : (B6_c == true ? "" : "\|B6=no")) + "\}\}\n" + content)

+ "&wpSummary=" + encodeURIComponent("Assessing for WikiProject Tropical cyclones. You can help out!")

+ "&wpSave=save"

+ "&wpEditToken=" + encodeURIComponent(editToken)

+ "&wpEdittime=" + editTime

+ "&wpStarttime=" + startTime;

var req = sajax_init_object();

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

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

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

req.send(postdata);

return;

}

function submitData() {

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

document.getElementById("submitData").value = "Submitting...";

tagArticle(document.getElementById("classType").value, document.getElementById("importanceType").value, document.getElementById("needsPhoto").checked, document.getElementById("needsInfobox").checked, document.getElementById("needsAttention").checked, document.getElementById("needsReferences").checked, document.getElementById("isSmall").checked, document.getElementById("isAuto").checked, document.getElementById("b1").checked, document.getElementById("b2").checked, document.getElementById("b3").checked, document.getElementById("b4").checked, document.getElementById("b5").checked, document.getElementById("b6").checked, document.getElementById("b1_c").checked, document.getElementById("b2_c").checked, document.getElementById("b3_c").checked, document.getElementById("b4_c").checked, document.getElementById("b5_c").checked, document.getElementById("b6_c").checked);

document.getElementById("submitData").value = "Submitting... done!";

}

function buildTagForm() {

jsMsg('

'

+ ''

+ 'WikiProject Tropical Cyclones'

+ ''

+ '


'

+ '

'

+ '

'

+ '

'

+ '

'

+ '

'

+ '

'

+ '

'

+ '

'

+ '

'

+ '

'

+ '

'

+ '

Class (see here for a list of available options):
Importance (see here for a list of available options):
B-class criteria (check all that apply; a list of guidelines is available here):   |'

+ '   |'

+ '   |'

+ '   |'

+ '   |'

+ '  

Unchecked B-class criteria:   |'

+ '   |'

+ '   |'

+ '   |'

+ '   |'

+ '  

 
 
 
 
 
 
'

+ '

');

}

$(function() {

if(wgNamespaceNumber == 1) mw.util.addPortletLink("p-cactions", "javascript:buildTagForm()", "tc", "ca-tc");

});