Jump to content

User:Equazcion/CustomSummaryPresets.js

From Wikipedia, the free encyclopedia

This is the current revision of this page, as edited by Equazcion (talk | contribs) at 02:57, 23 June 2012. The present address (URL) is a permanent link to this version.

(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// 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);
});