User:ערן/defaultsummaries.js

/* _____________________________________________________________________________

* | |

* | === WARNING: GLOBAL GADGET FILE === |

* | Changes to this page affect many users. |

* | Please discuss changes on the talk page or on WT:Gadget before editing. |

* |_____________________________________________________________________________|

*

* Imported as of 09/06/2011 from User:ErrantX/defaultsummaries.js

* Edited version from User:MC10/defaultsummaries.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 );

}

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

} 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.activationComplete' ).add(function(){

//.ve-init-mw-viewPageTarget-saveDialog-checkboxes

var $insertBeforeThis = ve.init.mw.targets[0].saveDialog.$body.find('.ve-ui-mwSaveDialog-options');

$summaryBox = ve.init.mw.targets[0].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