DRINGEND: Namenskollision zerstoerte die Uebersicht
Alle Kacheln der Uebersicht zeigten "[object Object]" und "undefined". Ursache war mein Push-Code von heute. Er brachte eine Hilfsfunktion namens kachel(titel, inhalt, art) mit -- und weiter oben in derselben Datei gibt es seit langem kachel(o), die die Uebersichtskacheln baut. JavaScript kennt keine Ueberladung. Steht spaeter eine zweite Funktion desselben Namens im selben Gueltigkeitsbereich, gewinnt sie. Ohne Warnung, ohne Fehlermeldung, ohne dass irgendein Werkzeug anschlaegt. Danach bekam jede Uebersichtskachel mein Objekt als ersten Parameter und gab es als Zahl aus. Besonders tueckisch: Die Push-Karte selbst funktionierte einwandfrei -- sie steht ja unmittelbar ueber den kaputten Kacheln. Der sichtbare Schaden lag weit weg von seiner Ursache, und nichts deutete auf den neuen Code hin. Die Funktion heisst jetzt pushKachel und sagt damit, wozu sie gehoert. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -2680,7 +2680,7 @@
|
||||
h = '<p class="wd-klein wd-leise">Dieser Browser kann keine Benachrichtigungen empfangen. ' +
|
||||
'Auf dem iPhone geht es erst, wenn die Seite über „Teilen → Zum Home-Bildschirm“ ' +
|
||||
'installiert und von dort geöffnet wird.</p>';
|
||||
kasten.innerHTML = kachel("Benachrichtigung", h, "leise");
|
||||
kasten.innerHTML = pushKachel("Benachrichtigung", h, "leise");
|
||||
kasten.hidden = false;
|
||||
return;
|
||||
}
|
||||
@@ -2689,7 +2689,7 @@
|
||||
h = '<p class="wd-klein">Benachrichtigungen sind für diese Seite im Browser <strong>blockiert</strong>. ' +
|
||||
'Ein Knopf hilft hier nicht weiter — das lässt sich nur in den Browsereinstellungen ' +
|
||||
'zurücknehmen (Schloss-Symbol neben der Adresse → Benachrichtigungen → Zulassen).</p>';
|
||||
kasten.innerHTML = kachel("Benachrichtigung blockiert", h, "warn");
|
||||
kasten.innerHTML = pushKachel("Benachrichtigung blockiert", h, "warn");
|
||||
kasten.hidden = false;
|
||||
return;
|
||||
}
|
||||
@@ -2706,7 +2706,7 @@
|
||||
'<button type="button" class="wd-btn wd-btn--zweit wd-btn--klein" id="vw-push-test">Probemeldung schicken</button>' +
|
||||
'<button type="button" class="wd-btn wd-btn--zweit wd-btn--klein" id="vw-push-aus">Auf diesem Gerät ausschalten</button>' +
|
||||
'</div>';
|
||||
kasten.innerHTML = kachel("Benachrichtigung ist an", h, "gut");
|
||||
kasten.innerHTML = pushKachel("Benachrichtigung ist an", h, "gut");
|
||||
} else {
|
||||
h = '<p class="wd-klein">Neue Anfragen fallen im Moment nur auf, wenn du hier nachsiehst. ' +
|
||||
'Mit einer Meldung aufs Handy bekommst du es sofort mit — im Text stehen nur ' +
|
||||
@@ -2714,14 +2714,30 @@
|
||||
'<div class="wd-btn-reihe" style="margin-top:.7rem">' +
|
||||
'<button type="button" class="wd-btn wd-btn--klein" id="vw-push-an">Auf diesem Gerät einschalten</button>' +
|
||||
'</div>';
|
||||
kasten.innerHTML = kachel("Benachrichtigung einschalten", h, "warn");
|
||||
kasten.innerHTML = pushKachel("Benachrichtigung einschalten", h, "warn");
|
||||
}
|
||||
|
||||
kasten.hidden = false;
|
||||
verdrahtePushKnoepfe();
|
||||
}
|
||||
|
||||
function kachel(titel, inhalt, art) {
|
||||
/* ⚠️ HIESS ZUERST NUR "kachel" — UND HAT DAMIT DIE UEBERSICHT
|
||||
ZERSTOERT (26.08.2026, sofort behoben).
|
||||
|
||||
Weiter oben in derselben Datei gibt es bereits eine Funktion
|
||||
kachel(o), die die Kacheln der Uebersicht baut. JavaScript kennt
|
||||
keine Ueberladung: Steht spaeter eine zweite Funktion desselben
|
||||
Namens im selben Gueltigkeitsbereich, gewinnt sie -- ohne Warnung,
|
||||
ohne Fehler.
|
||||
|
||||
Danach bekam jede Uebersichtskachel mein Objekt als ersten
|
||||
Parameter gereicht und zeigte "[object Object]" und "undefined"
|
||||
an. Die Push-Karte funktionierte dabei einwandfrei, was die Suche
|
||||
zusaetzlich in die Irre fuehrt: Der sichtbare Schaden lag weit weg
|
||||
von seiner Ursache.
|
||||
|
||||
Deshalb traegt sie jetzt einen Namen, der sagt, wozu sie gehoert. */
|
||||
function pushKachel(titel, inhalt, art) {
|
||||
var farbe = art === "gut" ? "var(--wd-aqua)"
|
||||
: art === "warn" ? "var(--wd-lila-hell)" : "var(--wd-rand)";
|
||||
return '<div class="wd-karte" style="padding:1rem 1.1rem;margin-bottom:1.1rem;' +
|
||||
@@ -2780,7 +2796,7 @@
|
||||
} catch (fehler) {
|
||||
var kasten = document.getElementById("vw-push-karte");
|
||||
if (kasten) {
|
||||
kasten.innerHTML = kachel("Einschalten hat nicht geklappt",
|
||||
kasten.innerHTML = pushKachel("Einschalten hat nicht geklappt",
|
||||
'<p class="wd-klein">' + s((fehler && fehler.message) || "Unbekannter Fehler") + '</p>' +
|
||||
'<div class="wd-btn-reihe" style="margin-top:.7rem">' +
|
||||
'<button type="button" class="wd-btn wd-btn--zweit wd-btn--klein" id="vw-push-an">Nochmal versuchen</button>' +
|
||||
|
||||
Reference in New Issue
Block a user