MediaWiki:Common.js

Aus Phoenix-Larp Wiki

Version vom 8. September 2026, 08:22 Uhr von Becko (Diskussion | Beiträge) (Klonen der Benutzer-Werkzeuge in die linke Seitenleiste entfernt)

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/* Das folgende JavaScript wird für alle Benutzer geladen. */
mw.loader.using(['mediawiki.util']).done(function () {
  // Nur auf schmalen Screens aktiv
  if (!window.matchMedia('(max-width: 768px)').matches) return;

  // Burger-Button einfügen (mit ARIA)
  var $btn = $('<button class="mw-burger" aria-label="Menü" aria-controls="column-navigation" aria-expanded="false"><span></span></button>');
  $('body').append($btn);

  // Overlay zum Schließen
  var $overlay = $('<div class="nav-overlay" tabindex="-1" aria-hidden="true"></div>');
  $('body').append($overlay);

  function closeMenu() {
    $('body').removeClass('nav-open');
    $btn.attr('aria-expanded', 'false');
  }
  function toggleMenu() {
    var open = !$('body').hasClass('nav-open');
    $('body').toggleClass('nav-open', open);
    $btn.attr('aria-expanded', String(open));
  }

  $btn.on('click', toggleMenu);
  $overlay.on('click', closeMenu);
  $(document).on('keydown', function (e) { if (e.key === 'Escape') closeMenu(); });

  // Schließt das Menü, wenn Viewport wieder breit wird
  window.matchMedia('(min-width: 769px)').addEventListener('change', function (mql) {
    if (mql.matches) closeMenu();
  });
});



// Admin-Link zu den Spezialseiten im persönlichen Menü
mw.loader.using(['mediawiki.util']).done(function () {
  var groups = mw.config.get('wgUserGroups') || [];
  if (groups.indexOf('sysop') === -1) return;
  if (document.getElementById('pt-specialpages')) return;

  var $list = $('#p-personal .mw-portlet-body ul').first();
  if (!$list.length) return;

  var $li = $('<li id="pt-specialpages" class="mw-list-item"></li>');
  var $a = $('<a></a>').attr('href', mw.util.getUrl('Special:Spezialseiten')).text('Spezialseiten');
  $li.append($a);

  var $logout = $('#pt-logout');
  if ($logout.length) {
    $logout.before($li);
  } else {
    $list.append($li);
  }
});