Implemented viewing of closed tickets for users

This commit is contained in:
Marcel Baumgartner 2024-01-08 08:32:57 +01:00
parent f17ff9246d
commit 2510d6748c

View file

@ -18,14 +18,24 @@
</div> </div>
<div class="card-body pt-5"> <div class="card-body pt-5">
<div class="scroll-y me-n5 pe-5" style="height: 50vh; width: 40vh; display: flex; flex-direction: column;"> <div class="scroll-y me-n5 pe-5" style="height: 50vh; width: 40vh; display: flex; flex-direction: column;">
<div class="d-flex flex-stack py-2 justify-content-center"> <div class="d-flex flex-stack py-2">
<h3 class="align-middle text-center">Need help? Create a <a @onclick="() => TicketPopupMain.SetViewIndex(3)" @onclick:preventDefault href="#" class="text-primary">ticket</a></h3> <div class="btn-group w-100">
<button class="btn btn-primary" type="button" @onclick="() => TicketPopupMain.SetViewIndex(3)">Create ticket</button>
@if (ViewClosed)
{
<button class="btn btn-success" type="button" @onclick="ToggleViewClosed">Open tickets</button>
}
else
{
<button class="btn btn-danger" type="button" @onclick="ToggleViewClosed">Closed tickets</button>
}
</div>
</div> </div>
<div class="d-flex flex-stack py-4"> <div class="d-flex flex-stack py-4">
</div> </div>
<LazyLoader Load="LoadTickets"> <LazyLoader @ref="LazyLoader" Load="LoadTickets">
@if (Tickets.Any()) @if (Tickets.Any())
{ {
foreach (var ticket in Tickets) foreach (var ticket in Tickets)
@ -45,7 +55,7 @@
} }
else else
{ {
<div class="text-center text-muted fs-5">No open tickets found</div> <div class="text-center text-muted fs-5">No @(ViewClosed ? "closed" : "open") tickets found</div>
} }
</LazyLoader> </LazyLoader>
</div> </div>
@ -56,16 +66,27 @@
[CascadingParameter] [CascadingParameter]
public TicketPopupMain TicketPopupMain { get; set; } public TicketPopupMain TicketPopupMain { get; set; }
private LazyLoader LazyLoader;
private Ticket[] Tickets; private Ticket[] Tickets;
private bool ViewClosed = false;
private Task LoadTickets(LazyLoader _) private Task LoadTickets(LazyLoader _)
{ {
Tickets = TicketRepository Tickets = TicketRepository
.Get() .Get()
.Where(x => x.Creator.Id == IdentityService.CurrentUser.Id) .Where(x => x.Creator.Id == IdentityService.CurrentUser.Id)
.Where(x => x.Open) .Where(x => x.Open == !ViewClosed)
.ToArray(); .ToArray();
return Task.CompletedTask; return Task.CompletedTask;
} }
private async Task ToggleViewClosed()
{
ViewClosed = !ViewClosed;
await InvokeAsync(StateHasChanged);
await LazyLoader.Reload();
}
} }