82 lines
3.0 KiB
PHP
Executable File
82 lines
3.0 KiB
PHP
Executable File
<?php
|
|
declare(strict_types=1);
|
|
|
|
$auth = app()->auth();
|
|
$authUser = $auth->user();
|
|
$modules = array_values(array_filter(
|
|
$auth->filterModules(modules()->all()),
|
|
static fn (array $module): bool => !empty($module['enabled'])
|
|
));
|
|
?>
|
|
<section class="home-hero" data-reveal>
|
|
<a class="brand-mark" href="/" aria-label="Nexus">
|
|
<img src="/assets/images/logo.png" alt="Nexus Logo">
|
|
</a>
|
|
<div class="brand-copy">
|
|
<span class="eyebrow">Nexus</span>
|
|
<h1><?= e(defined('APP_DOMAIN_PRIMARY') ? (string)APP_DOMAIN_PRIMARY : 'Nexus') ?></h1>
|
|
<p>Kompakter Einstieg fuer die verfuegbaren Module.</p>
|
|
</div>
|
|
<div class="theme-switcher" aria-label="Farbschema">
|
|
<?php if ($auth->isEnabled()): ?>
|
|
<a class="auth-pill" href="<?= $authUser === null ? '/auth/login' : '/auth/logout' ?>">
|
|
<?= $authUser === null ? 'Login' : 'Logout ' . e((string)($authUser['username'] ?? $authUser['name'] ?? '')) ?>
|
|
</a>
|
|
<?php endif; ?>
|
|
<label>
|
|
<span>Modus</span>
|
|
<select data-theme-mode>
|
|
<option value="day">Day</option>
|
|
<option value="night">Night</option>
|
|
</select>
|
|
</label>
|
|
<label>
|
|
<span>Farbe</span>
|
|
<select data-theme-accent>
|
|
<option value="logo">Logo</option>
|
|
<option value="pink">Pink</option>
|
|
<option value="cyan">Cyan</option>
|
|
<option value="orange">Orange</option>
|
|
<option value="green">Gruen</option>
|
|
</select>
|
|
</label>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="module-list-section" data-reveal>
|
|
<div class="section-head">
|
|
<div>
|
|
<h2 class="section-title">Verfuegbare Module</h2>
|
|
<p>Module mit Login-Pflicht erscheinen erst nach passender Anmeldung.</p>
|
|
</div>
|
|
<?php if ($authUser !== null): ?>
|
|
<div style="display:flex; gap:10px; flex-wrap:wrap;">
|
|
<a class="nav-link" href="/modules">Module verwalten</a>
|
|
<?php if (auth_is_admin()): ?>
|
|
<a class="nav-link" href="/exports/database.sql">SQL-Export</a>
|
|
<?php endif; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<?php if ($modules === []): ?>
|
|
<div class="empty-state" data-reveal>
|
|
Keine Module fuer den aktuellen Zugriff sichtbar.
|
|
</div>
|
|
<?php else: ?>
|
|
<div class="module-list">
|
|
<?php foreach ($modules as $module): ?>
|
|
<a class="module-row" href="<?= e((string)($module['entry'] ?? ('/module/' . $module['name']))) ?>">
|
|
<span class="module-row__icon"><?= e(strtoupper(substr((string)($module['title'] ?? $module['name']), 0, 1))) ?></span>
|
|
<span class="module-row__content">
|
|
<span class="module-kicker"><?= e((string)($module['name'] ?? '')) ?></span>
|
|
<strong class="module-title"><?= e((string)($module['title'] ?? $module['name'] ?? 'Modul')) ?></strong>
|
|
<span class="module-desc"><?= e((string)($module['description'] ?? '')) ?></span>
|
|
</span>
|
|
<span class="module-row__action">Oeffnen</span>
|
|
</a>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
</section>
|