D4 Part 2: hub style.css v2 + template sweep
- style.css: slate tokens -> the canonical navy block + @font-face (self-hosted, latin-ext for Hungarian customer names); single 2px radius; hairline table rows (--line-soft dividers, density kept); status classes re-expressed per the design-system addendum: .status-badge = outline tag + CSS ::before dot keyed by the raw status the templates emit (ok=blue, warn/blocked/stale=amber, down/fail=red, pending/disabled=quiet neutral); .status-dot = class-based 8px dot; severity badges stay filled amber/red (exceptions stay loud); config badges = filled informational chips in v2 colors; row tint only for warn/down (warn-dim/crit-dim). - Two-tone brand heading on all 8 'Felhom Hub' pages (<h1>Felhom <span>Hub</span></h1>, span = blue-bright). - app_detail chart retinted: avg #2EA8F5 (primary data), peak #8E7CE8 (secondary DATA series — not status red), catalog-limit line #E0A93E (threshold marker); legend/tick/grid -> v2 literals. - customer_unified: JS status-message colors (success -> blue-bright, error -> crit), all inline slate hexes -> tokens. - Login page inline HTML retinted (#0088cc -> #0083D8). - Grep gate: every slate hex (#0f172a #1e293b #334155 #60a5fa #4ade80 #facc15 #f87171 #94a3b8 #64748b #475569 #e2e8f0) at ZERO across hub/internal/web (non-test); statusIcon 0; inline statusColor style 0. go build/vet/test green; api/ + store/ untouched.
This commit is contained in:
@@ -434,11 +434,11 @@ func (s *Server) handleLogin(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
// Render login with error
|
||||
w.WriteHeader(http.StatusUnauthorized)
|
||||
w.Write([]byte(`<html><head><title>Felhom Hub — Bejelentkezés</title></head><body style="font-family:sans-serif;display:flex;justify-content:center;padding-top:4rem"><form method="post" style="display:flex;flex-direction:column;gap:.75rem;width:300px"><h2>Felhom Hub</h2><p style="color:red">Hibás jelszó</p><input type="password" name="password" placeholder="Jelszó" autofocus style="padding:.5rem;border:1px solid #ccc;border-radius:4px"><button type="submit" style="padding:.5rem;background:#0088cc;color:#fff;border:none;border-radius:4px;cursor:pointer">Bejelentkezés</button></form></body></html>`))
|
||||
w.Write([]byte(`<html><head><title>Felhom Hub — Bejelentkezés</title></head><body style="font-family:sans-serif;display:flex;justify-content:center;padding-top:4rem"><form method="post" style="display:flex;flex-direction:column;gap:.75rem;width:300px"><h2>Felhom Hub</h2><p style="color:red">Hibás jelszó</p><input type="password" name="password" placeholder="Jelszó" autofocus style="padding:.5rem;border:1px solid #ccc;border-radius:4px"><button type="submit" style="padding:.5rem;background:#0083D8;color:#fff;border:none;border-radius:4px;cursor:pointer">Bejelentkezés</button></form></body></html>`))
|
||||
return
|
||||
}
|
||||
w.WriteHeader(http.StatusOK)
|
||||
w.Write([]byte(`<html><head><title>Felhom Hub — Bejelentkezés</title></head><body style="font-family:sans-serif;display:flex;justify-content:center;padding-top:4rem"><form method="post" style="display:flex;flex-direction:column;gap:.75rem;width:300px"><h2>Felhom Hub</h2><input type="password" name="password" placeholder="Jelszó" autofocus style="padding:.5rem;border:1px solid #ccc;border-radius:4px"><button type="submit" style="padding:.5rem;background:#0088cc;color:#fff;border:none;border-radius:4px;cursor:pointer">Bejelentkezés</button></form></body></html>`))
|
||||
w.Write([]byte(`<html><head><title>Felhom Hub — Bejelentkezés</title></head><body style="font-family:sans-serif;display:flex;justify-content:center;padding-top:4rem"><form method="post" style="display:flex;flex-direction:column;gap:.75rem;width:300px"><h2>Felhom Hub</h2><input type="password" name="password" placeholder="Jelszó" autofocus style="padding:.5rem;border:1px solid #ccc;border-radius:4px"><button type="submit" style="padding:.5rem;background:#0083D8;color:#fff;border:none;border-radius:4px;cursor:pointer">Bejelentkezés</button></form></body></html>`))
|
||||
}
|
||||
|
||||
// validateCSRF checks the CSRF token for a session-based request.
|
||||
|
||||
Reference in New Issue
Block a user