Add Blazor application layer with UI components and pages

- Service interfaces and DTO models
- Dashboard page with account overview
- Account detail page with year/entry management
- Reusable components: AccountCard, EntryTable, YearSelector
- Dialog components: Add/Edit Account, Entry, Transfer, Year
- Main layout and routing configuration
This commit is contained in:
2026-03-31 17:13:09 +02:00
parent c3d68020d5
commit f5c2be9339
31 changed files with 886 additions and 0 deletions
@@ -0,0 +1,29 @@
<div class="dialog-backdrop" @onclick="Cancel">
<div class="dialog-content" @onclick:stopPropagation="true">
<h5 class="mb-3">Neues Konto</h5>
<div class="mb-3">
<label class="form-label">Kontoname</label>
<input type="text" class="form-control" @bind="name" @bind:event="oninput"
placeholder="z.B. Girokonto" />
</div>
<div class="d-flex justify-content-end gap-2">
<button class="btn btn-outline-secondary" @onclick="Cancel"><i class="bi bi-x-lg"></i> Abbrechen</button>
<button class="btn btn-primary" @onclick="Save" disabled="@string.IsNullOrWhiteSpace(name)"><i class="bi bi-check-lg"></i> Erstellen</button>
</div>
</div>
</div>
@code {
[Parameter] public EventCallback<string> OnSave { get; set; }
[Parameter] public EventCallback OnCancel { get; set; }
private string name = string.Empty;
private async Task Save()
{
if (!string.IsNullOrWhiteSpace(name))
await OnSave.InvokeAsync(name.Trim());
}
private async Task Cancel() => await OnCancel.InvokeAsync();
}