User:Equazcion/CustomSummaries.js

From Wikipedia, the free encyclopedia
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.
        if (customsum1 == null) var customsum1 = "Custom edit summary #1"; 
        if (customsum2 == null) var customsum2 = "Custom edit summary #2"; 
        if (customsum3 == null) var customsum3 = "Custom edit summary #3"; 
        if (customsum4 == null) var customsum4 = "Custom edit summary #4"; 
        if (customsum5 == null) var customsum5 = "Custom edit summary #5"; 
        if (customsum6 == null) var customsum6 = "Custom edit summary #6"; 
        if (customsum7 == null) var customsum7 = "Custom edit summary #7"; 
        if (customsum8 == null) var customsum8 = "Custom edit summary #8"; 
        if (customsum9 == null) var customsum9 = "Custom edit summary #9"; 
        if (customsum10 == null) var customsum10 = "Custom edit summary #10"; 

    // The original value of the edit summary field is stored here
    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;
 
        var minorDropdown = document.createElement("select");
        minorDropdown.style.width = "38%";
        minorDropdown.onchange = 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, "Removing linkspam per WP:EL");
            editsummAddOptionToDropdown(dropdown, "Clean up");
            editsummAddOptionToDropdown(dropdown, "Copyedit (major)");
        } else {
            editsummAddOptionToDropdown(dropdown, "Reply");
            editsummAddOptionToDropdown(dropdown, "Comment");
            editsummAddOptionToDropdown(dropdown, "Suggestion");
            if ((mw.config.get('wgNamespaceNumber') % 2 !== 0) & (mw.config.get('wgNamespaceNumber') !== 3)) {
                editsummAddOptionToDropdown(dropdown, "WikiProject tagging");
                editsummAddOptionToDropdown(dropdown, "WikiProject assessment");
            }
        }

            editsummAddOptionToDropdown(dropdown, customsum1);
            editsummAddOptionToDropdown(dropdown, customsum2);
            editsummAddOptionToDropdown(dropdown, customsum3);
            editsummAddOptionToDropdown(dropdown, customsum4);
            editsummAddOptionToDropdown(dropdown, customsum5);
            editsummAddOptionToDropdown(dropdown, customsum6);
            editsummAddOptionToDropdown(dropdown, customsum7);
            editsummAddOptionToDropdown(dropdown, customsum8);
            editsummAddOptionToDropdown(dropdown, customsum9);
            editsummAddOptionToDropdown(dropdown, customsum10);
 
        var theParent = insertBeforeThis.parentNode;
        theParent.insertBefore(dropdown, insertBeforeThis);
        theParent.insertBefore(minorDropdown, insertBeforeThis);
        theParent.insertBefore(document.createElement("br"), dropdown);
});