// The original value of the edit summary field is stored here
var editsummOriginalSummary = new String();
// A global ref to the dropdown with canned edit summaries
var editsummDropdown = null;
function editsummInitialize()
{
// Save the original value of the edit summary field
editsummOriginalSummary = document.getElementById("wpSummary");
if(editsummOriginalSummary == null)
{
return;
}
var insertBeforeThis = document.getElementById("wpSummary").nextSibling;
if(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 = "0px 4px 0px 0px";
dropdown.onchange = new Function("editsummOnCannedSummarySelected()");
var minorDropdown = document.createElement("select");
minorDropdown.style.width = "38%";
minorDropdown.onchange = new Function("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,"[[Help:Reverting|Reverting]] [[Wikipedia:Vandalism|Vandalism]] or test edit");
editsummAddOptionToDropdown(minorDropdown,"[[Help:Reverting|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,"Clean up");
editsummAddOptionToDropdown(dropdown,"Copyedit (major)");
} else
{
editsummAddOptionToDropdown(dropdown,"Reply");
editsummAddOptionToDropdown(dropdown,"Comment");
if ((mw.config.get('wgNamespaceNumber') % 2 != 0) & (mw.config.get('wgNamespaceNumber') != 3))
{
editsummAddOptionToDropdown(dropdown,"[[Wikipedia:WikiProject|WikiProject]] tagging");
editsummAddOptionToDropdown(dropdown,"[[Wikipedia:WikiProject|WikiProject]] assessment");
}
}
var theParent = insertBeforeThis.parentNode;
theParent.insertBefore(dropdown,insertBeforeThis);
theParent.insertBefore(minorDropdown,insertBeforeThis);
theParent.insertBefore(document.createElement("br"),dropdown);
// Store a global ref to it
editsummDropdown = dropdown;
}
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 = "disabled"
var optionTextNode = document.createTextNode(catText);
option.appendChild(optionTextNode);
dropdown.appendChild(option);
}
// There's a cross-browser issue when accessing the selected text:
// *In Firefox you can use: selectObj.value
// *In IE, you have to use: selectObj.options[selectObj.selectedIndex].text
// *The latter method also works in Firefox
function editsummOnCannedSummarySelected()
{
var idx = editsummDropdown.selectedIndex;
var canned = editsummDropdown.options[idx].text;
var newSummary = editsummOriginalSummary;
if (newSummary.length!=0) newSummary += " - ";
newSummary += canned;
document.forms.editform.wpSummary.value = newSummary;
}
$(function (){
editsummInitialize ();
});