User:ErrantX/defaultsummaries.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 {   // Save the original value of the edit summary field editsummOriginalSummary = document.getElementById("wpSummary"); if(editsummOriginalSummary == null) {      return; }

var insertBeforeThis = document.getElementById("wpSummary").nextSibling; if(insertBeforeThis.className != "editCheckboxes") {       return; }

editsummOriginalSummary = editsummOriginalSummary.value // For convenience, add a dropdown box with some canned edit // summaries to the form.

var dropdown = document.createElement("select"); dropdown.style.width = "38%"; dropdown.style.margin = "0px 4px 0px 0px"; dropdown.onchange = new Function("editsummOnCannedSummarySelected");

var minorDropdown = document.createElement("select"); minorDropdown.style.width = "38%"; minorDropdown.onchange = new Function("editsummOnCannedSummarySelected");

editsummAddCatToDropdown(minorDropdown,"Common minor edit summaries - click to use"); editsummAddCatToDropdown(dropdown,"Common edit summaries - click to use"); editsummAddOptionToDropdown(minorDropdown,"Spelling/grammar correction"); editsummAddOptionToDropdown(minorDropdown,"Fixing style/layout errors"); editsummAddOptionToDropdown(minorDropdown,"Reverting Vandalism or test edit"); editsummAddOptionToDropdown(minorDropdown,"Reverting unexplained content removal"); editsummAddOptionToDropdown(minorDropdown,"Copyedit (minor)"); if (mw.config.get('wgNamespaceNumber') == 0) {     editsummAddOptionToDropdown(dropdown,"Expanding article"); editsummAddOptionToDropdown(dropdown,"Adding/improving reference(s)"); editsummAddOptionToDropdown(dropdown,"Adding/removing category/ies"); editsummAddOptionToDropdown(dropdown,"Adding/removing external link(s)"); editsummAddOptionToDropdown(dropdown,"Adding/removing wikilink(s)"); editsummAddOptionToDropdown(dropdown,"Removing unsourced content"); editsummAddOptionToDropdown(dropdown,"Clean up"); editsummAddOptionToDropdown(dropdown,"Copyedit (major)"); } else {   editsummAddOptionToDropdown(dropdown,"Reply"); editsummAddOptionToDropdown(dropdown,"Comment"); if ((mw.config.get('wgNamespaceNumber') % 2 != 0) & (mw.config.get('wgNamespaceNumber') != 3)) {    editsummAddOptionToDropdown(dropdown,"WikiProject tagging"); editsummAddOptionToDropdown(dropdown,"WikiProject assessment"); } }

var theParent = insertBeforeThis.parentNode; theParent.insertBefore(dropdown,insertBeforeThis); theParent.insertBefore(minorDropdown,insertBeforeThis); theParent.insertBefore(document.createElement("br"),dropdown);

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

function editsummAddCatToDropdown(dropdown,catText) {   var option = document.createElement("option"); option.disabled = "disabled" var optionTextNode = document.createTextNode(catText); 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 { editsummInitialize ; });