Waechter: leere Geraeteliste und fehlende Tabelle unterscheiden
Der erste echte Probelauf meldete "kein Geraet angemeldet". Richtig -- aber dieselbe Meldung waere auch erschienen, wenn die Tabelle gar nicht existierte, weil dbLesen in beiden Faellen "" zurueckgibt. Das sind zwei voellig verschiedene Lagen: Einmal genuegt ein Klick in der Verwaltung, einmal ist die Migration nicht gelaufen. Wer die falsche Meldung liest, drueckt auf Einschalten, sieht keine Wirkung und sucht dann beim Browser statt bei der Datenbank. Genau die Sorte Verwechslung, gegen die dieser ganze Strang gebaut wurde. Jetzt wird zuerst gefragt, ob die Tabelle da ist, und die Meldung sagt im harmlosen Fall auch gleich, was zu tun ist. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -244,8 +244,32 @@ async function meldung(titel, text) {
|
||||
return { gesendet: 0, grund: "Schluessel nicht entschluesselbar" };
|
||||
}
|
||||
|
||||
/* ⚠️ Hier standen zwei sehr verschiedene Ursachen unter derselben
|
||||
Meldung: eine leere Geraeteliste und eine fehlende Tabelle.
|
||||
|
||||
dbLesen gibt in beiden Faellen "" zurueck -- einmal, weil niemand
|
||||
angemeldet ist (harmlos, ein Klick behebt es), einmal, weil die
|
||||
Migration nicht gelaufen ist (ein Fehler, der Suchen an ganz
|
||||
anderer Stelle ausloest). Wer "kein Geraet angemeldet" liest, klickt
|
||||
auf Einschalten; wenn dann nichts passiert, sucht er beim Browser
|
||||
statt bei der Datenbank.
|
||||
|
||||
Deshalb wird jetzt zuerst gefragt, ob es die Tabelle ueberhaupt
|
||||
gibt. Aufgefallen am 26.08.2026 beim ersten echten Probelauf. */
|
||||
const tabelleDa = dbLesen(
|
||||
"SELECT count(*) FROM sqlite_master WHERE type='table' AND name='wd_push_geraete';"
|
||||
);
|
||||
if (tabelleDa !== "1") {
|
||||
return { gesendet: 0, grund: "Tabelle wd_push_geraete fehlt — Migration 0019 nicht gelaufen" };
|
||||
}
|
||||
|
||||
const zeilen = dbLesen("SELECT endpunkt, p256dh, auth FROM wd_push_geraete;");
|
||||
if (!zeilen) return { gesendet: 0, grund: "kein Geraet angemeldet" };
|
||||
if (!zeilen) {
|
||||
return {
|
||||
gesendet: 0,
|
||||
grund: "kein Geraet angemeldet — in der Verwaltung unter Uebersicht einschalten",
|
||||
};
|
||||
}
|
||||
|
||||
const vapid = {
|
||||
oeffentlich, privat,
|
||||
|
||||
Reference in New Issue
Block a user