@page "/" @rendermode InteractiveServer @using TodoTicketApp.Models @using TodoTicketApp.Services @inject ITicketService TicketService @inject NavigationManager Nav Ticket Dashboard | Custom Theme

Ticket Dashboard

Effiziente FIFO-Verwaltung nach Priorität

@{ bool dividerShown = false; } @foreach (var ticket in TicketService.GetPendingTickets()) { @if (ticket.IsWaitingForFeedback && !dividerShown) {

WARTENDE TICKETS
dividerShown = true; }
@ticket.Priority @ticket.CreatedAt.ToLocalTime().ToString("g")
@ticket.Title

@(ticket.Description.Length > 200 ? ticket.Description.Substring(0, 200) + "..." : ticket.Description)

@ticket.Comments.Count
}
@code { private string newTicketTitle = ""; private async Task HandleKeyUp(KeyboardEventArgs e) { if (e.Key == "Enter" && !string.IsNullOrWhiteSpace(newTicketTitle)) { var newTicket = new Ticket { Title = newTicketTitle }; TicketService.AddTicket(newTicket); newTicketTitle = ""; // Hier könnten wir direkt auf die Detailseite navigieren: // Nav.NavigateTo($"/ticket/edit/{newTicket.Id}"); } } private void ToggleWaitingStatus(Ticket ticket) { // Status umkehren ticket.IsWaitingForFeedback = !ticket.IsWaitingForFeedback; // In der Datenbank speichern TicketService.UpdateTicket(ticket); // UI explizit anweisen, sich neu zu sortieren StateHasChanged(); } private void Complete(Guid id) { TicketService.CompleteTicket(id); StateHasChanged(); } private void GoToDetails(Guid id) => Nav.NavigateTo($"/ticket/edit/{id}"); }