Minecraft Wiki
Advertisement
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Documentation may be created at User:Kanegasi/editsummarypresets.js/doc.

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.

// <nowiki>
/***********************************************************************************************/
/* 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:

   if (mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit') {
       var customSummaries = [
           'your first preset summary',
           'your second preset summary',
           'a third preset using [[a wiki hotlink' + ']]',
       ];
       mw.loader.load( 'User:Kanegasi/editsummarypresets.js' );
   }

   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.

   The extra "if" line is to prevent the script from running on any page BUT edit/submit pages,
   since it is useless on other pages.

   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);
});
// </nowiki>
Advertisement