MediaWiki:Common.js

Aus Rettungsdienst-Wiki
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen 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/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
/* global mw, $ */
(function () {
  'use strict';

  // Sichtbarer Test: zeigt, ob Common.js überhaupt lädt
  console.log('[Common.js] geladen');

  // NUR ES5 verwenden, keine Arrow-Functions etc.
  mw.loader.using(['mediawiki.util', 'mediawiki.api']).then(function () {
    $(function () {
      try {
        // Einhängepunkt wählen: bevorzugt "Werkzeuge" (p-tb), sonst Navigation
        var targetId = document.getElementById('p-tb') ? 'p-tb' :
          (document.getElementById('p-navigation') ? 'p-navigation' : null);

        if (!targetId) {
          console.warn('[NewPages] Kein passender Portlet-Container gefunden.');
          return;
        }

        // Test-Link hinzufügen, um sicherzugehen, dass Portlet existiert
        mw.util.addPortletLink(targetId, mw.util.getUrl('Special:RecentChanges'), 'Test-Link (geladen)');

        // 3 neu angelegte Artikel holen
        var api = new mw.Api();
        api.get({
          action: 'query',
          list: 'recentchanges',
          rctype: 'new',
          rcprop: 'title|timestamp',
          rcnamespace: 0,
          rcshow: '!bot',
          rclimit: 3,
          format: 'json'
        }).done(function (data) {
          var items = (data.query && data.query.recentchanges) || [];
          if (!items.length) {
            mw.util.addPortletLink(targetId, '#', 'Keine neuen Seiten');
            return;
          }
          for (var i = 0; i < items.length; i++) {
            var rc = items[i];
            var href = mw.util.getUrl(rc.title);
            var tip = new Date(rc.timestamp).toLocaleString();
            mw.util.addPortletLink(targetId, href, rc.title, null, tip);
          }
        }).fail(function (err) {
          console.error('[NewPages] API-Fehler:', err);
          mw.util.addPortletLink(targetId, '#', 'Fehler beim Laden');
        });
      } catch (e) {
        console.error('[Common.js] Laufzeitfehler:', e);
      }
    });
  }, function (e) {
    console.error('[Common.js] mw.loader Fehler:', e);
  });
})();