feat(entries): search and sort bookings with explicit result totals (U15)

This commit is contained in:
2026-11-02 19:37:09 +01:00
parent be3eb6b674
commit f284b85771
6 changed files with 104 additions and 2 deletions
@@ -1,3 +1,19 @@
<div class="entry-filters">
<div><label for="entry-search">Buchungen suchen</label>
<input id="entry-search" type="search" class="form-control" @bind="searchText" @bind:event="oninput" placeholder="Beschreibung, Nummer, Datum oder Betrag" /></div>
<div><label for="entry-sort">Sortierung</label>
<select id="entry-sort" @bind="sort">
<option value="date-asc">Datum: älteste zuerst</option><option value="date-desc">Datum: neueste zuerst</option>
<option value="amount-asc">Betrag: aufsteigend</option><option value="amount-desc">Betrag: absteigend</option>
<option value="title">Beschreibung: A–Z</option>
</select></div>
<button type="button" class="btn btn-outline-secondary filter-reset" @onclick="ResetFilters">Filter zurücksetzen</button>
</div>
@if (!string.IsNullOrWhiteSpace(searchText))
{
<p class="search-summary" role="status">@VisibleEntries.Count Treffer. Summe der wirksamen Treffer: @ResultSum.ToString("N2", System.Globalization.CultureInfo.GetCultureInfo("de-DE")) €.
Der Kontostand des gewählten Zeitraums oben bleibt unverändert.</p>
}
@if (Entries.Any(e => e.IsDeleted))
{
<label class="history-toggle"><input type="checkbox" @bind="showDeleted" /> Gelöschte Buchungen anzeigen (@Entries.Count(e => e.IsDeleted))</label>
@@ -24,6 +40,6 @@
@if (!VisibleEntries.Any())
{
<div class="text-center py-3 text-muted">@EmptyMessage</div>
<div class="text-center py-3 text-muted">@(string.IsNullOrWhiteSpace(searchText) ? EmptyMessage : "Keine Treffer. Filter zurücksetzen zeigt wieder die Buchungen des gewählten Zeitraums.")</div>
}