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

});