Zum Inhalt springen


MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Firestone Idle RPG Wiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 13: Zeile 13:
     var KEY = 'vector-client-prefs';
     var KEY = 'vector-client-prefs';
     var prefs = {};
     var prefs = {};
     try { prefs = JSON.parse( localStorage.getItem(KEY) || '{}' ); } catch (e) {}
     try { prefs = JSON.parse(localStorage.getItem(KEY) || '{}'); } catch (e) {}


     // 0 = wide, 1 = limited-width
     // 0 = wide, 1 = limited-width
     if ( prefs['vector-feature-limited-width'] !== 0 ) {
     if (prefs['vector-feature-limited-width'] !== 0) {
       prefs['vector-feature-limited-width'] = 0;
       prefs['vector-feature-limited-width'] = 0;
       localStorage.setItem( KEY, JSON.stringify(prefs) );
       localStorage.setItem(KEY, JSON.stringify(prefs));
     }
     }


     // Fix the <html> classes immediately (prevents narrow layout flash)
     // HTML-Klassen sofort korrigieren (verhindert „schmal“-Flash)
     var html = document.documentElement;
     var html = document.documentElement;
     html.classList.remove('vector-feature-limited-width-clientpref-1');
     html.classList.remove('vector-feature-limited-width-clientpref-1');
     html.classList.add('vector-feature-limited-width-clientpref-0');
     html.classList.add('vector-feature-limited-width-clientpref-0');
    // (manchmal setzt der Server noch diese Klasse:)
     html.classList.remove('vector-feature-limited-width'); // falls vom Server gesetzt
     html.classList.remove('vector-feature-limited-width');
   } catch (e) {}
   } catch (e) {}
})();
})();


