57 lines
No EOL
4.2 KiB
PHP
57 lines
No EOL
4.2 KiB
PHP
<?php require_once __DIR__ . '/../inc/admin_header.php'; ?>
|
|
<?php
|
|
$baseUrl = rtrim(Config::get('BASE_URL', 'https://philippurbschat.de/'), '/');
|
|
?>
|
|
<div class="max-w-7xl w-full mx-auto flex flex-col md:flex-row gap-6 p-4 sm:p-6">
|
|
<!-- Sidebar Navigation -->
|
|
<aside class="w-full md:w-56 bg-slate-900/60 backdrop-blur-md border border-slate-800 rounded-2xl p-4 h-fit shrink-0">
|
|
<div class="mb-4 pb-3 border-b border-slate-800">
|
|
<h2 class="text-xs font-mono uppercase tracking-[0.2em] text-slate-400 font-bold">Navigation</h2>
|
|
</div>
|
|
<nav class="flex flex-col gap-1.5 font-mono text-xs">
|
|
<a href="<?= $baseUrl ?>/admin" class="px-3 py-2 bg-cyan-500/10 text-cyan-400 border border-cyan-500/30 rounded-xl transition-all">Dashboard</a>
|
|
<a href="<?= $baseUrl ?>/admin/users?tab=users" class="px-3 py-2 text-slate-400 hover:text-slate-200 hover:bg-slate-800/60 rounded-xl transition-all">Benutzer</a>
|
|
<a href="<?= $baseUrl ?>/admin/users?tab=invites" class="px-3 py-2 text-slate-400 hover:text-slate-200 hover:bg-slate-800/60 rounded-xl transition-all">Einladungslinks</a>
|
|
<a href="<?= $baseUrl ?>/admin/settings" class="px-3 py-2 text-slate-400 hover:text-slate-200 hover:bg-slate-800/60 rounded-xl transition-all">Einstellungen</a>
|
|
</nav>
|
|
</aside>
|
|
|
|
<main class="flex-1 min-w-0 bg-slate-900/60 backdrop-blur-md border border-slate-800 rounded-3xl p-6 sm:p-8 shadow-2xl relative overflow-hidden flex flex-col">
|
|
<div class="absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-transparent via-cyan-500/40 to-transparent"></div>
|
|
|
|
<header class="mb-8 border-b border-slate-800 pb-6">
|
|
<h1 class="text-xl sm:text-2xl font-black text-slate-100 font-mono tracking-tight">
|
|
<span class="text-cyan-400">/</span> System Dashboard
|
|
</h1>
|
|
<p class="text-slate-400 font-mono text-xs mt-1">Statusübersicht für <span class="text-cyan-400"><?= htmlspecialchars(Auth::user() ?? 'Admin') ?></span></p>
|
|
</header>
|
|
|
|
<div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
|
|
<div class="p-5 bg-slate-950/80 rounded-2xl border border-slate-800">
|
|
<h3 class="text-slate-500 font-mono text-xs uppercase tracking-wider mb-2">Datenbank-Verbindung</h3>
|
|
<p class="text-emerald-400 font-mono text-sm flex items-center gap-2">
|
|
<span class="w-2 h-2 rounded-full bg-emerald-500 animate-pulse"></span>
|
|
<?= htmlspecialchars($health['db_status'] ?? 'Online') ?>
|
|
</p>
|
|
</div>
|
|
<div class="p-5 bg-slate-950/80 rounded-2xl border border-slate-800">
|
|
<h3 class="text-slate-500 font-mono text-xs uppercase tracking-wider mb-2">PHP Engine</h3>
|
|
<p class="text-cyan-400 font-mono text-sm">v<?= htmlspecialchars($health['php_version'] ?? 'N/A') ?> (<?= htmlspecialchars($health['memory'] ?? 'N/A') ?>)</p>
|
|
</div>
|
|
<div class="p-5 bg-slate-950/80 rounded-2xl border border-slate-800">
|
|
<h3 class="text-slate-500 font-mono text-xs uppercase tracking-wider mb-2">Festplattenspeicher</h3>
|
|
<p class="text-slate-300 font-mono text-sm"><?= htmlspecialchars($health['disk_free'] ?? 'Verfügbar') ?></p>
|
|
</div>
|
|
<div class="p-5 bg-slate-950/80 rounded-2xl border border-slate-800">
|
|
<h3 class="text-slate-500 font-mono text-xs uppercase tracking-wider mb-2">Schreibrechte</h3>
|
|
<p class="font-mono text-sm <?= ($health['writable'] ?? '') === 'OK' ? 'text-emerald-400' : 'text-rose-400' ?>"><?= htmlspecialchars($health['writable'] ?? 'OK') ?></p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mt-8 p-4 bg-slate-950/60 rounded-2xl border border-slate-800/80 font-mono text-xs text-slate-500 space-y-1">
|
|
<p><span class="text-slate-600">[<?= date('H:i:s') ?>]</span> Umgebungs-Modus: <?= htmlspecialchars($health['env_status'] ?? 'Produktion') ?></p>
|
|
<p><span class="text-slate-600">[<?= date('H:i:s') ?>]</span> Alle Module und Schnittstellen betriebsbereit.</p>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
<?php require_once __DIR__ . '/../inc/admin_footer.php'; ?>
|