v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024): - app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs) - app/templates/v2/: base.html + 11 Screens + 8 Component-Macros - AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features (ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores) - v2 ist jetzt Default unter / — classic unter /classic - Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129) - Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle - Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie, Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze Backend-Erweiterungen: - main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout}, /api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.) - og_card.py + og_template: Open-Graph-Bilder via Playwright (#141) - wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138) - auswertungen.py: BL-Filter + get_wahlperioden Helper (#137) - auth.py: Direct-Access-Grant + Refresh-Token-Cookie Classic-Updates: - Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
20 lines
893 B
HTML
20 lines
893 B
HTML
<!-- _header.html — gemeinsame Kopfzeile für Unterseiten (legal, methodik, quellen, auswertungen)
|
|
Variablen (alle optional mit Defaults):
|
|
app_name — Anwendungsname (immer verfügbar)
|
|
page_title — Seitentitel rechts neben dem App-Namen; leer = nicht anzeigen
|
|
back_url — Ziel des Zurück-Links; Default: /
|
|
back_label — Linktext; Default: "← {{ app_name }}"
|
|
header_nav — zusätzliche Nav-Links als HTML-String (selten benötigt)
|
|
-->
|
|
<div class="header">
|
|
<a href="{{ back_url | default('/') }}" style="color:var(--color-blue);text-decoration:none;">
|
|
{{ back_label | default('← ' + app_name) }}
|
|
</a>
|
|
{% if page_title %}
|
|
<h1 style="color:var(--color-blue);font-size:1.5rem;">{{ page_title }}</h1>
|
|
{% endif %}
|
|
{% if header_nav %}
|
|
<nav>{{ header_nav | safe }}</nav>
|
|
{% endif %}
|
|
</div>
|