MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus ISMS-Ratgeber WiKi
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


// Top 10 zuletzt geänderte Seiten:
// Top 10 zuletzt geänderte Seiten:
$(function() {
$(function() {
   var $target = $('#recentpages-unique-table');
   var $target = $('#recentpages-unique-table');
Zeile 12: Zeile 13:
     list: 'recentchanges',
     list: 'recentchanges',
     rcprop: 'title|comment|timestamp|user',
     rcprop: 'title|comment|timestamp|user',
     rcshow: 'new', // Korrektur: rcshow=new statt rctype=new
     rcshow: 'new',
     rclimit: 50,
     rclimit: 50,
     rcnamespace: 0,
     rcnamespace: 0,
Zeile 19: Zeile 20:
   .done(function(data) {
   .done(function(data) {
     console.log("API-Daten:", data);
     console.log("API-Daten:", data);
    if (!data.query?.recentchanges?.length) {
      $target.html("Keine neuen Seiten im Hauptnamensraum.");
      return;
    }
     var table = '<table class="wikitable"><tr><th>Titel</th><th>Erstellt am</th><th>Autor:in</th></tr>';
     var table = '<table class="wikitable"><tr><th>Titel</th><th>Erstellt am</th><th>Autor:in</th></tr>';
     var uniquePages = {};
     var uniquePages = {};
     var count = 0;
      
 
     data.query.recentchanges.forEach(function(rc) {
     if (data.query?.recentchanges?.length > 0) {
      if (!rc.title || rc.title.includes(':') || uniquePages[rc.title]) return;
      data.query.recentchanges.forEach(function(rc) {
      uniquePages[rc.title] = true;
        if (!rc.title || rc.title.includes(':') || uniquePages[rc.title]) return;
        uniquePages[rc.title] = true;
        if (count >= 10) return;


        var pageLink = '<a href="' + mw.util.getUrl(rc.title) + '">' + mw.html.escape(rc.title) + '</a>';
      var pageLink = '<a href="' + mw.util.getUrl(rc.title) + '">' + mw.html.escape(rc.title) + '</a>';
        var date = new Date(rc.timestamp).toLocaleDateString('de-DE');
      var date = new Date(rc.timestamp).toLocaleDateString('de-DE');
       
      table += `<tr><td>${pageLink}</td><td>${date}</td><td>${mw.html.escape(rc.user)}</td></tr>`;
        table += '<tr><td>' + pageLink + '</td><td>' + date + '</td><td>' + mw.html.escape(rc.user) + '</td></tr>';
    });
        count++;
      });
    } // ← Schließender Bracket hinzugefügt


     $target.html(count ? table : '<tr><td colspan="3">Keine neuen Seiten im Hauptnamensraum.</td></tr>');
     $target.html(table);
   })
   })
   .fail(function(jqXHR, textStatus, errorThrown) {
   .fail(function(jqXHR) {
    console.error("API-Fehler:", textStatus, errorThrown);
     $target.html('Fehler: ' + jqXHR.statusText);
     $target.html('Fehler: ' + errorThrown);
   });
   });
});
});

Version vom 12. Mai 2025, 19:03 Uhr

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

// Top 10 zuletzt geänderte Seiten:

$(function() {
  var $target = $('#recentpages-unique-table');
  if (!$target.length) return;

  console.log("Starte API-Abfrage...");
  
  $.getJSON(mw.util.wikiScript('api'), {
    action: 'query',
    list: 'recentchanges',
    rcprop: 'title|comment|timestamp|user',
    rcshow: 'new',
    rclimit: 50,
    rcnamespace: 0,
    format: 'json'
  })
  .done(function(data) {
    console.log("API-Daten:", data);
    if (!data.query?.recentchanges?.length) {
      $target.html("Keine neuen Seiten im Hauptnamensraum.");
      return;
    }

    var table = '<table class="wikitable"><tr><th>Titel</th><th>Erstellt am</th><th>Autor:in</th></tr>';
    var uniquePages = {};
    
    data.query.recentchanges.forEach(function(rc) {
      if (!rc.title || rc.title.includes(':') || uniquePages[rc.title]) return;
      uniquePages[rc.title] = true;

      var pageLink = '<a href="' + mw.util.getUrl(rc.title) + '">' + mw.html.escape(rc.title) + '</a>';
      var date = new Date(rc.timestamp).toLocaleDateString('de-DE');
      table += `<tr><td>${pageLink}</td><td>${date}</td><td>${mw.html.escape(rc.user)}</td></tr>`;
    });

    $target.html(table);
  })
  .fail(function(jqXHR) {
    $target.html('Fehler: ' + jqXHR.statusText);
  });
});