Files
veritas-suite/crates/veritas-server/static/admin.html
T

170 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Administrator Kontrollzentrum | Veritas Suite</title>
<meta name="description" content="Geschütztes Administrator-Portal der Veritas Suite: B2B-Statistiken, Benutzerverwaltung, Lizenzerstellung und Geräte-Logs.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="styles.css">
</head>
<body class="admin-page">
<!-- Background Orbs -->
<div class="glow-orb orb-purple"></div>
<div class="glow-orb orb-cyan" style="background: radial-gradient(circle, rgba(245, 158, 11, 0.15) 0%, rgba(0, 0, 0, 0) 70%);"></div>
<!-- Header Navigation -->
<header class="navbar">
<div class="nav-container">
<a href="/" class="logo">
<div class="logo-shield" style="background: linear-gradient(135deg, #f59e0b, #b45309);">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
</div>
<div class="logo-brand">
<span class="brand-name" style="color: #fbbf24;">VERITAS ADMIN</span>
<span class="brand-tag" style="background: rgba(245, 158, 11, 0.2); color: #fef08a;">CONTROL CENTER</span>
</div>
</a>
<nav class="nav-links">
<a href="/" class="nav-item">🌐 Startseite</a>
<a href="/downloads" class="nav-item">📥 Downloads</a>
<a href="/portal" class="nav-item">👤 Kundenportal</a>
<a href="https://mail.kanjiv.at/SOGo/index/" target="_blank" class="nav-item" style="color: #38bdf8;">📧 E-Mail Dienst</a>
<a href="https://git.kanjiv.at/" target="_blank" class="nav-item" style="color: #a855f7;">🐙 Git Server</a>
<a href="/admin" class="nav-item active" style="color: #fbbf24; border-bottom: 2px solid #f59e0b;">👑 Admin-Zentrale</a>
</nav>
<div class="server-status-pill" id="status-pill">
<span class="status-indicator"></span>
<span id="status-text">Server: Verbinde...</span>
</div>
</div>
</header>
<!-- Admin Section -->
<section class="section" style="padding-top: 7rem;">
<div class="container">
<!-- Global Alert Box -->
<div id="admin-alert" class="alert-box" style="display: none; margin-bottom: 1.5rem; padding: 12px 16px; border-radius: 8px; font-weight: 500;"></div>
<!-- STATE 1: ACCESS DENIED CARD (If not logged in as Admin in Customer Portal) -->
<div id="admin-logged-out-state" class="portal-card glass-panel" style="max-width: 520px; margin: 3rem auto; padding: 2.5rem; border-radius: 16px; border: 1px solid rgba(245, 158, 11, 0.3); background: rgba(24, 34, 53, 0.85); text-align: center;">
<div style="font-size: 3.5rem; margin-bottom: 1rem;">🔒</div>
<h2 style="color: #fbbf24; margin-bottom: 0.5rem;">Zugriff geschützt</h2>
<p style="color: #cbd5e1; font-size: 0.95rem; line-height: 1.6; margin-bottom: 1.8rem;">
Die Admin-Zentrale ist geschützt. Bitte melde dich zuerst im <strong>Kundenportal</strong> mit deinem Administrator-Konto an.
</p>
<a href="/portal" class="btn btn-glow btn-block" style="display: inline-block; background: linear-gradient(135deg, #f59e0b, #b45309); color: #fff; font-weight: 700; padding: 12px 24px; border-radius: 8px; text-decoration: none;">
👤 Zum Kundenportal & Admin-Login
</a>
</div>
<!-- STATE 2: FULL ADMIN CONTROL DASHBOARD (If logged in as Admin in Customer Portal) -->
<div id="admin-logged-in-state" style="display: none;">
<!-- Admin Header Bar -->
<div class="dash-user-bar glass-panel" style="display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; border-radius: 12px; background: rgba(245, 158, 11, 0.1); border: 1px solid rgba(245, 158, 11, 0.3); margin-bottom: 2rem;">
<div style="display: flex; align-items: center; gap: 12px;">
<span style="font-size: 2rem;">👑</span>
<div>
<span style="color: #fef08a; font-size: 0.8rem; font-weight: 700; text-transform: uppercase;">Administrator Kontrollzentrum</span>
<h3 id="admin-user-email-display" style="color: #fff; margin: 0;">admin@kanjiv.at</h3>
</div>
</div>
<button class="btn btn-outline-danger" onclick="logoutAdmin()">Admin Abmelden</button>
</div>
<!-- KPI Metrics Cards -->
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.2rem; margin-bottom: 2rem;">
<div class="glass-panel" style="padding: 1.5rem; border-radius: 12px; background: rgba(24, 34, 53, 0.7); text-align: center; border: 1px solid rgba(255,255,255,0.08);">
<span style="font-size: 2.2rem; font-weight: 800; color: #fff;" id="admin-stat-users">0</span>
<span style="display: block; color: #94a3b8; font-size: 0.85rem; margin-top: 4px;">👥 Registrierte Benutzer</span>
</div>
<div class="glass-panel" style="padding: 1.5rem; border-radius: 12px; background: rgba(24, 34, 53, 0.7); text-align: center; border: 1px solid rgba(255,255,255,0.08);">
<span style="font-size: 2.2rem; font-weight: 800; color: #38bdf8;" id="admin-stat-licenses">0</span>
<span style="display: block; color: #94a3b8; font-size: 0.85rem; margin-top: 4px;">🔑 Aktive Lizenzen</span>
</div>
<div class="glass-panel" style="padding: 1.5rem; border-radius: 12px; background: rgba(24, 34, 53, 0.7); text-align: center; border: 1px solid rgba(255,255,255,0.08);">
<span style="font-size: 2.2rem; font-weight: 800; color: #34d399;" id="admin-stat-activations">0</span>
<span style="display: block; color: #94a3b8; font-size: 0.85rem; margin-top: 4px;">⚡ Geräte-Aktivierungen</span>
</div>
</div>
<!-- Create License Form Card -->
<div class="glass-panel" style="padding: 1.8rem; border-radius: 14px; background: rgba(24, 34, 53, 0.8); border: 1px solid rgba(245, 158, 11, 0.3); margin-bottom: 2rem;">
<h3 style="color: #fbbf24; margin-bottom: 1rem; font-size: 1.2rem;"> Neue Manuelle B2B-Lizenz Erstellen</h3>
<form onsubmit="handleAdminCreateLicense(event)" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.2rem; align-items: end;">
<div class="form-group">
<label style="display: block; margin-bottom: 6px; color: #cbd5e1; font-size: 0.9rem;">Benutzer-ID (Ziel-User)</label>
<input type="number" id="admin-create-uid" value="1" required style="width: 100%; padding: 10px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.15); background: rgba(3, 7, 18, 0.8); color: #fff;">
</div>
<div class="form-group">
<label style="display: block; margin-bottom: 6px; color: #cbd5e1; font-size: 0.9rem;">Plan-Bezeichnung</label>
<select id="admin-create-plan" style="width: 100%; padding: 10px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.15); background: rgba(3, 7, 18, 0.8); color: #fff;">
<option value="Veritas Suite Pro">Veritas Suite Pro (5 Geräte)</option>
<option value="Veritas Enterprise Forensics">Veritas Enterprise Forensics (25 Geräte)</option>
<option value="Veritas Ultimate Care">Veritas Ultimate Care (10 Geräte)</option>
</select>
</div>
<div class="form-group">
<label style="display: block; margin-bottom: 6px; color: #cbd5e1; font-size: 0.9rem;">Max Geräte-Slots</label>
<input type="number" id="admin-create-max" value="5" required style="width: 100%; padding: 10px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.15); background: rgba(3, 7, 18, 0.8); color: #fff;">
</div>
<div class="form-group">
<button type="submit" class="btn btn-emerald" style="width: 100%; padding: 10px;">🔑 Lizenz Schlüssel Generieren</button>
</div>
</form>
</div>
<!-- Admin System Licenses Table -->
<div class="glass-panel" style="padding: 1.8rem; border-radius: 14px; background: rgba(24, 34, 53, 0.8); border: 1px solid rgba(255,255,255,0.08);">
<h3 style="color: #fff; margin-bottom: 1rem; font-size: 1.2rem;">📋 Alle Lizenzen & Sperr-Status im System</h3>
<div style="overflow-x: auto;">
<table style="width: 100%; border-collapse: collapse; text-align: left;">
<thead>
<tr style="background: rgba(3, 7, 18, 0.8); color: #94a3b8; font-size: 0.9rem;">
<th style="padding: 12px;">ID</th>
<th style="padding: 12px;">Lizenzschlüssel</th>
<th style="padding: 12px;">Kunden E-Mail</th>
<th style="padding: 12px;">Plan</th>
<th style="padding: 12px;">Geräte</th>
<th style="padding: 12px;">Status</th>
<th style="padding: 12px;">Aktion</th>
</tr>
</thead>
<tbody id="admin-licenses-table-body" style="color: #cbd5e1;">
<tr><td colspan="7" style="padding: 16px; text-align: center;">Lade Systemdaten...</td></tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="footer">
<div class="container footer-content">
<div class="footer-brand">
<span class="logo-shield" style="background: linear-gradient(135deg, #f59e0b, #b45309);">🛡️</span>
<span style="color: #fbbf24;">VERITAS SUITE ADMIN</span>
</div>
<p>&copy; 2026 Veritas Suite. Geschütztes Administrator-Portal auf VPS kanjiv.at.</p>
<div class="footer-links">
<a href="/">Startseite</a>
<a href="/downloads">Downloads</a>
<a href="/portal">Kundenportal</a>
</div>
</div>
</footer>
<script src="app.js"></script>
</body>
</html>