User:Kanegasi/editsummarypresets.js

/***********************************************************************************************/ /* This is a modified version of http://en.wikipedia.org/wiki/User:ErrantX/defaultsummaries.js  and http://en.wikipedia.org/wiki/User:MC10/defaultsummaries.js.

This version displays a single menu of custom edit summaries across all namespaces. See http://en.wikipedia.org/wiki/User:Equazcion/CustomSummaryPresets for full instructions.

Place the following in your common.js page or whatever script page for your skin:

importScript('User:Kanegasi/editsummarypresets.js'); var customSummaries = [ 'your first preset summary', 'your second preset summary', 'a third preset using a wiki hotlink' + '', ];

Do not forget that end bracket and semi-colon!

The extra single quotes and plus sign on the link is to prevent the wiki software from creating a link as the variables are loaded. This normally happens with templates being transcluded or substituted in scripts, so the single quotes and plus may not be needed.

Source: http://en.wikipedia.org/wiki/User:Equazcion/CustomSummaryPresets.js                */ /***********************************************************************************************/

var editsummOriginalSummary = "";

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 = true; option.selected = true; var optionTextNode = document.createTextNode(catText); option.appendChild(optionTextNode); dropdown.appendChild(option); }

// Save the original value of the edit summary field function editsummOnCannedSummarySelected { editsummOriginalSummary = document.getElementById("wpSummary"); if (editsummOriginalSummary) { editsummOriginalSummary = editsummOriginalSummary.value; } else { editsummOriginalSummary = ""; }   var idx = this.selectedIndex; var canned = this.options[idx].text; var newSummary = editsummOriginalSummary;

// Append old edit summary with space, if exists, // and last character != space if (newSummary.length !== 0 && newSummary.charAt(newSummary.length - 1) !== " ") { newSummary += " "; }   newSummary += canned; document.getElementById("wpSummary").value = newSummary; }

// Loop through siblings, looking for editCheckboxes class $(function {    var insertBeforeThis = document.getElementById("wpSummary");    while (insertBeforeThis) {        if (insertBeforeThis.className === "editCheckboxes") {            break;        }        insertBeforeThis = insertBeforeThis.nextSibling;    }

// If we failed to find the editCheckboxes class, or insertBeforeThis is null if (!insertBeforeThis || 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 = "50%"; dropdown.style.margin = "0 4px 0 0"; dropdown.onchange = editsummOnCannedSummarySelected; editsummAddCatToDropdown(dropdown, "Summary presets");

for (var i=0; i<customSummaries.length; i++) { if (typeof customSummaries[i] !== 'undefined') { editsummAddOptionToDropdown(dropdown, customSummaries[i]); }   }

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