From 31b1e1bd7ec7d4e870819a23019f31483afd2722 Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Wed, 1 Apr 2026 14:21:06 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Responsive=20Layout=20f=C3=BCr=20Mobile?= =?UTF-8?q?=20(#12)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Navigation: Hamburger-Menü mit Slide-Down auf Mobile - Vorlagen + Ketten: Tabelle → Card-Layout auf Mobile ( import '../app.css'; let { children } = $props(); + let menuOpen = $state(false); diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index 7c39185..250d8aa 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -80,7 +80,7 @@
-

🏛️ Antragstracker Hagen

+

🏛️ Antragstracker Hagen

Kommunale Anträge & Anfragen nachverfolgen

diff --git a/frontend/src/routes/abstimmungen/+page.svelte b/frontend/src/routes/abstimmungen/+page.svelte index eb9c0b3..a2e60bb 100644 --- a/frontend/src/routes/abstimmungen/+page.svelte +++ b/frontend/src/routes/abstimmungen/+page.svelte @@ -80,10 +80,11 @@ {:else} -
+

📊 Stimmverhalten nach Fraktion

-
+ + + + +
+ {#each fraktionen as f} +
+
+ {f.fraktion} + {f.ja_quote}% +
+
+
+
+
+
+
{f.ja}
+
Ja
+
+
+
{f.nein}
+
Nein
+
+
+
{f.enthaltung}
+
Enth.
+
+
+
{f.gesamt}
+
Gesamt
+
+
+
+ {/each} +
-
+

🤝 Koalitionsmatrix

Wie oft stimmen Fraktionen gleich ab? (nur Ja/Nein-Stimmen)

{#if koalitionsmatrix.length > 0} {@const allFraktionen = koalitionsmatrix.map(r => r.fraktion).sort()} -
+
@@ -170,7 +204,7 @@
-
+
Legende: 90-100% 70-90% diff --git a/frontend/src/routes/fraktionen/+page.svelte b/frontend/src/routes/fraktionen/+page.svelte index d6dfc15..f083ce2 100644 --- a/frontend/src/routes/fraktionen/+page.svelte +++ b/frontend/src/routes/fraktionen/+page.svelte @@ -15,7 +15,7 @@ Fraktionen — Antragstracker Hagen -
+

Fraktionen

{#if loading} diff --git a/frontend/src/routes/fraktionen/[kuerzel]/+page.svelte b/frontend/src/routes/fraktionen/[kuerzel]/+page.svelte index 5b4d2ea..db94d61 100644 --- a/frontend/src/routes/fraktionen/[kuerzel]/+page.svelte +++ b/frontend/src/routes/fraktionen/[kuerzel]/+page.svelte @@ -49,7 +49,7 @@ {data?.partei?.name ?? kuerzel} — Antragstracker Hagen -
+
{#if loading && !data}
Laden...
{:else if error} @@ -57,41 +57,41 @@ {:else if data}
-
-
+
+

{data.partei.name}

{data.partei.kuerzel}
- ← Alle Fraktionen + ← Alle Fraktionen
-
+
-
{data.total_antraege}
-
Anträge gesamt
+
{data.total_antraege}
+
Anträge gesamt
-
{data.bewertet}
-
Mit Umsetzungsbewertung
+
{data.bewertet}
+
Mit Bewertung
{#each data.umsetzung.filter(u => u.bewertung === 'erfuellt') as u}
-
{u.anzahl}
-
Erfüllt
+
{u.anzahl}
+
Erfüllt
{/each} {#each data.umsetzung.filter(u => u.bewertung === 'nebelkerze') as u}
-
{u.anzahl}
-
Nebelkerzen
+
{u.anzahl}
+
Nebelkerzen
{/each}
{#if data.bewertet > 0} -
+

Umsetzungsquote

{#each data.umsetzung as u} @@ -109,16 +109,16 @@ {/each}
-
+
{#each data.umsetzung as u} {@const info = KATEGORIEN[u.bewertung as keyof typeof KATEGORIEN]} {#if info} {/if} @@ -128,23 +128,23 @@ {/if} -
- {#each data.jahre as j} {/each} {#if filterKategorie} - {/if} - {filteredAntraege.length} Anträge + {filteredAntraege.length} Anträge
- -
+ + + + + {/if}
diff --git a/frontend/src/routes/ketten/+page.svelte b/frontend/src/routes/ketten/+page.svelte index 1c7f382..ff97704 100644 --- a/frontend/src/routes/ketten/+page.svelte +++ b/frontend/src/routes/ketten/+page.svelte @@ -81,44 +81,46 @@
-
-
+
+
{ if (e.key === 'Enter') applyFilters(); }} />
-
- - +
+
+ + +
+
+ + +
-
- - -
-
+
@@ -141,7 +143,8 @@ {:else if data}
{data.total} Ketten gefunden
-
+ + + + + {#if data.total > data.page_size} {@const totalPages = Math.ceil(data.total / data.page_size)}
- Seite {currentPage} von {totalPages} + Seite {currentPage} von {totalPages}
diff --git a/frontend/src/routes/ketten/[id]/+page.svelte b/frontend/src/routes/ketten/[id]/+page.svelte index 449b58d..76ea6b5 100644 --- a/frontend/src/routes/ketten/[id]/+page.svelte +++ b/frontend/src/routes/ketten/[id]/+page.svelte @@ -68,10 +68,10 @@ ← Zurück zur Liste -
-
-
-
+
+
+
+
{#if kette.ursprung?.aktenzeichen}

{kette.ursprung.aktenzeichen}

{/if} @@ -84,7 +84,7 @@

{kette.thema}

{/if}
-
+
{#if kette.status_seit}
Status seit: {formatDate(kette.status_seit)}
{/if} @@ -174,8 +174,8 @@

Verknüpfte Vorlagen

{#each kette.graph.nodes.filter(n => n.extern) as ext} - -
+ +
{#if ext.aktenzeichen} {ext.aktenzeichen} {/if} @@ -183,7 +183,7 @@ {ext.typ} {/if} {#if ext.betreff} - {ext.betreff} + {ext.betreff} {/if}
{formatDate(ext.datum_eingang)} diff --git a/frontend/src/routes/vorlagen/+page.svelte b/frontend/src/routes/vorlagen/+page.svelte index d14495e..0a0f019 100644 --- a/frontend/src/routes/vorlagen/+page.svelte +++ b/frontend/src/routes/vorlagen/+page.svelte @@ -137,17 +137,17 @@
-
-
+
+
{ setTimeout(() => showSuggestions = false, 200); }} autocomplete="off" /> {#if showSuggestions} -
+
{#each suggestions as s, i}
-
- - -
-
- - +
+
+ + +
+
+ + +
@@ -202,7 +204,8 @@ {:else if data}
{data.total} Vorlagen gefunden
-
+ + + + + {#if data.total > data.page_size} {@const totalPages = Math.ceil(data.total / data.page_size)}
- Seite {currentPage} von {totalPages} + Seite {currentPage} von {totalPages}
diff --git a/frontend/src/routes/vorlagen/[id]/+page.svelte b/frontend/src/routes/vorlagen/[id]/+page.svelte index c1d5467..41ee7fa 100644 --- a/frontend/src/routes/vorlagen/[id]/+page.svelte +++ b/frontend/src/routes/vorlagen/[id]/+page.svelte @@ -75,9 +75,9 @@