MediaWiki:Gadget-watchlistMessage.js
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/*
* watchlistMessage-2025
* Funktion: Fügt ein "✖"-Symbol hinter der Uhrzeit ein, um Einträge auszublenden (per Cookie).
* Inspirirt vom gleichnamigen Gadget der Wikimedia-User, aber komplett ungeschireben, um
* + den Anfordeurngen rneuen Watchlist (MediaWiki > 1.39) gerecht zu werden (ohne Cheatcode "alte Watchlist")
* + im SKin Vextor 2022 zu funktionieren
* + Wikonia-eigenen Stil durchzusetzen
* Ansatz: Direktes Manipulieren des innerHTML, da DOM-Elemente im der neuen Watchlist schwerer zu fassen sind als Luft mit einer Gabel.
* Autor: [[Benutzer:Muke86]]
* Version: 1.1 (2025-06-15)
*/
$(function () {
// abbruch, wenn nicht auf Special:Watchlist
if (mw.config.get('wgCanonicalSpecialPageName') !== 'Watchlist') {
return;
}
console.log('[watchlistMessage-Lite] gestartet');
$('td.mw-enhanced-rc[colspan="2"]').each(function () {
const td = this;
const html = td.innerHTML;
// Uhrzeit erkennen (hh:mm)
const timeMatch = html.match(/(\d{1,2}:\d{2})( )?/);
if (!timeMatch) return;
// ID aus Linkziel generieren (wenn vorhanden), sonst Platzhalter
const pageLink = td.querySelector('a');
let cid = 'static';
if (pageLink && pageLink.title) {
cid = btoa(unescape(encodeURIComponent(pageLink.title))).replace(/[^a-z0-9]/gi, '');
}
// Wenn Cookie bereits gesetzt ist: Zeile ausblenden
if (document.cookie.includes('wikonia-hidewatchlistmessage-' + cid + '=yes')) {
td.closest('tr').style.display = 'none';
return;
}
// Button HTML vorbereiten
const dismissButton = `<span
style="color: red; font-weight: bold; margin-right: 0.6em; cursor: pointer;"
title="Eintrag aus der Beobachtungsliste ausblenden"
onclick="(function(el){
el.closest('tr').style.display = 'none';
const e = new Date();
e.setTime(e.getTime() + (3 * 7 * 24 * 60 * 60 * 1000));
document.cookie = 'wikonia-hidewatchlistmessage-${cid}=yes; expires=' + e.toUTCString() + '; path=/';
})(this);"
>✖</span>`; // ✖ = ✖
// ✖ nach der Uhrzeit einfügen
const newHtml = html.replace(timeMatch[0], timeMatch[0] + dismissButton);
td.innerHTML = newHtml;
});
});