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:
1 parent
0fa8fdbbac
commit
cca29a4aef
7 files changed
+188
-4
No files matched your search
@@ -27,6 +27,7 @@ import zeitenRoutes from './routes/zeiten.js'
|
||||
import publicAuftragRoutes from './routes/auftrag.js'
|
||||
import kundeAuftraegeRoutes from './routes/auftraegeKunde.js'
|
||||
import takeoverCreditRoutes from './routes/takeoverCredits.js'
|
||||
import diagHoeheRoutes from './routes/diagHoehe.js'
|
||||
import { purgeExpiredUploads } from './services/takeoverCredits.js'
|
||||
import { purgePendingChatUploads } from './services/chatAttachments.js'
|
||||
import { purgeViewLog } from './services/customerViewLog.js'
|
||||
@@ -95,6 +96,8 @@ app.use(express.json({ limit: '2mb', verify: (req, _res, buf) => { req.rawBody =
|
||||
app.use(corsMiddleware(config.cors.allowedOrigins))
|
||||
|
||||
app.use('/api/auth', authRoutes)
|
||||
// VORÜBERGEHENDE MESSUNG (2026-10-29): Bildschirmwerte der iPhone-App ins Log (routes/diagHoehe.js), wird nach der Klärung entfernt
|
||||
app.use('/api/diag/hoehe', diagHoeheRoutes)
|
||||
app.use('/api/projects', projectsRoutes)
|
||||
app.use('/api/features', featuresRoutes)
|
||||
app.use('/api/public/news', publicNewsRoutes)
|
||||
|
||||
@@ -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
|
||||
Reference in new issue
Block a user