From c14e673faf3ae159d25e24101b8c8fc9889353cc Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Thu, 23 Apr 2026 23:16:03 +0200 Subject: [PATCH] dsfdf --- modules/boersenchecker/partials/dashboard.php | 13 +-- modules/boersenchecker/partials/home.php | 8 +- .../boersenchecker/partials/instruments.php | 13 +-- public/assets/css/app.css | 23 ++++- src/App/functions.php | 98 ++++++++++++------- 5 files changed, 90 insertions(+), 65 deletions(-) diff --git a/modules/boersenchecker/partials/dashboard.php b/modules/boersenchecker/partials/dashboard.php index 188b162..d0fb8b2 100644 --- a/modules/boersenchecker/partials/dashboard.php +++ b/modules/boersenchecker/partials/dashboard.php @@ -1,5 +1,7 @@ - + 'Depotverwaltung', +]) ?>
@@ -10,15 +12,6 @@
-
-
-
-

Depotverwaltung

-

Depots, Positionen und Kurs-Historien verwalten.

-
-
-
-
Benutzer-Scope diff --git a/modules/boersenchecker/partials/home.php b/modules/boersenchecker/partials/home.php index 5a155d7..e112414 100644 --- a/modules/boersenchecker/partials/home.php +++ b/modules/boersenchecker/partials/home.php @@ -1,4 +1,6 @@ - + 'Depot-Ueberblick', +]) ?>
@@ -20,8 +22,8 @@
-

Depot-Ueberblick

-

Depots, Aktien und Kursverlaeufe in einer Oberflaeche.

+

Marktueberblick

+

Depotauswahl, Aktienfokus und aktueller Kursabruf in einem Bereich.

diff --git a/modules/boersenchecker/partials/instruments.php b/modules/boersenchecker/partials/instruments.php index 70dc800..4eb8d6f 100644 --- a/modules/boersenchecker/partials/instruments.php +++ b/modules/boersenchecker/partials/instruments.php @@ -1,4 +1,6 @@ - + 'Aktienverwaltung', +]) ?>
@@ -9,15 +11,6 @@
-
-
-
-

Aktienverwaltung

-

Stammdaten der Aktien pflegen, Symbole suchen und manuelle Kurse verwalten.

-
-
-
-
Aktie waehlen diff --git a/public/assets/css/app.css b/public/assets/css/app.css index 3625f8a..5d1896d 100644 --- a/public/assets/css/app.css +++ b/public/assets/css/app.css @@ -948,6 +948,10 @@ a { align-items: start; } +.module-hero-top--compact { + align-items: center; +} + .module-hero-copy, .module-hero-actions { display: grid; @@ -958,10 +962,6 @@ a { min-width: 0; } -.module-hero-copy--compact { - min-height: 1px; -} - .module-title { margin: 0; font-size: clamp(1.45rem, 3vw, 2.2rem); @@ -981,6 +981,7 @@ a { display: flex; flex-wrap: wrap; gap: 8px; + flex: 1 1 auto; } .module-button { @@ -1036,6 +1037,16 @@ a { width: min(240px, 100%); } +.brand-copy h1 .module-page-context { + display: inline; + margin-left: 0.35em; + color: var(--brand-accent-3); + font-size: 0.42em; + font-weight: 700; + letter-spacing: -0.01em; + vertical-align: middle; +} + .module-box, .module-box-soft, .module-box-table, @@ -1111,4 +1122,8 @@ a { .module-hero-actions { width: 100%; } + + .module-hero-top--compact { + align-items: stretch; + } } diff --git a/src/App/functions.php b/src/App/functions.php index cd93ce7..ea2d822 100644 --- a/src/App/functions.php +++ b/src/App/functions.php @@ -286,27 +286,8 @@ function module_shell_header(string $module, array $options = []): string $actions = is_array($options['actions'] ?? null) ? $options['actions'] : (is_array($design['actions'] ?? null) ? $design['actions'] : []); $tabs = is_array($options['tabs'] ?? null) ? $options['tabs'] : (is_array($design['tabs'] ?? null) ? $design['tabs'] : []); - $html = '
'; - $html .= '
'; - $html .= '
'; - if ($title !== '' || $description !== '' || !empty($options['show_eyebrow'])) { - $html .= '
'; - if (!empty($options['show_eyebrow'])) { - $html .= '
' . e($eyebrow) . '
'; - } - if ($title !== '') { - $html .= '

' . e($title) . '

'; - } - if ($description !== '') { - $html .= '

' . e($description) . '

'; - } - $html .= '
'; - } else { - $html .= ''; - } - - if ($actions !== []) { - $html .= '
'; + $renderActions = static function (array $actions): string { + $html = ''; foreach ($actions as $action) { if (!is_array($action)) { continue; @@ -324,27 +305,68 @@ function module_shell_header(string $module, array $options = []): string } $html .= '' . e($label) . ''; } + return $html; + }; + + $html = '
'; + $html .= '
'; + + if ($tabs !== [] || $actions !== []) { + $html .= '
'; + if ($tabs !== []) { + $html .= ''; + } + if ($actions !== []) { + $html .= '
' . $renderActions($actions) . '
'; + } + $html .= '
'; + } elseif ($title !== '' || $description !== '' || !empty($options['show_eyebrow'])) { + $html .= '
'; + if (!empty($options['show_eyebrow'])) { + $html .= '
' . e($eyebrow) . '
'; + } + if ($title !== '') { + $html .= '

' . e($title) . '

'; + } + if ($description !== '') { + $html .= '

' . e($description) . '

'; + } $html .= '
'; } - $html .= '
'; - if ($tabs !== []) { - $html .= ''; + if ($title !== '') { + $moduleTitle = trim((string) ($design['title'] ?? ucfirst($module))); + $script = '(function(){' + . 'var root=document.querySelector(".home-hero[data-module-name=' . json_encode($module, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '] .brand-copy h1");' + . 'if(!root){return;}' + . 'var old=root.querySelector(".module-page-context");' + . 'if(old){old.remove();}' + . 'root.textContent=' . json_encode($moduleTitle, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . ';' + . 'var pageTitle=' . json_encode($title, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . ';' + . 'if(pageTitle&&pageTitle!==' . json_encode($moduleTitle, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '){' + . 'var span=document.createElement("span");' + . 'span.className="module-page-context";' + . 'span.textContent=" / "+pageTitle;' + . 'root.appendChild(span);' + . '}' + . '})();'; + $html .= ''; } + $html .= '
'; return $html;