MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Rettungsdienst-Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „→‎Das folgende JavaScript wird für alle Benutzer geladen.: // Zeige die 3 zuletzt neu angelegten Seiten in der linken Sidebar mw.loader.using(['mediawiki.api', 'mediawiki.util'], function () { $(function () { // Sidebar-Container (Vector/Vector-2022). Falls anderer Skin, ggf. Selektor anpassen. var $panel = $('#mw-panel'); if (!$panel.length) return; // Portlet (Sidebar-Block) anlegen var $portlet = $( '<div id="p-newpage…“)
 
Zeile 1: Zeile 1:
/* Das folgende JavaScript wird für alle Benutzer geladen. */
/* Das folgende JavaScript wird für alle Benutzer geladen. */


// Zeige die 3 zuletzt neu angelegten Seiten in der linken Sidebar
// Zeige die 3 zuletzt neu angelegten Seiten in der linken Sidebar (skin-sicher)
mw.loader.using(['mediawiki.api', 'mediawiki.util'], function () {
mw.loader.using(['mediawiki.api', 'mediawiki.util']).then(function () {
   $(function () {
   $(function () {
     // Sidebar-Container (Vector/Vector-2022). Falls anderer Skin, ggf. Selektor anpassen.
     // Portlet erzeugen (neuer Block) – als Anker nehmen wir den Werkzeuge-Block p-tb
     var $panel = $('#mw-panel');
     var portletId = 'p-newpages';
     if (!$panel.length) return;
     var portletNode = document.getElementById(portletId) || mw.util.addPortlet('p-tb', 'Neueste Beiträge', portletId);


    // Portlet (Sidebar-Block) anlegen
     var api = new mw.Api();
     var $portlet = $(
     api.get({
      '<div id="p-newpages" class="portal">' +
        '<h3>Neueste Beiträge</h3>' +
        '<div class="body"><ul/></div>' +
      '</div>'
    );
    $panel.append($portlet);
    var $ul = $portlet.find('ul');
 
     // API-Aufruf: 3 neu angelegte Seiten aus dem Artikelnamensraum (0)
    new mw.Api().get({
       action: 'query',
       action: 'query',
       list: 'recentchanges',
       list: 'recentchanges',
       rctype: 'new',
       rctype: 'new',
       rcprop: 'title|timestamp',
       rcprop: 'title|timestamp',
       rcnamespace: 0,     // 0 = Haupt-/Artikel-Namensraum
       rcnamespace: 0,
       rcshow: '!bot',     // Bot-Erstellungen ausblenden
       rcshow: '!bot',
       rclimit: 3,
       rclimit: 3,
       format: 'json'
       format: 'json'
     }).done(function (data) {
     }).done(function (data) {
       var items = (data.query && data.query.recentchanges) || [];
       var items = (data.query && data.query.recentchanges) || [];
       if (items.length === 0) {
       if (!items.length) {
         $ul.append($('<li/>').text('Keine neuen Seiten'));
         mw.util.addPortletLink(portletId, '#', 'Keine neuen Seiten');
         return;
         return;
       }
       }
       items.forEach(function (rc) {
       items.forEach(function (rc) {
         var href = mw.util.getUrl(rc.title);
         var href = mw.util.getUrl(rc.title);
         var titleAttr = new Date(rc.timestamp).toLocaleString();
         var tip  = new Date(rc.timestamp).toLocaleString();
         var $li = $('<li/>').append(
         // Link in den neuen Portlet-Block setzen
          $('<a/>', { href: href, text: rc.title, title: titleAttr })
        mw.util.addPortletLink(portletId, href, rc.title, null, tip);
        );
        $ul.append($li);
       });
       });
     }).fail(function () {
     }).fail(function () {
       $ul.append($('<li/>').text('Fehler beim Laden'));
       mw.util.addPortletLink(portletId, '#', 'Fehler beim Laden');
     });
     });
   });
   });
});
});

Version vom 7. November 2025, 18:38 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */

// Zeige die 3 zuletzt neu angelegten Seiten in der linken Sidebar (skin-sicher)
mw.loader.using(['mediawiki.api', 'mediawiki.util']).then(function () {
  $(function () {
    // Portlet erzeugen (neuer Block) – als Anker nehmen wir den Werkzeuge-Block p-tb
    var portletId = 'p-newpages';
    var portletNode = document.getElementById(portletId) || mw.util.addPortlet('p-tb', 'Neueste Beiträge', portletId);

    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(portletId, '#', 'Keine neuen Seiten');
        return;
      }
      items.forEach(function (rc) {
        var href = mw.util.getUrl(rc.title);
        var tip  = new Date(rc.timestamp).toLocaleString();
        // Link in den neuen Portlet-Block setzen
        mw.util.addPortletLink(portletId, href, rc.title, null, tip);
      });
    }).fail(function () {
      mw.util.addPortletLink(portletId, '#', 'Fehler beim Laden');
    });
  });
});