User:Minesweeper.007/force edit summary.js

// Adapted from: //http://en.wikipedia.org/wiki/Wikipedia:WikiProject_User_scripts/Scripts/Force_edit_summary // User:Razorclaw/force edit summary.js

// The original value of the edit summary field is stored here var editsummOriginalSummary = new String;

// A global ref to the dropdown with canned edit summaries var editsummDropdown = null;

function editsummInitialize {   // TEMPORARY - check window title while testing this code // and only do anything if it's the sandbox or a sample CP page // var wt = document.title; // if ((wt.indexOf('Sandbox')==-1) && (wt.indexOf('Mitch McCon')==-1)) // {   //     return; // }

if(!/&action=edit/.test(window.location.href) && !/&action=submit/.test(window.location.href)) return; if(/&section=new/.test(window.location.href)) return; if(!document.forms.editform) return; document.forms.editform.wpSave.onclick = editsummForceSummary;

// Save the original value of the edit summary field editsummOriginalSummary = document.forms.editform.wpSummary.value;

// For convenience, add a dropdown box with some canned edit // summaries to the form. // Put in alphabetical order

var dropdown = document.createElement("select"); dropdown.onchange = new Function("editsummOnCannedSummarySelected");

editsummAddOptionToDropdown(dropdown,""); editsummAddOptionToDropdown(dropdown,"add"); editsummAddOptionToDropdown(dropdown,"add categories"); editsummAddOptionToDropdown(dropdown,"add category"); editsummAddOptionToDropdown(dropdown,"add citation"); editsummAddOptionToDropdown(dropdown,"add external link"); editsummAddOptionToDropdown(dropdown,"add internal link"); editsummAddOptionToDropdown(dropdown,"add ref"); editsummAddOptionToDropdown(dropdown,"add section"); editsummAddOptionToDropdown(dropdown,"add template"); editsummAddOptionToDropdown(dropdown,"create redirect page"); editsummAddOptionToDropdown(dropdown,"create stub article"); editsummAddOptionToDropdown(dropdown,"delete external link"); editsummAddOptionToDropdown(dropdown,"delete internal link"); editsummAddOptionToDropdown(dropdown,"dewikify"); editsummAddOptionToDropdown(dropdown,"fix"); editsummAddOptionToDropdown(dropdown,"fix broken link"); editsummAddOptionToDropdown(dropdown,"fix grammar"); editsummAddOptionToDropdown(dropdown,"fix punctuation"); editsummAddOptionToDropdown(dropdown,"fix spelling"); editsummAddOptionToDropdown(dropdown,"LOL"); editsummAddOptionToDropdown(dropdown,"make link into plain text (dewikify)"); editsummAddOptionToDropdown(dropdown,"make existing text into link (wikify)"); editsummAddOptionToDropdown(dropdown,"minor edit"); editsummAddOptionToDropdown(dropdown,"miscellaneous"); editsummAddOptionToDropdown(dropdown,"more"); editsummAddOptionToDropdown(dropdown,"move"); editsummAddOptionToDropdown(dropdown,"move section"); editsummAddOptionToDropdown(dropdown,"move unrefd material to talk page"); editsummAddOptionToDropdown(dropdown,"new article"); editsummAddOptionToDropdown(dropdown,"question"); editsummAddOptionToDropdown(dropdown,"readd"); editsummAddOptionToDropdown(dropdown,"remove"); editsummAddOptionToDropdown(dropdown,"remove repetition"); editsummAddOptionToDropdown(dropdown,"reorder links"); editsummAddOptionToDropdown(dropdown,"reorder section"); editsummAddOptionToDropdown(dropdown,"reorder wording"); editsummAddOptionToDropdown(dropdown,"reply"); editsummAddOptionToDropdown(dropdown,"request"); editsummAddOptionToDropdown(dropdown,"request speedy deletion"); editsummAddOptionToDropdown(dropdown,"test"); editsummAddOptionToDropdown(dropdown,"welcome"); editsummAddOptionToDropdown(dropdown,"welcome new user"); editsummAddOptionToDropdown(dropdown,"welcome to the Himalayas!"); editsummAddOptionToDropdown(dropdown,"wikify"); editsummAddOptionToDropdown(dropdown,"you're welcome"); editsummAddOptionToDropdown(dropdown,"???"); editsummAddOptionToDropdown(dropdown,"!!!"); editsummAddOptionToDropdown(dropdown,"..."); editsummAddOptionToDropdown(dropdown,"*_*");

var insertBeforeThis = document.forms.editform.wpSummary.nextSibling; var theParent = insertBeforeThis.parentNode; theParent.insertBefore(dropdown,insertBeforeThis);

// Store a global ref to it   editsummDropdown = dropdown; }

function editsummAddOptionToDropdown(dropdown,optionText) {   var option = document.createElement("option"); var optionTextNode = document.createTextNode(optionText); option.appendChild(optionTextNode); dropdown.appendChild(option); }

// There's a cross-browser issue when accessing the selected text: // *In Firefox you can use: selectObj.value // *In IE, you have to use: selectObj.options[selectObj.selectedIndex].text // *The latter method also works in Firefox function editsummOnCannedSummarySelected {   var idx = editsummDropdown.selectedIndex; var canned = editsummDropdown.options[idx].text;

var newSummary = editsummOriginalSummary; if (newSummary.length!=0) newSummary += " "; newSummary += canned; document.forms.editform.wpSummary.value = newSummary; }

function editsummForceSummary {   if(!document.forms.editform.wpSummary.value.replace(/^(?:\/\\*.*\\*\/)? *(.*) *$/,'$1'))   {        alert("Please supply a meaningful summary of this edit"); document.forms.editform.wpSummary.focus; return false; }

// An edit summary has been supplied. So now do the SW/CP auto-prefixing.

editsummAddSubProjectPrefix;

return true; }

// Prefix the edit summary with "SW" or "CP" // depending on whether it's a SourceWatch or Congresspedia page. // To determine this, look for a link to "Template:Congresspedia" // on the edit page.

// To readd SW: put it in the first "" after the var prefix = // To readd CP: put it in the second "" after the prefix =

function editsummAddSubProjectPrefix {   // Using the document.links array and the href prop seems to give // the best cross-browser results. var allAnchors = document.links; if (allAnchors) {       var prefix = ""; for (i = 0; i < allAnchors.length; i++) {            var anchorHref = allAnchors[i].href; if (anchorHref) {                if (anchorHref.indexOf('Template:Congresspedia') != -1) {                   prefix = ""; }            }        }

document.forms.editform.wpSummary.value = prefix + document.forms.editform.wpSummary.value; } }

addOnloadHook(editsummInitialize);