MediaWiki:Selfhtml.js

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Hinweis: Leeren Sie nach dem Speichern 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
  • Internet Explorer: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen
if (localStorage && localStorage.getItem('common.js.debugger') == 'true') {   // Debug-Instrumentierung
  debugger;
}

if (mw.config.get('skin') == 'selfhtml') {
  mw.loader.using('skins.'+mw.config.get('skin')+'.js', function() {
    /* Links zum Forum */
    const forumUrl = mw.Selfhtml.buildForumQuestionUrl('https://forum.selfhtml.org/self/new')

    const noAskCanonicalNS = [ 'special', 'user', 'user_talk' ];  // NS in denen keine Fragen gestellt werden sollen
    const canTalkCanonicalNS = [ 'user', 'user_talk' ];   // NS in denen diskutiert werden kann
    const namespace = mw.config.get('wgCanonicalNamespace').toLowerCase();
  
    if (forumUrl && !noAskCanonicalNS.includes(namespace)) {
      /* !!! War funktionslos weil dieses ul Element nach #p-tb verschoben wurde.
       * Nach Verschiebung hierher geht's wieder, aber ist das so gewünscht?
       */
      $('#p-namespaces > ul').prepend('<li id="ca-forum-question"><span><a href="' + forumUrl + '" title="Frage im SELFHTML-Forum stellen‽">Fragen</a></span></li>');  // "Im Forum fragen"
    }

    /* Edit in Namespace-Nav ziehen */
    $('#ca-edit').appendTo('#p-namespaces > ul');

    /* Umbennenen der Linktexte */
    $('#ca-nstab-main a').text('Lesen');
    $('#ca-talk a').text('Diskutieren');
    $('#ca-edit a').text('Bearbeiten');

    /* redundantes Lesen ausblenden */
    $('#ca-view').css('display','none');
  });
}

(function() {
// Advent-Helper
   if (mw.config.get("wgAction").includes("protect")) return;  // Nicht für Lock/Unlock Seite!

   var seitenname = mw.config.get('wgPageName');      // Nur für Advent/yyyy/dd Seiten!
   var match = /^Advent\/(\d\d\d\d)\/(\d\d)$/i.exec(seitenname);
   if (!match) return;   // Kein relevanter page title

   var inhalt = document.getElementById("mw-content-text");        // Erwartete Seitenstruktur?
   var heading = inhalt.querySelector("h2");  
   if (inhalt == null || heading == null) return;

   var pageYear = parseInt(match[1]), pageDay = parseInt(match[2]),
       heute = new Date(), jahr = heute.getFullYear(), monat = heute.getMonth(), tag = heute.getDate();

   if (pageYear < jahr) return;                      // Älterer Kalender
   if (pageYear == jahr                              // Aktueller Kalender, Tag erreicht, nichts tun
       && monat == 11 && pageDay <= tag) return;

   // Benutzergruppen ermitteln - Sysop ist kein Weihnachtsmäuschen!
   mw.user.getGroups().then(function(groups) {
      if (groups.includes("sysop")) {
         heading.innerHTML += " - Pssst!";
         return;
      }
      // Kalender für Folgejahr oder Tag im akt. Kalender noch nicht erreicht
      inhalt.innerHTML = heading.outerHTML + "<p>Sei nicht so ein neugieriges <b>Weihnachtsmäuschen</b>!</p>";
   });
})();