Refactor: Zentralisiertes Admin-Login im Top-Menü

- Admin-Login aus 3 Plugins (Soundboard, Streaming, Game Library) entfernt
- Zentraler 🔒/🔓 Button im Header mit Login-Modal
- isAdmin wird als Prop an alle Plugins weitergegeben
- Settings-Buttons (Gear-Icons) nur sichtbar wenn eingeloggt
- Alle Plugins nutzen weiterhin den shared admin-Cookie für Operationen
- Login/Logout-Formulare und Buttons aus Plugin-Panels entfernt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Daniel 2026-03-09 21:59:12 +01:00
parent bccfee3de2
commit e9931d82af
10 changed files with 5077 additions and 5063 deletions

View file

@ -353,6 +353,104 @@ html, body {
background: rgba(230, 126, 34, 0.1);
}
/* ── Admin Button (header) ── */
.hub-admin-btn {
background: none;
border: 1px solid var(--border);
border-radius: var(--radius);
color: var(--text-muted);
font-size: 16px;
padding: 4px 8px;
cursor: pointer;
transition: all var(--transition);
line-height: 1;
}
.hub-admin-btn:hover {
color: var(--accent);
border-color: var(--accent);
}
.hub-admin-btn.active {
color: #4ade80;
border-color: #4ade80;
}
/* ── Admin Login Modal ── */
.hub-admin-overlay {
position: fixed;
inset: 0;
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.7);
backdrop-filter: blur(4px);
}
.hub-admin-modal {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 12px;
width: 340px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
}
.hub-admin-modal-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 16px 20px;
border-bottom: 1px solid var(--border);
font-weight: 600;
}
.hub-admin-modal-close {
background: none;
border: none;
color: var(--text-muted);
cursor: pointer;
font-size: 16px;
}
.hub-admin-modal-close:hover {
color: var(--text);
}
.hub-admin-modal-body {
padding: 20px;
display: flex;
flex-direction: column;
gap: 12px;
}
.hub-admin-input {
width: 100%;
padding: 8px 12px;
border: 1px solid var(--border);
border-radius: var(--radius);
background: var(--bg-secondary);
color: var(--text);
font-size: 14px;
font-family: var(--font);
box-sizing: border-box;
}
.hub-admin-input:focus {
outline: none;
border-color: var(--accent);
}
.hub-admin-error {
color: #ef4444;
font-size: 13px;
margin: 0;
}
.hub-admin-submit {
padding: 8px 16px;
background: var(--accent);
color: #fff;
border: none;
border-radius: var(--radius);
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: opacity var(--transition);
}
.hub-admin-submit:hover {
opacity: 0.9;
}
/* ── Version Info Modal ── */
.hub-version-clickable {
cursor: pointer;