User:Equazcion/CustomSummaryPresets.js
// This is a modified version of User:ErrantX/defaultsummaries.js and User:MC10/defaultsummaries.js.
//
// This version displays a single menu of custom edit summaries across all namespaces.
//
// See User:Equazcion/CustomSummaryPresets for full instructions.
//
// Define custom edit summary presets by adding this after the importScript line:
// var customsum1 = "My first custom edit summary";
// var customsum2 = "My second custom edit summary";
//
// Up to 20 custom summaries can be defined this way.
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);
}
function editsummOnCannedSummarySelected() {
// Save the original value of the edit summary field
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;
}
$(function () {
var insertBeforeThis = document.getElementById("wpSummary");
// Loop through siblings, looking for editCheckboxes class
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 = "38%";
dropdown.style.margin = "0 4px 0 0";
dropdown.onchange = editsummOnCannedSummarySelected;
editsummAddCatToDropdown(dropdown, "Custom edit summary presets");
if (typeof customsum1 != "undefined") editsummAddOptionToDropdown(dropdown, customsum1);
if (typeof customsum2 != "undefined") editsummAddOptionToDropdown(dropdown, customsum2);
if (typeof customsum3 != "undefined") editsummAddOptionToDropdown(dropdown, customsum3);
if (typeof customsum4 != "undefined") editsummAddOptionToDropdown(dropdown, customsum4);
if (typeof customsum5 != "undefined") editsummAddOptionToDropdown(dropdown, customsum5);
if (typeof customsum6 != "undefined") editsummAddOptionToDropdown(dropdown, customsum6);
if (typeof customsum7 != "undefined") editsummAddOptionToDropdown(dropdown, customsum7);
if (typeof customsum8 != "undefined") editsummAddOptionToDropdown(dropdown, customsum8);
if (typeof customsum9 != "undefined") editsummAddOptionToDropdown(dropdown, customsum9);
if (typeof customsum10 != "undefined") editsummAddOptionToDropdown(dropdown, customsum10);
if (typeof customsum11 != "undefined") editsummAddOptionToDropdown(dropdown, customsum11);
if (typeof customsum12 != "undefined") editsummAddOptionToDropdown(dropdown, customsum12);
if (typeof customsum13 != "undefined") editsummAddOptionToDropdown(dropdown, customsum13);
if (typeof customsum14 != "undefined") editsummAddOptionToDropdown(dropdown, customsum14);
if (typeof customsum15 != "undefined") editsummAddOptionToDropdown(dropdown, customsum15);
if (typeof customsum16 != "undefined") editsummAddOptionToDropdown(dropdown, customsum16);
if (typeof customsum17 != "undefined") editsummAddOptionToDropdown(dropdown, customsum17);
if (typeof customsum18 != "undefined") editsummAddOptionToDropdown(dropdown, customsum18);
if (typeof customsum19 != "undefined") editsummAddOptionToDropdown(dropdown, customsum19);
if (typeof customsum20 != "undefined") editsummAddOptionToDropdown(dropdown, customsum20);
var theParent = insertBeforeThis.parentNode;
theParent.insertBefore(dropdown, insertBeforeThis);
theParent.insertBefore(document.createElement("br"), dropdown);
});