Kundenansicht neu E-Fix F2: Sperre der Mitarbeiter-Kundenansicht als echte Sperre in der neuen Seite

public/kundenansicht.js hängt bei 409 view_replaced und 401 view_expired .kb-view-overlay an den Body; die Regeln dafür standen nur in der
alten kundenbereich.css. In der neuen Seite entstand ein unformatierter Absatz mit nacktem Knopf unter der Leiste. Jetzt: fixiert, deckend weiß,
über Konto und Leiste, Text und Knopf "Tab schließen" (44 px, schwarz). Pin in test/knEfixCss.test.js, Ansicht kn-huelle-sperre im Werkzeug.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-16 21:27:07 +00:00
1 parent d4050f870a
commit 112475e873
2 files changed
+36

No files matched your search

+10
View File
@@ -76,6 +76,16 @@
}
@keyframes kn-sheet-hoch { from { transform: translateY(100%); } }
/* ---------- Sperre der Mitarbeiter-Kundenansicht (E-Fix F2) ----------
public/kundenansicht.js hängt bei 409 view_replaced bzw. 401 view_expired ein div.kb-view-overlay (role alertdialog) an den Body. Die alte Seite
gestaltet es in kundenbereich.css, die dashboard.html nicht lädt: hier die Regeln für die neue Seite. Deckend weiß über allem (Konto 60, Leiste 40),
damit nichts Veraltetes bedienbar bleibt. */
.kb-view-overlay { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom)); background: var(--kn-bg); }
.kb-view-overlay-card { width: 100%; max-width: 420px; text-align: center; }
.kb-view-overlay-card p { margin: 0 0 24px; font-size: 17px; line-height: 26px; color: var(--kn-text); }
.kb-view-overlay-card button { min-height: 44px; padding: 0 24px; border-radius: var(--kn-radius); background: var(--kn-accent); color: #fff; font-weight: 600; box-shadow: var(--kn-shadow-btn); }
.kb-view-overlay-card button:hover { background: var(--kn-accent-hover); }
/* ---------- Gerüst: Spalte, Inhalt, Menü (Desktop) und Kopf ---------- */
.kn { --kn-kopf-h: 52px; }
+26
View File
@@ -0,0 +1,26 @@
import { test } from 'node:test'
import assert from 'node:assert/strict'
import { lies } from './support/knHuelle.js'
// Abschlussprüfung Phase E (Fix-Welle): Pins für die CSS-Befunde der neuen Seite. Sie lesen nur Quelltext, kein Browser.
const HUELLE = lies('huelle.css')
const regel = (css, selektor) => {
const m = css.match(new RegExp(`(?:^|\\n)${selektor.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\s*\\{([^}]*)\\}`))
return m ? m[1] : ''
}
test('F2: die Sperre der Mitarbeiter-Kundenansicht (.kb-view-overlay) ist in der neuen Seite eine echte Sperre', () => {
const o = regel(HUELLE, '.kb-view-overlay')
assert.match(o, /position:\s*fixed/)
assert.match(o, /inset:\s*0\b/)
assert.match(o, /z-index:\s*(\d{3,})/) // über Konto (60), Leiste (40) und Banner
assert.ok(Number(o.match(/z-index:\s*(\d+)/)?.[1]) > 60)
assert.match(o, /background:\s*var\(--kn-bg\)/) // deckend weiß, kein Glas, kein rgba mit Durchsicht
assert.doesNotMatch(o, /rgba|transparent|opacity/)
const karte = regel(HUELLE, '.kb-view-overlay-card')
assert.match(karte, /max-width:\s*\d+px/)
const knopf = regel(HUELLE, '.kb-view-overlay-card button')
assert.match(knopf, /min-height:\s*44px/)
assert.match(knopf, /background:\s*var\(--kn-accent\)/)
assert.match(regel(HUELLE, '.kb-view-overlay-card p'), /font-size:\s*\d+px/)
})