MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus ISMS-Ratgeber WiKi
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
// Top 10 zuletzt geänderte Seiten:
// Top 10 zuletzt geänderte Seiten:
$(function() {
$(function() {
   var $target = $('#recentpages-table');
   var $target = $('#recentpages-unique-table');
   if (!$target.length) return;
   if (!$target.length) return;


Zeile 9: Zeile 9:
     action: 'query',
     action: 'query',
     list: 'recentchanges',
     list: 'recentchanges',
     rcprop: 'title|comment|redirect',
     rcprop: 'title|comment|redirect|timestamp',
     rclimit: 30,
     rclimit: 30,
     rcshow: 'new|!redirect',
     rcshow: 'new|!redirect', // Nur neue Seiten (Erstellerstellung)
     rcnamespace: 0,
     rcnamespace: 0,
     format: 'json'
     format: 'json'
   })
   })
   .done(function(data) {
   .done(function(data) {
     var table = '<table class="wikitable"><tr><th>Seite</th><th>Letzte Änderung</th></tr>';
     var table = '<table class="wikitable"><tr><th>Titel</th><th>Erstellt am</th><th>Zusammenfassung</th></tr>';
    var uniqueTitles = {}; // Objekt zur Duplikatserkennung
     var count = 0;
     var count = 0;
     if (data.query && data.query.recentchanges && data.query.recentchanges.length > 0) {
   
       $.each(data.query.recentchanges, function(i, rc) {
     if (data.query?.recentchanges) {
         // Im Hauptnamensraum sollten keine Doppelpunkte vorkommen, aber zur Sicherheit filtern
       data.query.recentchanges.forEach(function(rc) {
         if (rc.title.indexOf(':') !== -1) return;
         // Filtere Titel mit Doppelpunkt und bereits verarbeitete Titel
         if (count >= 10) return false; // Schleife abbrechen
         if (rc.title.indexOf(':') !== -1 || uniqueTitles[rc.title]) return;
         // Fallback für mw.html.escape (falls nicht verfügbar)
       
         var escape = window.mw && mw.html && mw.html.escape ? mw.html.escape : function(s) {
        uniqueTitles[rc.title] = true; // Markiere Titel als verarbeitet
          return $('<div>').text(s).html();
         if (count >= 10) return;
         };
 
         table += '<tr><td>' + escape(rc.title) + '</td><td>' + escape(rc.comment || '') + '</td></tr>';
         // Datum formatieren (z. B. "12.05.2024")
         var date = new Date(rc.timestamp).toLocaleDateString('de-DE');
          
         table += '<tr><td>' + mw.html.escape(rc.title) + '</td>' +
                '<td>' + date + '</td>' +
                '<td>' + mw.html.escape(rc.comment || '') + '</td></tr>';
         count++;
         count++;
       });
       });
      if (count === 0) {
    }
        table += '<tr><td colspan="2">Keine neuen Inhaltsseiten gefunden.</td></tr>';
   
      }
    if (count === 0) {
    } else {
       table += '<tr><td colspan="3">Keine neuen Inhaltsseiten gefunden.</td></tr>';
       table += '<tr><td colspan="2">Keine neuen Inhaltsseiten gefunden.</td></tr>';
     }
     }
     table += '</table>';
     table += '</table>';

Version vom 12. Mai 2025, 18:10 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;

  $.getJSON(mw.util.wikiScript('api'), {
    action: 'query',
    list: 'recentchanges',
    rcprop: 'title|comment|redirect|timestamp',
    rclimit: 30,
    rcshow: 'new|!redirect', // Nur neue Seiten (Erstellerstellung)
    rcnamespace: 0,
    format: 'json'
  })
  .done(function(data) {
    var table = '<table class="wikitable"><tr><th>Titel</th><th>Erstellt am</th><th>Zusammenfassung</th></tr>';
    var uniqueTitles = {}; // Objekt zur Duplikatserkennung
    var count = 0;
    
    if (data.query?.recentchanges) {
      data.query.recentchanges.forEach(function(rc) {
        // Filtere Titel mit Doppelpunkt und bereits verarbeitete Titel
        if (rc.title.indexOf(':') !== -1 || uniqueTitles[rc.title]) return;
        
        uniqueTitles[rc.title] = true; // Markiere Titel als verarbeitet
        if (count >= 10) return;

        // Datum formatieren (z. B. "12.05.2024")
        var date = new Date(rc.timestamp).toLocaleDateString('de-DE');
        
        table += '<tr><td>' + mw.html.escape(rc.title) + '</td>' +
                 '<td>' + date + '</td>' +
                 '<td>' + mw.html.escape(rc.comment || '') + '</td></tr>';
        count++;
      });
    }
    
    if (count === 0) {
      table += '<tr><td colspan="3">Keine neuen Inhaltsseiten gefunden.</td></tr>';
    }
    table += '</table>';
    $target.html(table);
  })
  .fail(function() {
    $target.html('Fehler beim Laden der neuesten Seiten.');
  });
});