/* Entfernt für Gäste die Tabs/Tools-Leiste und die "Erscheinungsbild"-Brille (Vector 2022) */
/* === Vector 2022: Brille/Appearance IMMER entfernen, Toolbar nur für Gäste === */
mw.loader.using( 'mediawiki.util' ).then( function () {
mw.loader.using('mediawiki.util').then(function () {
  // Nur Vector 2022
   if (mw.config.get('skin') !== 'vector-2022') return;
   if ( mw.config.get( 'skin' ) !== 'vector-2022' ) return;
  // Nur Gäste
  if ( mw.config.get( 'wgUserName' ) ) return;


   function nukeToolbarAndAppearance() {
   function removeAppearanceEverywhere () {
     var sels = [
     var sels = [
       // gesamte Toolbar mit "Seite / Diskussion / Werkzeuge ..."
       // Header-Dropdown (Brille)
      '.vector-page-toolbar',
      // Brille + Panel im Header
       'nav.vector-appearance-landmark',
       'nav.vector-appearance-landmark',
       '#vector-appearance-dropdown',
       '#vector-appearance-dropdown',
       // falls die Brille in die Sidebar "angepinnt" wurde
       // Un-/Pinned-Container + eigentlicher Inhalt
      '#vector-appearance-unpinned-container',
       '#vector-appearance-pinned-container',
       '#vector-appearance-pinned-container',
       // falls Werkzeuge/Appearance separat gepinnt wurden
      '#vector-appearance',
       '#vector-page-tools-pinned-container'
       // Falls einzelne Client-Pref-Portlets gerendert wurden
       '#skin-client-prefs-vector-feature-custom-font-size',
      '#skin-client-prefs-vector-feature-limited-width',
      '#skin-client-prefs-skin-theme'
     ];
     ];
     sels.forEach(function (sel) {
     sels.forEach(function (sel) {
Zeile 54: Zeile 52:
   }
   }


   // Sofort ausführen …
   function removeGuestToolbar () {
  nukeToolbarAndAppearance();
    if (mw.config.get('wgUserName')) return; // nur Gäste
    document.querySelectorAll('.vector-page-toolbar').forEach(function (el) { el.remove(); });
  }


   // … und erneut, falls Vector nachträglich DOM-Teile einbaut
   // Sofort
   var debounced = mw.util.debounce( nukeToolbarAndAppearance, 50 );
  removeAppearanceEverywhere();
   var mo = new MutationObserver(function (mutations) {
  removeGuestToolbar();
     for (var i = 0; i < mutations.length; i++) {
 
       if (mutations[i].addedNodes && mutations[i].addedNodes.length) {
  // Nochmal bei DOM-Änderungen (Vector lädt Teile nach)
         debounced();
   var debouncedA = mw.util.debounce(removeAppearanceEverywhere, 50);
  var debouncedT = mw.util.debounce(removeGuestToolbar, 50);
   var mo = new MutationObserver(function (muts) {
     for (var i = 0; i < muts.length; i++) {
       if (muts[i].addedNodes && muts[i].addedNodes.length) {
         debouncedA();
        debouncedT();
         break;
         break;
       }
       }
     }
     }
   });
   });
   mo.observe( document.documentElement, { childList: true, subtree: true } );
   mo.observe(document.documentElement, { childList: true, subtree: true });


   // Auch bei Ajax-Nachladungen (z. B. Inhaltswechsel)
   // Auch bei Ajax-/Fragment-Nachladungen
   mw.hook( 'wikipage.content' ).add( nukeToolbarAndAppearance );
   mw.hook('wikipage.content').add(function () {
    removeAppearanceEverywhere();
    removeGuestToolbar();
  });
});
});

Version vom 9. Oktober 2025, 22:59 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */
/*
$(document).ready(function(){
  $("#ca-talk").remove();
  $("#footer-places-privacy").remove();
  $("#footer-places-about").remove();
  $("#footer-places-disclaimers").remove();
});
*/
/* === Force Vector wide layout for everyone (MW 1.44, Vector 2022) === */
(function () {
  try {
    var KEY = 'vector-client-prefs';
    var prefs = {};
    try { prefs = JSON.parse(localStorage.getItem(KEY) || '{}'); } catch (e) {}

    // 0 = wide, 1 = limited-width
    if (prefs['vector-feature-limited-width'] !== 0) {
      prefs['vector-feature-limited-width'] = 0;
      localStorage.setItem(KEY, JSON.stringify(prefs));
    }

    // HTML-Klassen sofort korrigieren (verhindert „schmal“-Flash)
    var html = document.documentElement;
    html.classList.remove('vector-feature-limited-width-clientpref-1');
    html.classList.add('vector-feature-limited-width-clientpref-0');
    html.classList.remove('vector-feature-limited-width'); // falls vom Server gesetzt
  } catch (e) {}
})();

/* === Vector 2022: Brille/Appearance IMMER entfernen, Toolbar nur für Gäste === */
mw.loader.using('mediawiki.util').then(function () {
  if (mw.config.get('skin') !== 'vector-2022') return;

  function removeAppearanceEverywhere () {
    var sels = [
      // Header-Dropdown (Brille)
      'nav.vector-appearance-landmark',
      '#vector-appearance-dropdown',
      // Un-/Pinned-Container + eigentlicher Inhalt
      '#vector-appearance-unpinned-container',
      '#vector-appearance-pinned-container',
      '#vector-appearance',
      // Falls einzelne Client-Pref-Portlets gerendert wurden
      '#skin-client-prefs-vector-feature-custom-font-size',
      '#skin-client-prefs-vector-feature-limited-width',
      '#skin-client-prefs-skin-theme'
    ];
    sels.forEach(function (sel) {
      document.querySelectorAll(sel).forEach(function (el) { el.remove(); });
    });
  }

  function removeGuestToolbar () {
    if (mw.config.get('wgUserName')) return; // nur Gäste
    document.querySelectorAll('.vector-page-toolbar').forEach(function (el) { el.remove(); });
  }

  // Sofort
  removeAppearanceEverywhere();
  removeGuestToolbar();

  // Nochmal bei DOM-Änderungen (Vector lädt Teile nach)
  var debouncedA = mw.util.debounce(removeAppearanceEverywhere, 50);
  var debouncedT = mw.util.debounce(removeGuestToolbar, 50);
  var mo = new MutationObserver(function (muts) {
    for (var i = 0; i < muts.length; i++) {
      if (muts[i].addedNodes && muts[i].addedNodes.length) {
        debouncedA();
        debouncedT();
        break;
      }
    }
  });
  mo.observe(document.documentElement, { childList: true, subtree: true });

  // Auch bei Ajax-/Fragment-Nachladungen
  mw.hook('wikipage.content').add(function () {
    removeAppearanceEverywhere();
    removeGuestToolbar();
  });
});