User:TheMagikCow/editSummary.js

/* * Implements default edit summary dropdown boxes */ (function ($) { // Wrap with anonymous function   var $summaryBox  = $('#wpSummary');

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 var editsummOriginalSummary = $summaryBox.val; 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; $summaryBox.val( newSummary ).trigger( 'change' ); }   function insertSummaryOptions($insertBeforeThis, dropdownWidth) { // For convenience, add a dropdown box with some canned edit // summaries to the form. var dropdown = document.createElement("select"); dropdown.style.width = dropdownWidth; dropdown.style.margin = "0 4px 0 0"; dropdown.onchange = editsummOnCannedSummarySelected; var minorDropdown = document.createElement("select"); minorDropdown.style.width = dropdownWidth; 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)"); editsummAddOptionToDropdown(dropdown, "Expanded Infobox from text in article"); } 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"); }       }	$insertBeforeThis.before(dropdown); $insertBeforeThis.before(minorDropdown); }   mw.hook( 've.saveDialog.stateChanged' ).add(function{        //.ve-init-mw-viewPageTarget-saveDialog-checkboxes        var target = ve.init.target;        var $insertBeforeThis = target.saveDialog.$body.find('.ve-ui-mwSaveDialog-options');        $summaryBox = target.saveDialog.$body.find('.ve-ui-mwSaveDialog-summary textarea');        if (!$insertBeforeThis.length) {            return;        }        insertSummaryOptions($insertBeforeThis, "98%");    }); $(function {       var $insertBeforeThis = $('.editCheckboxes');        // If we failed to find the editCheckboxes class        if (!$insertBeforeThis.length) {            return;        }        insertSummaryOptions($insertBeforeThis, "38%");    }); }(jQuery)); // End wrap with anonymous function