Zuletzt bearbeitet vor 2 Monaten
von Mark Wagner

MediaWiki:Common.js: Unterschied zwischen den Versionen

Keine Kategorien vergebenBearbeiten
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
Zeile 35: Zeile 35:
});
});
/* MediaWiki:Common.js */
/* MediaWiki:Common.js */
// Speichert und klappt in der Sidebar den zuletzt angeklickten Punkt auf
 
// 0) Styles injizieren
mw.loader.using(['mediawiki.util'], function(mwUtil) {
  mwUtil.addCSS(
    '.bs-active-menuitem {' +
      'background-color: #DCEFFD !important;' +
      'font-weight: bold        !important;' +
      'color: #003366          !important;' +
      'border-left: 3px solid #3878C7 !important;' +
      'padding-left: 0.5em      !important;' +
    '}'
  );
});


$(function() {
$(function() {
   // 1) Klick-Handler: immer den RELATIVEN href speichern
   // 1) Klick merken (relativer href)
   $('body').on('click', 'a.mws-tree-item-label', function() {
   $('body').on('click', 'a.mws-tree-item-label', function() {
     try {
     try {
       // .getAttribute('href') liefert z.B. "/wiki/Arbeitsorganisation:Arbeitsmittel/Ausleihe"
       window.name = JSON.stringify({ lastNav: this.getAttribute('href') });
      var relHref = this.getAttribute('href');
     } catch (e) { /* ignore */ }
      window.name = JSON.stringify({ lastNav: relHref });
     } catch (e) {
      console.error('Speichern fehlgeschlagen', e);
    }
   });
   });


   // 2) Beim Laden: aus window.name auslesen
   // 2) Laden: aus window.name lesen
   var lastHref = null;
   var lastHref;
   try {
   try {
     var data = JSON.parse(window.name || '{}');
     lastHref = JSON.parse(window.name || '{}').lastNav;
    lastHref = data.lastNav;
   } catch (e) { return; }
   } catch (e) {
   if (!lastHref) return;
    return;
  }
   if (!lastHref) {
    return;
  }


   // 3) Polling, bis der Link im DOM steht, dann aufklappen
   // 3) Polling & Aufklappen
   var attempts = 0;
   var attempts = 0;
   var interval = setInterval(function() {
   var interval = setInterval(function() {
     attempts++;
     attempts++;
    // Selektiere jetzt mit RELATIVEM href
     var $link = $('a.mws-tree-item-label[href="' + lastHref + '"]');
     var $link = $('a.mws-tree-item-label[href="' + lastHref + '"]');
     if ($link.length) {
     if ($link.length) {
       clearInterval(interval);
       clearInterval(interval);


       // Rekursive Expansion aller Eltern-<li>
       // alle Eltern-LI aufklappen
       $link.parents('li.mws-tree-item').each(function() {
       $link.parents('li.mws-tree-item').each(function() {
         var $exp = $(this).children('div').children('a.mws-tree-expander.collapsed'),
         var $exp = $(this).children('div').children('a.mws-tree-expander.collapsed'),
Zeile 85: Zeile 87:
       });
       });


       // Zum Link scrollen
       // Link markieren
      $link.addClass('bs-active-menuitem');
 
      // zum Link scrollen
       $('html, body').scrollTop($link.offset().top - 80);
       $('html, body').scrollTop($link.offset().top - 80);
     } else if (attempts > 10) {
     } else if (attempts > 10) {

Version vom 11. Juni 2025, 20:32 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */
/**
 * Entfernt das Wort „Fortsetzung“ aus allen SMW-Spalten-Headern (div.smw-column-header).
 * Leg die Datei MediaWiki:Common.js (oder Discovery.js) an bzw. bearbeite sie:
 *
 * 1. Gehe als Admin auf Special:Edit/MediaWiki:Common.js
 * 2. Füge diesen Code ans Ende ein und speichere.
 * 3. Leere den Browser-Cache (STRG + F5), damit das neue JS geladen wird.
 */
mw.loader.using(['jquery'], function () {
    $(document).ready(function () {
        $('.smw-column-header').each(function () {
            // aktuellen HTML-Inhalt holen
            var html = $(this).html();
            // "Fortsetzung" entfernen, Leerzeichen ggf. bereinigen
            var newHtml = html.replace(/Fortsetzung/g, '').trim();
            // falls nach dem Entfernen gar kein Text übrig ist, komplette Header-Box ausblenden:
            if (newHtml === '') {
                $(this).hide();
            } else {
                // ansonsten nur den Text überschreiben, sodass z. B. "B Fortsetzung" → "B" wird
                $(this).html(newHtml);
            }
        });
        $(function () {
			    $('<style>')
			      .prop('type', 'text/css')
			      .html(
			        '.breadcrumb-item { font-size: 17px !important; }' +
			        '.breadcrumb-nav  { border-bottom: 2px solid #85bc20!important; margin-bottom: 20px !important; }'
			      )
			      .appendTo('head');
		});
	});
});
/* MediaWiki:Common.js */

// 0) Styles injizieren
mw.loader.using(['mediawiki.util'], function(mwUtil) {
  mwUtil.addCSS(
    '.bs-active-menuitem {' +
      'background-color: #DCEFFD !important;' +
      'font-weight: bold        !important;' +
      'color: #003366           !important;' +
      'border-left: 3px solid #3878C7 !important;' +
      'padding-left: 0.5em      !important;' +
    '}'
  );
});

$(function() {
  // 1) Klick merken (relativer href)
  $('body').on('click', 'a.mws-tree-item-label', function() {
    try {
      window.name = JSON.stringify({ lastNav: this.getAttribute('href') });
    } catch (e) { /* ignore */ }
  });

  // 2) Laden: aus window.name lesen
  var lastHref;
  try {
    lastHref = JSON.parse(window.name || '{}').lastNav;
  } catch (e) { return; }
  if (!lastHref) return;

  // 3) Polling & Aufklappen
  var attempts = 0;
  var interval = setInterval(function() {
    attempts++;
    var $link = $('a.mws-tree-item-label[href="' + lastHref + '"]');
    if ($link.length) {
      clearInterval(interval);

      // alle Eltern-LI aufklappen
      $link.parents('li.mws-tree-item').each(function() {
        var $exp = $(this).children('div').children('a.mws-tree-expander.collapsed'),
            $sub = $(this).children('ul.mws-tree-item-children');
        if ($exp.length) {
          $exp
            .removeClass('collapsed')
            .addClass('expanded')
            .attr('aria-expanded', 'true');
        }
        if ($sub.length) {
          $sub.css('display','block');
        }
      });

      // Link markieren
      $link.addClass('bs-active-menuitem');

      // zum Link scrollen
      $('html, body').scrollTop($link.offset().top - 80);
    } else if (attempts > 10) {
      clearInterval(interval);
      console.warn('Kein Link gefunden nach 10 Versuchen:', lastHref);
    }
  }, 300);
});