Zuletzt bearbeitet vor einem Tag
von Mark Wagner

MediaWiki:Common.js: Unterschied zwischen den Versionen

Keine Kategorien vergebenBearbeiten
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
Zeile 70: Zeile 70:
   }
   }
})();
})();
/* Statisches Menü am Ende von .main-tab-pane – nur auf der Startseite */
/* Statisches Menü am Ende von #sb-pri-cnt – nur auf der Startseite */
(function (mw, $) {
(function (mw, $) {
   'use strict';
   'use strict';


  // Menü einmalig erzeugen
   function isMainView() {
   function injectHomeMenu($scope) {
     return mw.config.get('wgIsMainPage') && mw.config.get('wgAction') === 'view';
     if (!mw.config.get('wgIsMainPage') || mw.config.get('wgAction') !== 'view') return;
  }
 
  function injectHomeMenu($root) {
    if (!isMainView()) return;
     if (document.getElementById('home-static-menu')) return; // Duplikate vermeiden
     if (document.getElementById('home-static-menu')) return; // Duplikate vermeiden


    // Sichtbaren main-tab-pane-Container finden (falls Tabs existieren)
     var $container = ($root || $(document)).find('#sb-pri-cnt:visible').last();
     var $container = ($scope || $(document)).find('.main-tab-pane:visible').last();
     if (!$container.length) return;
     if (!$container.length) return;


Zeile 94: Zeile 96:
       '</nav>';
       '</nav>';


    // Am Ende des Containers einfügen
     $container.append(menuHtml);
     $container.append(menuHtml);
   }
   }


   // Beim normalen DOM-ready
   // 1) Beim DOM-ready
   $(function(){ injectHomeMenu(); });
   $(function () { injectHomeMenu(); });


   // Und nochmal, wenn MediaWiki Inhalte nachlädt/umschaltet (Tabs, Ajax, etc.)
   // 2) Wenn MW Inhalte nachlädt/umschaltet (Tabs, Ajax, Discovery)
   mw.hook('wikipage.content').add(function ($content) {
   mw.hook('wikipage.content').add(function ($content) {
     injectHomeMenu($content);
     injectHomeMenu($content);
   });
   });
  // 3) Fallback: warten, falls #sb-pri-cnt spät ins DOM kommt
  var tried = 0, maxTries = 10;
  var interval = setInterval(function(){
    if (document.getElementById('sb-pri-cnt') || ++tried >= maxTries) {
      clearInterval(interval);
      injectHomeMenu();
    }
  }, 300);


})(mediaWiki, jQuery);
})(mediaWiki, jQuery);

Version vom 3. September 2025, 20:02 Uhr

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');
		});
	});
});

$(function(){
  // In allen Category-Ausgaben: jede LI, die einen <a class="new"> enthält, entfernen
  $('.smw-columnlist-container a.new').each(function(){
    $(this).closest('li').remove();
  });
});
$(function(){
  // 1. Rote Links raus (wie gehabt)
  $('.smw-columnlist-container a.new').each(function(){
    $(this).closest('li').remove();
  });

  // 2. Jetzt jede Buchstaben-Überschrift entfernen, deren Liste leer ist
  $('.smw-column-header').each(function(){
    var $header = $(this),
        $ul     = $header.next('ul');
    if ($ul.length && $ul.children('li').length === 0) {
      $ul.remove();
      $header.remove();
    }
  });
});
// attachments immer in neuem Tab öffnen
(function () {
  // Hilfs-Funktion, die alle neuen Attachment-Links anpasst
  function updateAttachmentLinks() {
    // Alle Download-Links in der Datei-Liste
    $('.attachments-filelist a.oojsplus-data-gridWidget-url-button')
      .attr('target','_blank')
      .attr('rel','noopener noreferrer');
  }

  // beim Seiten-Load einmal ausführen
  $(updateAttachmentLinks);

  // und mit MutationObserver auf nachträglich geladene Links achten
  var container = document.querySelector('.attachments-filelist');
  if (container) {
    new MutationObserver(function (mutations) {
      updateAttachmentLinks();
    }).observe(container, { childList: true, subtree: true });
  }
})();
/* Statisches Menü am Ende von #sb-pri-cnt – nur auf der Startseite */
(function (mw, $) {
  'use strict';

  function isMainView() {
    return mw.config.get('wgIsMainPage') && mw.config.get('wgAction') === 'view';
  }

  function injectHomeMenu($root) {
    if (!isMainView()) return;
    if (document.getElementById('home-static-menu')) return; // Duplikate vermeiden

    var $container = ($root || $(document)).find('#sb-pri-cnt:visible').last();
    if (!$container.length) return;

    var menuHtml =
      '<nav id="home-static-menu" class="home-static-menu" aria-label="Startseiten-Menü">' +
        '<h3 class="home-static-menu__title">Schnellzugriff</h3>' +
        '<ul class="home-static-menu__list">' +
          '<li><a href="/wiki/Einführung">Einführung</a></li>' +
          '<li><a href="/wiki/Richtlinien">Richtlinien</a></li>' +
          '<li><a href="/wiki/Team">Team</a></li>' +
          '<li><a href="/wiki/FAQ">FAQ</a></li>' +
        '</ul>' +
      '</nav>';

    $container.append(menuHtml);
  }

  // 1) Beim DOM-ready
  $(function () { injectHomeMenu(); });

  // 2) Wenn MW Inhalte nachlädt/umschaltet (Tabs, Ajax, Discovery)
  mw.hook('wikipage.content').add(function ($content) {
    injectHomeMenu($content);
  });

  // 3) Fallback: warten, falls #sb-pri-cnt spät ins DOM kommt
  var tried = 0, maxTries = 10;
  var interval = setInterval(function(){
    if (document.getElementById('sb-pri-cnt') || ++tried >= maxTries) {
      clearInterval(interval);
      injectHomeMenu();
    }
  }, 300);

})(mediaWiki, jQuery);