Verwaltung auf dem Handy: vier Fehler behoben

Geprueft mit nachgebildeten Daten -- lange Firmennamen, lange
E-Mail-Adressen, mehrstellige Betraege. Eine leere Seite laeuft nie
ueber; die Fehler, um die es geht, entstehen erst mit Inhalt.

1. DAS RASTER DER KOPFZEILE WAR BREITER ALS SEIN BEHAELTER

Auf 390px summierten sich die beiden Spalten auf 372,7px, waehrend die
Leiste nur 358px breit ist. Rasterspalten schrumpfen von sich aus nicht
unter ihren Inhalt ("min-width: auto"). Alles darin schob sich nach
rechts hinaus: die Kopfzeile 8px, der Reiterstreifen 12px.

Sichtbar war das kaum -- der Streifen ist ohnehin wischbar, rechts
fehlte nur ein Stueck Rand. Genau deshalb blieb es liegen: ein Fehler,
der sich als Eigenart tarnt. Jetzt minmax(0, …) plus min-width: 0 an
den Kindern; lange Titel kuerzen mit Auslassungspunkten, statt zu
schieben.

2. DER INSTALLATIONSHINWEIS ZEIGTE DAS FALSCHE SYMBOL

Seit die Verwaltung eine eigene App ist, stand dort weiter der schwarze
Husky. Man las "Als App installieren" neben dem einen Bild und bekam
das andere auf den Startbildschirm. Das Symbol wird jetzt aus dem
Manifest abgeleitet, das die Seite tatsaechlich einbindet -- damit
stimmt es auch fuer jede kuenftige App, ohne dass jemand daran denken
muss.

3. DIE UEBERSICHT BRACH BEI UNVOLLSTAENDIGER ANTWORT AB

d.projekte und d.verlauf wurden ungeprueft mit .length angefasst,
waehrend drei andere Felder ausdruecklich geprueft wurden. Fehlte eine
der Listen, brach die Uebersicht mit "Cannot read properties of
undefined" ab -- und zwar NACH dem Aufbau der oberen Kacheln: Die halbe
Seite stand da, der Rest fehlte kommentarlos. Genau der Fall, den der
Kommentar daneben als "realistisch" beschreibt. Jetzt wird aufgefuellt
statt abgebrochen.

4. ZWEI FEHLALARME IM TEST SELBST

Der Test meldete den Reiterstreifen als Ueberlauf (er ist ein
Wischstreifen -- dass dort etwas ausserhalb liegt, ist sein Sinn) und
eine 1x1-Checkbox als zu kleines Tippziel (bedient wird sie ueber ihr
Label, 315x162 Punkte). Beides wuerde dazu verleiten, Funktionierendes
"zu reparieren". Der Test unterscheidet das jetzt.

Ebenso meldete er "Strg" und "Enter" mit 10,4px -- beide sind auf
schmalen Schirmen laengst ausgeblendet. getComputedStyle liefert auch
fuer verborgene Elemente eine Schriftgroesse; jetzt zaehlt nur
Sichtbares.

25 Pruefungen ueber sechs Bereiche gruen.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-08-26 19:09:33 +02:00
co-authored by Claude Opus 5
parent 62cbd724e2
commit ea11cefe17
5 changed files with 462 additions and 5 deletions
+27 -2
View File
@@ -724,13 +724,38 @@
return iphone || ipadNeu;
}
/* Das Symbol der App, die hier tatsaechlich installiert wird.
⚠️ Vorher stand hier fest "/assets/img/wd-app-192.png". Seit die
Verwaltung eine eigene App mit eigenem Symbol ist (26.08.2026),
zeigte der Hinweis dort das FALSCHE Bild: Man las "Als App
installieren" neben dem schwarzen Husky und bekam anschliessend das
Eiskristall-Wappen auf den Startbildschirm.
Ein Hinweis, der etwas anderes zeigt als das, was passiert, ist
schlimmer als gar keiner -- man haelt ihn beim naechsten Mal fuer
unzuverlaessig.
Jetzt wird das Symbol aus dem Manifest gelesen, das die Seite
tatsaechlich einbindet. Damit stimmt es automatisch auch fuer jede
kuenftige App, ohne dass jemand daran denken muss. */
function installSymbol() {
try {
var v = document.querySelector('link[rel="manifest"]');
if (v && /verwaltung\.webmanifest/.test(v.getAttribute("href") || "")) {
return "/assets/img/wd-admin-192.jpg";
}
} catch (e) { /* dann eben das allgemeine */ }
return "/assets/img/wd-app-192.png";
}
function installBannerBauen(inhalt, mitKnopf) {
var box = document.createElement("div");
box.className = "wd-install";
box.setAttribute("role", "region");
box.innerHTML =
'<div class="wd-install-text">' +
'<img src="/assets/img/wd-app-192.png" alt="" width="40" height="40" />' +
'<img src="' + installSymbol() + '" alt="" width="40" height="40" />' +
"<div><strong>" + t("install_titel") + "</strong><span>" + inhalt + "</span></div>" +
"</div>" +
'<div class="wd-install-knoepfe">' +
@@ -838,7 +863,7 @@
Stand haben. Die Nummer wird zusammen mit CACHE_NAME in sw.js
hochgezaehlt -- beide gehoeren zusammen. */
navigator.serviceWorker
.register("/webdesign/sw.js?v=59", { scope: "/webdesign/" })
.register("/webdesign/sw.js?v=60", { scope: "/webdesign/" })
.catch(function () { /* still schlucken: ohne SW funktioniert alles weiter */ });
});
}