MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Rettungsdienst-Wiki
Zur Navigation springen Zur Suche springen
Markierung: Zurückgesetzt
Zeile 3: Zeile 3:
   'use strict';
   'use strict';


   // Sichtbarer Test: zeigt, ob Common.js überhaupt lädt
   $.when( mw.loader.using( [ 'mediawiki.util', 'mediawiki.api' ] ), $.ready ).then( function () {
  console.log('[Common.js] geladen');


  // NUR ES5 verwenden, keine Arrow-Functions etc.
    // 1) Eigenes Portlet (Sidebar-Block) anlegen – vor "Werkzeuge" (p-tb), sonst an "Navigation"
  mw.loader.using(['mediawiki.util', 'mediawiki.api']).then(function () {
    var nextTo = document.getElementById('p-tb') ? '#p-tb' :
    $(function () {
      ( document.getElementById('p-navigation') ? '#p-navigation' : null );
      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) {
    var portletId = 'p-newpages';
          console.warn('[NewPages] Kein passender Portlet-Container gefunden.');
    var portletNode = mw.util.addPortlet( portletId, 'Neueste Beiträge', nextTo );
          return;
    if ( !portletNode ) {
        }
      console.warn('[NewPages] Konnte Portlet nicht erstellen.');
      return;
    }


        // Test-Link hinzufügen, um sicherzugehen, dass Portlet existiert
    var api = new mw.Api();
        mw.util.addPortletLink(targetId, mw.util.getUrl('Special:RecentChanges'), 'Test-Link (geladen)');
    api.get({
      action: 'query',
      list: 'recentchanges',
      rctype: 'new',
      rcprop: 'title|timestamp',
      rcnamespace: 0,        // nur Artikelnamensraum
      rcshow: '!bot|!redirect', // Bots & Weiterleitungen ausblenden
      rclimit: 3,
      format: 'json'
    }).done(function (data) {
      var items = (data.query && data.query.recentchanges) || [];


        // 3 neu angelegte Artikel holen
      if (!items.length) {
        var api = new mw.Api();
        mw.util.addPortletLink(portletId, mw.util.getUrl('Special:NewPages'), 'Keine neuen Seiten');
        api.get({
         return;
          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);
       }
       }
      // 2) Einträge hinzufügen
      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('de-DE', { dateStyle: 'medium', timeStyle: 'short' });
        mw.util.addPortletLink(portletId, href, rc.title, null, tip);
      }
      // 3) Abschluss-Link: alle neuen Seiten
      mw.util.addPortletLink(
        portletId,
        mw.util.getUrl('Special:NewPages'),
        'Alle neuen Seiten →',
        'newpages-more',
        'Zur vollständigen Liste'
      );
    }).fail(function (err) {
      console.error('[NewPages] API-Fehler:', err);
      mw.util.addPortletLink(portletId, '#', 'Fehler beim Laden');
     });
     });
  }, function (e) {
    console.error('[Common.js] mw.loader Fehler:', e);
   });
   });
})();
})();

Version vom 7. November 2025, 18:52 Uhr

/* global mw, $ */
(function () {
  'use strict';

  $.when( mw.loader.using( [ 'mediawiki.util', 'mediawiki.api' ] ), $.ready ).then( function () {

    // 1) Eigenes Portlet (Sidebar-Block) anlegen – vor "Werkzeuge" (p-tb), sonst an "Navigation"
    var nextTo = document.getElementById('p-tb') ? '#p-tb' :
      ( document.getElementById('p-navigation') ? '#p-navigation' : null );

    var portletId = 'p-newpages';
    var portletNode = mw.util.addPortlet( portletId, 'Neueste Beiträge', nextTo );
    if ( !portletNode ) {
      console.warn('[NewPages] Konnte Portlet nicht erstellen.');
      return;
    }

    var api = new mw.Api();
    api.get({
      action: 'query',
      list: 'recentchanges',
      rctype: 'new',
      rcprop: 'title|timestamp',
      rcnamespace: 0,        // nur Artikelnamensraum
      rcshow: '!bot|!redirect', // Bots & Weiterleitungen ausblenden
      rclimit: 3,
      format: 'json'
    }).done(function (data) {
      var items = (data.query && data.query.recentchanges) || [];

      if (!items.length) {
        mw.util.addPortletLink(portletId, mw.util.getUrl('Special:NewPages'), 'Keine neuen Seiten');
        return;
      }

      // 2) Einträge hinzufügen
      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('de-DE', { dateStyle: 'medium', timeStyle: 'short' });
        mw.util.addPortletLink(portletId, href, rc.title, null, tip);
      }

      // 3) Abschluss-Link: alle neuen Seiten
      mw.util.addPortletLink(
        portletId,
        mw.util.getUrl('Special:NewPages'),
        'Alle neuen Seiten →',
        'newpages-more',
        'Zur vollständigen Liste'
      );
    }).fail(function (err) {
      console.error('[NewPages] API-Fehler:', err);
      mw.util.addPortletLink(portletId, '#', 'Fehler beim Laden');
    });
  });
})();