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>
33 lines
1.1 KiB
HTML
33 lines
1.1 KiB
HTML
{#
|
||
chip.html — Filter/Tag-Chip
|
||
|
||
Props:
|
||
label : Anzeigetext
|
||
active : bool — ob der Chip selektiert ist (default False)
|
||
variant : "default" | "green" | "dark"
|
||
href : Optionaler Link. Ohne href wird ein <button> gerendert.
|
||
attrs : Optionaler Dict mit zusätzlichen HTML-Attributen (z.B. data-*)
|
||
|
||
Verwendung:
|
||
{% from "v2/components/chip.html" import chip %}
|
||
{{ chip("Bundesweit", active=True) }}
|
||
{{ chip("BW", href="/v2?bl=BW") }}
|
||
{{ chip("Score 8–10", active=True, variant="green") }}
|
||
#}
|
||
|
||
{% macro chip(label, active=False, variant="default", href="", attrs={}) %}
|
||
{% set classes = "v2-chip" %}
|
||
{% if variant != "default" %}{% set classes = classes ~ " " ~ variant %}{% endif %}
|
||
{% if active %}{% set classes = classes ~ " active" %}{% endif %}
|
||
|
||
{% if href %}
|
||
<a class="{{ classes }}" href="{{ href }}"
|
||
{% for k, v in attrs.items() %}{{ k }}="{{ v }}" {% endfor %}
|
||
>{{ label }}</a>
|
||
{% else %}
|
||
<button class="{{ classes }}" type="button"
|
||
{% for k, v in attrs.items() %}{{ k }}="{{ v }}" {% endfor %}
|
||
>{{ label }}</button>
|
||
{% endif %}
|
||
{% endmacro %}
|