User:Svick/SectionInput.js

// This script creates new text box for the name of the edited section.

// This way, the browser's autocomplete for edit summary doesn't contain section name and becomes much more useful.

// Tested in Firefox.

$(function()

{

if (mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit')

{

var summary = document.getElementById('wpSummary');

var sectionIdInput = where(summary.form.elements, function(el) { return el.name == 'wpSection' });

if (sectionIdInput)

{

if (sectionIdInput.value == 'new')

return;

}

summary.style.width = '74%';

var section = document.createElement('input');

section.id = section.name = 'section';

section.style.width = '23.7%';

section.style.setProperty('margin-right', '1%', '');

section.tabIndex = 1;

summary.parentNode.insertBefore(document.createElement('br'), summary);

summary.parentNode.insertBefore(section, summary);

var re = RegExp('/\\*\\s*(.*?)\\s*\\*/\\s*');

var result = re.exec(summary.value);

if (result)

section.value = result[1];

summary.value = summary.value.replace(re, '');

summary.form.onsubmit = function(){

if (section.value)

summary.value = '/* ' + section.value + ' */ ' + summary.value;

};

}

});

function where(array, predicate)

{

for (var i = 0; i < array.length; i++)

if (predicate(array[i]))

return array[i];

}