This commit is contained in:
2026-03-04 01:58:26 +01:00
parent a7844c145a
commit c360663603
23 changed files with 1115 additions and 81 deletions

View File

@@ -1,8 +1,9 @@
</main>
<footer class="site-footer">
<div class="footer-left">© <?= date('Y') ?> Nexus</div>
<div class="footer-right">Security first · Internal only</div>
</footer>
</main>
<footer class="site-footer">
<div class="footer-left">© <?= date('Y') ?> Nexus</div>
<div class="footer-right">Security first · Internal only</div>
</footer>
</div>
</div>
<?php asset_scripts('footer'); ?>
</body>

View File

@@ -3,6 +3,14 @@
$app = app();
$app->assets()->addStyle('/assets/css/app.css', 'early');
$app->assets()->addScript('/assets/js/app.js', 'footer', true);
$theme = user_theme();
$currentModule = current_module_name();
$path = $app->request()->path();
$moduleMenu = [];
if ($currentModule) {
$module = modules()->get($currentModule);
$moduleMenu = $module['menu'] ?? [];
}
?>
<!doctype html>
<html lang="en">
@@ -13,11 +21,11 @@ $app->assets()->addScript('/assets/js/app.js', 'footer', true);
<?php asset_styles(); ?>
<?php asset_scripts('header'); ?>
</head>
<body>
<body data-theme="<?= e($theme) ?>">
<div class="bg-orb orb-a"></div>
<div class="bg-orb orb-b"></div>
<div class="site-shell">
<header class="site-header">
<div class="app-shell">
<aside class="app-sidebar">
<div class="brand">
<img src="/assets/images/logo.png" alt="Nexus Logo">
<div class="brand-text">
@@ -25,13 +33,63 @@ $app->assets()->addScript('/assets/js/app.js', 'footer', true);
<div class="brand-sub">Nexus Control Panel</div>
</div>
</div>
<nav class="site-nav">
<a href="/" class="nav-link is-active">Dashboard</a>
<a href="/module/kea" class="nav-link">KEA DHCP</a>
<a href="/modules" class="nav-link">Module</a>
<button class="sidebar-toggle" data-sidebar-toggle>
</button>
<nav class="sidebar-nav">
<a href="/" class="nav-link <?= $path === '/' ? 'is-active' : '' ?>">Dashboard</a>
<div class="nav-section">Aktive Module</div>
<?php foreach (modules()->all() as $m): ?>
<?php if (!empty($m['enabled'])): ?>
<?php $active = $currentModule === $m['name']; ?>
<a href="/module/<?= e($m['name']) ?>" class="nav-link <?= $active ? 'is-active' : '' ?>"><?= e($m['title']) ?></a>
<?php endif; ?>
<?php endforeach; ?>
<a href="/modules" class="nav-link <?= str_starts_with($path, '/modules') ? 'is-active' : '' ?>">Module</a>
<a href="/users" class="nav-link <?= $path === '/users' ? 'is-active' : '' ?>">User</a>
<a href="/settings" class="nav-link <?= $path === '/settings' ? 'is-active' : '' ?>">Einstellungen</a>
</nav>
<div class="header-cta">
<button class="cta-button">+ Neuer Host</button>
</div>
</header>
<main class="site-main">
</aside>
<div class="app-content">
<header class="topbar">
<div class="topbar-left">
<?php if ($currentModule && !empty($module['title'])): ?>
<h1 class="page-title"><?= e($module['title']) ?></h1>
<span class="pill">Modul</span>
<?php else: ?>
<h1 class="page-title"><?= htmlspecialchars(t('common.title'), ENT_QUOTES) ?></h1>
<span class="pill">Dashboard</span>
<?php endif; ?>
</div>
<div class="topbar-actions">
<?php if (auth_enabled() && auth_user()): ?>
<span class="pill"><?= e(auth_user()['email'] ?? '') ?></span>
<a class="nav-link" href="/auth/logout">Logout</a>
<?php elseif (auth_enabled()): ?>
<a class="nav-link" href="/auth/login">Login</a>
<?php endif; ?>
<a class="nav-link" href="/users">User</a>
<a class="nav-link" href="/modules">Module</a>
<a class="nav-link" href="/modules/install">Modul installieren/aktivieren</a>
</div>
</header>
<?php if ($moduleMenu): ?>
<div class="module-subnav">
<?php foreach ($moduleMenu as $entry): ?>
<a class="nav-link" href="<?= e($entry['href'] ?? '#') ?>">
<?= e($entry['label'] ?? 'Link') ?>
</a>
<?php endforeach; ?>
</div>
<?php endif; ?>
<main class="site-main">
<?php if (defined('APP_DEBUG_TOOL') && APP_DEBUG_TOOL): ?>
<a class="debug-fab" href="/debug" title="Debug">
🐞
</a>
<?php endif; ?>