MediaWiki:Gadget-SectionInput.js

From Zelda Dungeon Wiki
Jump to navigation Jump to search
Want an adless experience? Log in or Create an account.

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl+F5 or Ctrl+R (Command+R on a Mac)
  • Google Chrome: press Ctrl+Shift+R (Command+Shift+R on a Mac)
  • Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl+F5
  • Konqueror: click Reload or press F5
  • Opera: clear the cache in Tools → Preferences
$(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;
		section.title= 'Enter section title';
		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];
}