Kundenansicht neu: vorübergehende Messung der iPhone-Höhe

Der Fix 0fa8fdb hat die zu hoch stehende Leiste am iPhone nicht
behoben. Damit wir nicht weiter raten: die Seite schickt am iPhone
Bildschirmwerte (Fenster, visualViewport, Bildschirm, Safe-Area,
vh-Einheiten, Lage der Leiste, Eingriffe von hoehe.js) an
/api/diag/hoehe, der Server schreibt sie als Zeile "[diag-hoehe]" ins
Log. Keine Inhalte, nur Pilot-Kunden (nicht die Mitarbeiter-Ansicht),
höchstens 80 Meldungen je Seite und 400 Zeilen je Kunde und Stunde.
Wird nach der Klärung wieder entfernt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-29 11:10:30 +00:00
1 parent 0fa8fdbbac
commit cca29a4aef
7 files changed
+188 -4

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
import express from 'express'
import { parsePortalSession } from '../middleware/session.js'
import { neueAnsichtFuerSession } from '../services/kundenansicht/schalter.js'
/* VORÜBERGEHENDE MESSUNG (2026-10-29), wird nach der Klärung wieder entfernt: Am iPhone (App vom Home-Bildschirm) steht die Leiste der neuen
Kundenansicht zu hoch. Die Seite (public/neu/diag-hoehe.js) schickt Bildschirmwerte, keine Inhalte; hier wird je Meldung eine Zeile
„[diag-hoehe] …“ ins Log geschrieben. Nur für Kunden-Sitzungen, die die neue Ansicht sehen (Pilot), nicht für die Mitarbeiter-Kundenansicht.
Ohne Appwrite-Abfrage (der signierte Cookie reicht), höchstens MAX_JE_STUNDE Zeilen je Kunde und Stunde, höchstens MAX_BYTES je Zeile. */
export const MAX_BYTES = 4000
export const MAX_JE_STUNDE = 400
const zaehler = new Map() // customerId -> { stunde, n }
const router = express.Router()
router.post('/', (req, res) => {
const session = parsePortalSession(req)
if (!session || session.viewAs || !neueAnsichtFuerSession(session)) return res.status(204).end()
const stunde = Math.floor(Date.now() / 3600000)
const stand = zaehler.get(session.customerId)
const z = stand && stand.stunde === stunde ? stand : { stunde, n: 0 }
z.n += 1
zaehler.set(session.customerId, z)
if (z.n > MAX_JE_STUNDE) return res.status(204).end()
const zeile = JSON.stringify(req.body && typeof req.body === 'object' ? req.body : {})
if (zeile.length > MAX_BYTES) return res.status(204).end()
console.log(`[diag-hoehe] ${String(session.customerId).slice(0, 6)} ${zeile}`)
return res.status(204).end()
})
export default router