MediaWiki:Common.js

From Games Day
Revision as of 11:56, 9 September 2026 by EvilGM (talk | contribs) (Add accessible toggle for page tools sidebar)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Note: After publishing, 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 (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
(function () {
	'use strict';

	function makePageToolsCollapsible() {
		var portlet = document.getElementById('p-pagemisc');
		var heading = document.getElementById('p-pagemisc-label');
		var body;
		var button;

		if (!portlet || !heading || portlet.classList.contains('gd-collapsible')) {
			return;
		}

		body = portlet.querySelector('.mw-portlet-body');
		if (!body) {
			return;
		}

		body.id = 'p-pagemisc-body';
		body.hidden = true;

		button = document.createElement('button');
		button.type = 'button';
		button.className = 'gd-portlet-toggle';
		button.setAttribute('aria-controls', body.id);
		button.setAttribute('aria-expanded', 'false');
		button.textContent = heading.textContent.trim();
		button.addEventListener('click', function () {
			var expanded = button.getAttribute('aria-expanded') === 'true';
			button.setAttribute('aria-expanded', expanded ? 'false' : 'true');
			body.hidden = expanded;
		});

		heading.textContent = '';
		heading.appendChild(button);
		portlet.classList.add('gd-collapsible');
	}

	if (document.readyState === 'loading') {
		document.addEventListener('DOMContentLoaded', makePageToolsCollapsible);
	} else {
		makePageToolsCollapsible();
	}
}());