Ersetzt die Platzhalter-Routen aus Task 12 durch echte GUI-Seiten: /import mit Drop-Zone (Fetch-Upload), gepollter Importliste (Status-Badges, aufklappbarer Vorschau samt Saldo-/Duplikat-Anzeige, Uebernehmen/Verwerfen) und /planung mit den vier Abschnitten Fixposten (inkl. Vorschlaege), Einmalposten, Kredite (Tilgungsplan-Aufklapper) und Szenarien (Kredit-Zuordnung, Modifikatoren, Durchrechnen mit Ergebnisanzeige). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
50 lines
1.9 KiB
HTML
50 lines
1.9 KiB
HTML
<table>
|
||
<thead>
|
||
<tr><th>Datei</th><th>Bank</th><th>Zeitraum</th><th>Status</th><th></th></tr>
|
||
</thead>
|
||
<tbody>
|
||
{% for s in statements %}
|
||
<tr>
|
||
<td>{{ s.filename }}</td>
|
||
<td>{{ s.bank }}</td>
|
||
<td>
|
||
{% if s.period_start and s.period_end %}
|
||
{{ s.period_start.strftime('%d.%m.%Y') }} – {{ s.period_end.strftime('%d.%m.%Y') }}
|
||
{% endif %}
|
||
</td>
|
||
<td>
|
||
{% if s.status == "draft" %}
|
||
<span class="badge badge-warning">wartet auf Bestätigung</span>
|
||
{% elif s.status == "error" %}
|
||
<span class="badge badge-error">Fehler: {{ s.error_message }}</span>
|
||
{% elif s.status == "confirmed" %}
|
||
<span class="badge badge-ok">übernommen</span>
|
||
{% else %}
|
||
<span class="badge">{{ s.status }}</span>
|
||
{% endif %}
|
||
</td>
|
||
<td>
|
||
{% if s.status == "draft" %}
|
||
<details hx-get="/import/{{ s.id }}/preview-fragment"
|
||
hx-trigger="toggle once" hx-target="find .preview-slot" hx-swap="innerHTML">
|
||
<summary>Vorschau</summary>
|
||
<div class="preview-slot">Lädt…</div>
|
||
</details>
|
||
<form class="inline-form" hx-post="/api/imports/{{ s.id }}/confirm" hx-swap="none"
|
||
hx-on::after-request="if(event.detail.successful){htmx.trigger(document.getElementById('imports'), 'refresh')}">
|
||
<button type="submit">Übernehmen</button>
|
||
</form>
|
||
{% endif %}
|
||
<form class="inline-form" hx-delete="/api/imports/{{ s.id }}" hx-swap="none"
|
||
hx-confirm="Import „{{ s.filename }}“ wirklich verwerfen?"
|
||
hx-on::after-request="if(event.detail.successful){htmx.trigger(document.getElementById('imports'), 'refresh')}">
|
||
<button type="submit">Verwerfen</button>
|
||
</form>
|
||
</td>
|
||
</tr>
|
||
{% else %}
|
||
<tr><td colspan="5">Noch keine Imports vorhanden.</td></tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|