Jump to content

User:Coffee/arkansas.js

From Wikipedia, the free encyclopedia
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.
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(/\{\{\s*[Ww]ikiProject Arkansas.*?\}\}\s*$/m,"\{\{WikiProject Arkansas\|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" : (b5_c == true ? "\|b5=no" : "")) + (b6 == true ? "\|b6=yes" : (b6_c == true ? "\|b6=no" : "")) + "\}\}\n").replace(/\{\{\s*[Ww]PARKANSAS.*?\}\}\s*$/m,"\{\{WikiProject Arkansas\|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" : (b5_c == true ? "\|b5=no" : "")) + (b6 == true ? "\|b6=yes" : (b6_c == true ? "\|b6=no" : "")) + "\}\}\n"); //A *very* cheap hack.  Works nonetheless.
 
    var postdata = "wpTextbox1=" + encodeURIComponent("" + content)
                 + "&wpSummary=" + encodeURIComponent("Assessing for WikiProject Arkansas. [[WP:ARK|You can help]]!")
                 + "&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('<fieldset style="font-size:10pt">'
            + '<legend>'
                + 'WikiProject Arkansas'
            + '</legend>'
            + '<table style="background-color:transparent;color:#000000;font-size:10pt"><br />'
                + '<tr><td>Class <small>(see <a href="http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Arkansas/Assessment#Quality_scale">here</a> for a list of available options)</small>: </td><td><input type="text" name="classType" id="classType" /></td></tr>'
                + '<tr><td>Importance <small>(see <a href="http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Arkansas/Assessment#Importance_scale">here</a> for a list of available options)</small>: </td><td><input type="text" name="importanceType" id="importanceType" /></td></tr>'
                + '<tr><td>Passed B-class criteria <small>(check all that apply; a list of guidelines is available <a href="http://en.wikipedia.org/wiki/Wikipedia:Version_1.0_Editorial_Team/Assessment/B-Class_criteria">here</a>)</small>: </td><td><input type="checkbox" name="b1" id="b1" />&nbsp;<label for="b1">B1 <small>(refs)</small></label>&nbsp;|'
                    + '&nbsp;<input type="checkbox" name="b2" id="b2" />&nbsp;<label for="b2">B2 <small>(content)</small></label>&nbsp;|'
                    + '&nbsp;<input type="checkbox" name="b3" id="b3" />&nbsp;<label for="b3">B3 <small>(structured)</small></label>&nbsp;|'
                    + '&nbsp;<input type="checkbox" name="b4" id="b4" />&nbsp;<label for="b4">B4 <small>(grammar)</small></label>&nbsp;|' 
                    + '&nbsp;<input type="checkbox" name="b5" id="b5" />&nbsp;<label for="b5">B5 <small>(supporting material)</small></label>&nbsp;|'
                    + '&nbsp;<input type="checkbox" name="b6" id="b6" />&nbsp;<label for="b6">B6 <small>(readable)</small></label></tr>'
                + '<tr><td>Failed B-class criteria: </td><td><input type="checkbox" name="b1_c" id="b1_c" />&nbsp;<label for="b1">B1</label>&nbsp;|'
                    + '&nbsp;<input type="checkbox" name="b2_c" id="b2_c" />&nbsp;<label for="b2_c">B2</label>&nbsp;|'
                    + '&nbsp;<input type="checkbox" name="b3_c" id="b3_c" />&nbsp;<label for="b3_c">B3</label>&nbsp;|'
                    + '&nbsp;<input type="checkbox" name="b4_c" id="b4_c" />&nbsp;<label for="b4_c">B4</label>&nbsp;|' 
                    + '&nbsp;<input type="checkbox" name="b5_c" id="b5_c" />&nbsp;<label for="b5_c">B5</label>&nbsp;|'
                    + '&nbsp;<input type="checkbox" name="b6_c" id="b6_c" />&nbsp;<label for="b6_c">B6</label></tr>'
                + '<tr><td></td><td><input type="checkbox" name="needsPhoto" id="needsPhoto" />&nbsp;<label for="needsPhoto">Needs photo?</label></td></tr>'
                + '<tr><td></td><td><input type="checkbox" name="needsInfobox" id="needsInfobox" />&nbsp;<label for="needsInfobox">Needs infobox?</label></td></tr>'
                + '<tr><td></td><td><input type="checkbox" name="needsAttention" id="needsAttention" />&nbsp;<label for="needsAttention">Needs attention?</label></td></tr>'
                + '<tr><td></td><td><input type="checkbox" name="needsReferences" id="needsReferences" />&nbsp;<label for="needsReferences">Needs references?</label></td></tr>'
                + '<tr><td></td><td><input type="checkbox" name="isSmall" id="isSmall" />&nbsp;<label for="isSmall">Make it small?</label></td></tr>'
                + '<tr><td></td><td><input type="checkbox" name="isAuto" id="isAuto" />&nbsp;<label for="isAuto">Auto?</label></td></tr>'
                + '<tr><td><input type="submit" id="submitData" onclick="submitData()" value="Submit" /></td></tr>'
        + '</table>'
    + '</fieldset>');
}
 
$(function() {
 if(wgNamespaceNumber == 1) mw.util.addPortletLink("p-cactions", "javascript:buildTagForm()", "ark", "ca-ark");
});