feat(ui): constrain decimal input and add stacked timed toasts with uniform actions

This commit is contained in:
2026-11-02 19:19:07 +01:00
parent 22e509d982
commit 86a73b862a
24 changed files with 315 additions and 103 deletions
+8 -8
View File
@@ -1,3 +1,4 @@
@inject ToastService Toasts
@inject ReportingPeriod Period
@page "/"
@inject IAccountService AccountService
@@ -10,7 +11,6 @@
<div class="container-fluid">
<OperationNotice Result="fileResult" />
@if (fileBusy) { <p role="status" aria-live="polite">Dateiaktion läuft … Bitte warten.</p> }
<div class="d-flex justify-content-between align-items-center">
@@ -24,25 +24,25 @@
</div>
</div>
<div class="d-flex align-items-center gap-2 py-3 flex-wrap">
<div class="action-toolbar">
<button class="btn-nav btn-primary" @onclick="() => showAddAccount = true">
<i class="bi bi-plus-lg"></i> Neues Konto
<i class="bi bi-plus-lg"></i><span>Neues Konto</span>
</button>
<button class="btn-nav btn-success" @onclick="HandleBackupAsync" disabled="@fileBusy">
<i class="bi bi-save"></i> Sicherung erstellen
<i class="bi bi-save"></i> <span>Sicherung<br /> erstellen</span>
</button>
<button class="btn-nav btn-dark" @onclick="HandleDashboardExportAsync" disabled="@fileBusy">
<i class="bi bi-file-earmark-pdf"></i> Als PDF speichern
<i class="bi bi-file-earmark-pdf"></i> <span>Als PDF<br /> speichern</span>
</button>
<button class="btn btn-nav btn-primary" @onclick="OpenYearFilterDialog">
<i class="bi bi-funnel"></i> @GetFilterLabel()
<i class="bi bi-funnel"></i><span>@GetFilterLabel()</span>
</button>
<button class="btn btn-nav btn-secondary" @onclick="ToggleThemeAsync" title="Farbmodus wechseln">
<i class="@ThemeButtonIconClass"></i> Modus<br>@ThemeButtonLabel
<i class="@ThemeButtonIconClass"></i><span>Modus<br />@ThemeButtonLabel</span>
</button>
<details class="more-actions">
<summary class="btn btn-outline-secondary">Weitere Aktionen</summary>
<summary class="btn btn-nav btn-outline-secondary"><i class="bi bi-three-dots"></i><span>Weitere<br /> Aktionen</span></summary>
<button class="btn btn-warning mt-2" @onclick="HandleRestoreAsync" disabled="@fileBusy">
<i class="bi bi-arrow-counterclockwise"></i> Sicherung zurückspielen
</button>