layout
This commit is contained in:
@@ -9,24 +9,20 @@ $modules = array_values(array_filter(
|
|||||||
));
|
));
|
||||||
?>
|
?>
|
||||||
<section class="module-list-section" data-reveal>
|
<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): ?>
|
<?php if ($authUser !== null): ?>
|
||||||
|
<div class="section-head">
|
||||||
<div style="display:flex; gap:10px; flex-wrap:wrap;">
|
<div style="display:flex; gap:10px; flex-wrap:wrap;">
|
||||||
<a class="nav-link" href="/modules">Module verwalten</a>
|
<a class="nav-link" href="/modules">Module verwalten</a>
|
||||||
<?php if (auth_is_admin()): ?>
|
<?php if (auth_is_admin()): ?>
|
||||||
<a class="nav-link" href="/exports/database.sql">SQL-Export</a>
|
<a class="nav-link" href="/exports/database.sql">SQL-Export</a>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php if ($modules === []): ?>
|
<?php if ($modules === []): ?>
|
||||||
<div class="empty-state" data-reveal>
|
<div class="empty-state" data-reveal>
|
||||||
Keine Module fuer den aktuellen Zugriff sichtbar.
|
Keine Module für den aktuellen Zugriff sichtbar.
|
||||||
</div>
|
</div>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<div class="module-list">
|
<div class="module-list">
|
||||||
@@ -34,11 +30,9 @@ $modules = array_values(array_filter(
|
|||||||
<a class="module-row" href="<?= e((string)($module['entry'] ?? ('/module/' . $module['name']))) ?>">
|
<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__icon"><?= e(strtoupper(substr((string)($module['title'] ?? $module['name']), 0, 1))) ?></span>
|
||||||
<span class="module-row__content">
|
<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>
|
<strong class="module-title"><?= e((string)($module['title'] ?? $module['name'] ?? 'Modul')) ?></strong>
|
||||||
<span class="module-desc"><?= e((string)($module['description'] ?? '')) ?></span>
|
<span class="module-desc"><?= e((string)($module['description'] ?? '')) ?></span>
|
||||||
</span>
|
</span>
|
||||||
<span class="module-row__action">Oeffnen</span>
|
|
||||||
</a>
|
</a>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,9 +5,12 @@ if ($currentModuleName === null && preg_match('~^/modules/(?:setup|access)/([a-z
|
|||||||
$currentModuleName = $moduleMatch[1];
|
$currentModuleName = $moduleMatch[1];
|
||||||
}
|
}
|
||||||
$currentModule = $currentModuleName !== null ? modules()->get($currentModuleName) : null;
|
$currentModule = $currentModuleName !== null ? modules()->get($currentModuleName) : null;
|
||||||
$headerEyebrow = $currentModule ? 'Modul' : 'Nexus';
|
$isStagingHost = defined('APP_DOMAIN_PRIMARY') && str_starts_with((string) APP_DOMAIN_PRIMARY, 'staging.');
|
||||||
$headerTitle = $currentModule ? (string)($currentModule['title'] ?? $currentModuleName) : (defined('APP_DOMAIN_PRIMARY') ? (string)APP_DOMAIN_PRIMARY : 'Nexus');
|
$headerEyebrow = '';
|
||||||
$headerText = $currentModule ? (string)($currentModule['description'] ?? '') : 'Kompakter Einstieg fuer die verfuegbaren Module.';
|
$headerTitle = $currentModule
|
||||||
|
? (string)($currentModule['title'] ?? $currentModuleName)
|
||||||
|
: ('Nexus' . ($isStagingHost ? ' (staging)' : ''));
|
||||||
|
$headerText = $currentModule ? (string)($currentModule['description'] ?? '') : '';
|
||||||
$auth = app()->auth();
|
$auth = app()->auth();
|
||||||
$authUser = $auth->user();
|
$authUser = $auth->user();
|
||||||
?>
|
?>
|
||||||
@@ -43,7 +46,9 @@ $authUser = $auth->user();
|
|||||||
<img src="/assets/images/logo.png" alt="Nexus Logo">
|
<img src="/assets/images/logo.png" alt="Nexus Logo">
|
||||||
</a>
|
</a>
|
||||||
<div class="brand-copy">
|
<div class="brand-copy">
|
||||||
|
<?php if ($headerEyebrow !== ''): ?>
|
||||||
<span class="eyebrow"><?= e($headerEyebrow) ?></span>
|
<span class="eyebrow"><?= e($headerEyebrow) ?></span>
|
||||||
|
<?php endif; ?>
|
||||||
<h1><?= e($headerTitle) ?></h1>
|
<h1><?= e($headerTitle) ?></h1>
|
||||||
<?php if ($headerText !== ''): ?>
|
<?php if ($headerText !== ''): ?>
|
||||||
<p><?= e($headerText) ?></p>
|
<p><?= e($headerText) ?></p>
|
||||||
|
|||||||
@@ -183,8 +183,8 @@ a {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.home-hero h1 {
|
.home-hero h1 {
|
||||||
font-size: clamp(1.5rem, 4vw, 2.35rem);
|
font-size: clamp(1.35rem, 3vw, 1.95rem);
|
||||||
line-height: 1;
|
line-height: 1.05;
|
||||||
}
|
}
|
||||||
|
|
||||||
.home-hero p {
|
.home-hero p {
|
||||||
@@ -312,6 +312,12 @@ body.has-modal-open {
|
|||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.section-head {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
margin-bottom: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
.module-list {
|
.module-list {
|
||||||
display: grid;
|
display: grid;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
@@ -319,7 +325,7 @@ body.has-modal-open {
|
|||||||
|
|
||||||
.module-row {
|
.module-row {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: auto minmax(0, 1fr) auto;
|
grid-template-columns: auto minmax(0, 1fr);
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 14px;
|
gap: 14px;
|
||||||
padding: 14px;
|
padding: 14px;
|
||||||
@@ -353,22 +359,6 @@ body.has-modal-open {
|
|||||||
min-width: 0;
|
min-width: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.module-row__action {
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 8px;
|
|
||||||
padding: 9px 12px;
|
|
||||||
border-radius: 999px;
|
|
||||||
color: #ffffff;
|
|
||||||
font-size: 0.86rem;
|
|
||||||
font-weight: 800;
|
|
||||||
background: linear-gradient(135deg, var(--brand-accent), var(--brand-accent-3));
|
|
||||||
}
|
|
||||||
|
|
||||||
.module-row__action::after {
|
|
||||||
content: "->";
|
|
||||||
}
|
|
||||||
|
|
||||||
.module-card {
|
.module-card {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -395,17 +385,9 @@ body.has-modal-open {
|
|||||||
box-shadow: 0 20px 36px rgba(1, 22, 32, 0.14);
|
box-shadow: 0 20px 36px rgba(1, 22, 32, 0.14);
|
||||||
}
|
}
|
||||||
|
|
||||||
.module-kicker {
|
|
||||||
color: var(--brand-accent);
|
|
||||||
font-size: 0.74rem;
|
|
||||||
font-weight: 800;
|
|
||||||
letter-spacing: 0.08em;
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
|
|
||||||
.module-title {
|
.module-title {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 1.12rem;
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.module-desc {
|
.module-desc {
|
||||||
@@ -548,12 +530,6 @@ body.has-modal-open {
|
|||||||
grid-template-columns: auto minmax(0, 1fr);
|
grid-template-columns: auto minmax(0, 1fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
.module-row__action {
|
|
||||||
grid-column: 2;
|
|
||||||
justify-self: start;
|
|
||||||
padding: 7px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-head {
|
.section-head {
|
||||||
align-items: start;
|
align-items: start;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|||||||
Reference in New Issue
Block a user