Zum Inhalt springen

MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus ThuleTempel Wissensbuch
KKeine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 37: Zeile 37:




mw.loader.using('mediawiki.util').then(function () {
mw.loader.using(['mediawiki.util']).then(function () {
   // nur für ausgeloggte Leser
   // nur für ausgeloggte Leser
   if (mw.config.get('wgUserName')) return;
   if (mw.config.get('wgUserName')) return;


   // Vector speichert die Textgröße hier
   // Wenn der Nutzer schon etwas gewählt hat: nichts überschreiben
   const key = 'vector-font-size';
   const prefKey = 'mw-client-preferences';
  const current = localStorage.getItem(prefKey) || '';
  if (current.includes('vector-2022_font-size_')) return;


   // nur setzen, wenn noch nichts gewählt wurde
   function setStandardFontSize() {
  if (localStorage.getItem(key) === null) {
    // Suche nach der "Standard"-Option im Erscheinungsbild-Menü
    localStorage.setItem(key, 'standard');
    const radios = Array.from(document.querySelectorAll('input[type="radio"]'));
    const standardRadio = radios.find(r => {
      const label = document.querySelector('label[for="' + r.id + '"]');
      const labelText = (label ? label.textContent : '').trim().toLowerCase();
      const val = (r.value || '').toLowerCase();
      return labelText === 'standard' || val === 'standard';
    });
 
    if (standardRadio && !standardRadio.checked) {
      standardRadio.click(); // setzt die echte Preference inkl. mw-client-preferences korrekt
      return true;
    }
    return false;
   }
   }
  // Erst nach DOM ready versuchen, sonst kurz beobachten bis das Menü gerendert ist
  $(function () {
    if (setStandardFontSize()) return;
    const obs = new MutationObserver(() => {
      if (setStandardFontSize()) obs.disconnect();
    });
    obs.observe(document.documentElement, { subtree: true, childList: true });
  });
});
});

Version vom 13. Dezember 2025, 19:28 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */
mw.loader.using('mediawiki.util', function () {
  var groups = mw.config.get('wgUserGroups') || [];
  if (groups.indexOf('sysop') === -1) return; // nur Admins

  mw.util.addPortletLink(
    'p-tb',
    mw.util.getUrl('Special:SpecialPages'),
    'Spezialseiten',
    't-specialpages'
  );
});

mw.loader.using(['mediawiki.util']).then(function () {
  // nur für ausgeloggte Leser
  if (mw.config.get('wgUserName')) return;

  // nur einmal pro Browser
  const key = 'appearancePinnedOnce';
  if (localStorage.getItem(key)) return;

  function tryPin() {
    const pinBtn = document.querySelector('[data-event-name="pinnable-header.vector-appearance.pin"]');
    if (pinBtn) {
      pinBtn.click();               // pinnt / blendet ein
      localStorage.setItem(key, '1');
      return true;
    }
    return false;
  }

  // sofort versuchen, sonst kurz warten bis Vector fertig ist
  if (tryPin()) return;
  const obs = new MutationObserver(() => { if (tryPin()) obs.disconnect(); });
  obs.observe(document.documentElement, { subtree: true, childList: true });
});


mw.loader.using(['mediawiki.util']).then(function () {
  // nur für ausgeloggte Leser
  if (mw.config.get('wgUserName')) return;

  // Wenn der Nutzer schon etwas gewählt hat: nichts überschreiben
  const prefKey = 'mw-client-preferences';
  const current = localStorage.getItem(prefKey) || '';
  if (current.includes('vector-2022_font-size_')) return;

  function setStandardFontSize() {
    // Suche nach der "Standard"-Option im Erscheinungsbild-Menü
    const radios = Array.from(document.querySelectorAll('input[type="radio"]'));
    const standardRadio = radios.find(r => {
      const label = document.querySelector('label[for="' + r.id + '"]');
      const labelText = (label ? label.textContent : '').trim().toLowerCase();
      const val = (r.value || '').toLowerCase();
      return labelText === 'standard' || val === 'standard';
    });

    if (standardRadio && !standardRadio.checked) {
      standardRadio.click(); // setzt die echte Preference inkl. mw-client-preferences korrekt
      return true;
    }
    return false;
  }

  // Erst nach DOM ready versuchen, sonst kurz beobachten bis das Menü gerendert ist
  $(function () {
    if (setStandardFontSize()) return;
    const obs = new MutationObserver(() => {
      if (setStandardFontSize()) obs.disconnect();
    });
    obs.observe(document.documentElement, { subtree: true, childList: true });
  });
});