MediaWiki:Common.js: Unterschied zwischen den Versionen
Aus ISMS-Ratgeber WiKi
Zur Navigation springenZur Suche springen
Dirk (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Dirk (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
Zeile 4: | Zeile 4: | ||
$(function() { | $(function() { | ||
var $target = $('#recentpages-unique-table'); | var $target = $('#recentpages-unique-table'); | ||
if (!$target.length) return; | if (!$target.length) { | ||
console.error('Ziel-Element nicht gefunden'); | |||
return; | |||
} | |||
console.log('Starte API-Abfrage...'); | |||
$.getJSON(mw.util.wikiScript('api'), { | $.getJSON(mw.util.wikiScript('api'), { | ||
action: 'query', | action: 'query', | ||
Zeile 16: | Zeile 21: | ||
}) | }) | ||
.done(function(data) { | .done(function(data) { | ||
var table = '<table class="wikitable"><tr><th>Titel</th><th>Erstellt am</th><th>Zusammenfassung</th></tr>'; | console.log('API-Antwort erhalten:', data); | ||
var table = '<table class="wikitable">' | |||
+ '<tr><th>Titel</th><th>Erstellt am</th><th>Zusammenfassung</th></tr>'; | |||
var uniquePages = {}; | var uniquePages = {}; | ||
var count = 0; | var count = 0; | ||
if (data.query?.recentchanges) { | if (data.query?.recentchanges?.length > 0) { | ||
data.query.recentchanges.forEach(function(rc) { | data.query.recentchanges.forEach(function(rc) { | ||
if ( | try { | ||
if (!rc.title || rc.title.includes(':') || uniquePages[rc.title]) return; | |||
uniquePages[rc.title] = true; | |||
if (count >= 10) return; | |||
var pageLink = $('<div>').html( | |||
'<a href="' + mw.util.getUrl(rc.title) + '">' | |||
+ mw.html.escape(rc.title) + '</a>' | |||
).html(); | |||
var timestamp = new Date(rc.timestamp); | |||
var dateString = timestamp.toLocaleDateString('de-DE', { | |||
day: '2-digit', | |||
month: '2-digit', | |||
year: 'numeric' | |||
}); | |||
table += '<tr>' | |||
+ '<td>' + pageLink + '</td>' | |||
+ '<td>' + dateString + '</td>' | |||
+ '<td>' + (rc.comment ? mw.html.escape(rc.comment) : '–') + '</td>' | |||
+ '</tr>'; | |||
count++; | |||
} catch (e) { | |||
console.error('Fehler bei der Verarbeitung:', e); | |||
} | |||
}); | }); | ||
} | } | ||
if (count === 0) { | if (count === 0) { | ||
table += '<tr><td colspan="3">Keine neuen | table += '<tr><td colspan="3">Keine neuen Inhaltsseiten im Hauptnamensraum gefunden</td></tr>'; | ||
} | } | ||
table += '</table>'; | table += '</table>'; | ||
$target.html(table); | $target.html(table); | ||
console.log('Tabelle erfolgreich generiert'); | |||
}) | }) | ||
.fail(function() { | .fail(function(jqXHR, textStatus, errorThrown) { | ||
$target.html('Fehler beim Laden der Daten | console.error('API-Fehler:', textStatus, errorThrown); | ||
$target.html('<div class="error">Fehler beim Laden der Daten: ' + errorThrown + '</div>'); | |||
}); | }); | ||
}); | }); |
Version vom 12. Mai 2025, 18:39 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) { console.error('Ziel-Element nicht gefunden'); return; } console.log('Starte API-Abfrage...'); $.getJSON(mw.util.wikiScript('api'), { action: 'query', list: 'recentchanges', rcprop: 'title|comment|timestamp|ids', rctype: 'new', rclimit: 50, rcnamespace: 0, format: 'json' }) .done(function(data) { console.log('API-Antwort erhalten:', data); var table = '<table class="wikitable">' + '<tr><th>Titel</th><th>Erstellt am</th><th>Zusammenfassung</th></tr>'; var uniquePages = {}; var count = 0; if (data.query?.recentchanges?.length > 0) { data.query.recentchanges.forEach(function(rc) { try { if (!rc.title || rc.title.includes(':') || uniquePages[rc.title]) return; uniquePages[rc.title] = true; if (count >= 10) return; var pageLink = $('<div>').html( '<a href="' + mw.util.getUrl(rc.title) + '">' + mw.html.escape(rc.title) + '</a>' ).html(); var timestamp = new Date(rc.timestamp); var dateString = timestamp.toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' }); table += '<tr>' + '<td>' + pageLink + '</td>' + '<td>' + dateString + '</td>' + '<td>' + (rc.comment ? mw.html.escape(rc.comment) : '–') + '</td>' + '</tr>'; count++; } catch (e) { console.error('Fehler bei der Verarbeitung:', e); } }); } if (count === 0) { table += '<tr><td colspan="3">Keine neuen Inhaltsseiten im Hauptnamensraum gefunden</td></tr>'; } table += '</table>'; $target.html(table); console.log('Tabelle erfolgreich generiert'); }) .fail(function(jqXHR, textStatus, errorThrown) { console.error('API-Fehler:', textStatus, errorThrown); $target.html('<div class="error">Fehler beim Laden der Daten: ' + errorThrown + '</div>'); }); });