JobList filter fix

This commit is contained in:
2025-12-08 21:28:24 +01:00
parent d2fb9b8071
commit 1f95d57717
6 changed files with 49 additions and 18 deletions

View File

@@ -12,25 +12,28 @@
Expanded="true">
<MudGrid AlignItems="Center">
<MudItem xs="12" sm="6" md="3">
<MudSelect T="JobStatus?"
@bind-Value="selectedStatus"
<MudSelect T="JobStatus"
SelectedValues="selectedStatuses"
Label="Status"
Placeholder="All statuses"
MultiSelection="true"
Clearable="true"
SelectedValuesChanged="OnStatusFilterChanged"
OnClearButtonClick="OnStatusClear">
@foreach (JobStatus status in Enum.GetValues(typeof(JobStatus)))
{
<MudSelectItem T="JobStatus?" Value="@status">@status.ToString()</MudSelectItem>
<MudSelectItem T="JobStatus" Value="@status">@status.ToString()</MudSelectItem>
}
</MudSelect>
</MudItem>
<MudItem xs="12" sm="6" md="3">
<MudSelect T="JobType?"
@bind-Value="selectedJobType"
Value="selectedJobType"
Label="Job Type"
Placeholder="All types"
Clearable="true"
ValueChanged="OnJobTypeFilterChanged"
OnClearButtonClick="OnJobTypeClear">
@foreach (JobType type in Enum.GetValues(typeof(JobType)))
{

View File

@@ -20,7 +20,7 @@ public partial class Index : ComponentBase, IDisposable
private bool isLoading = false;
private int currentPage = 1;
private int pageSize = 50;
private JobStatus? selectedStatus = null;
private IEnumerable<JobStatus> selectedStatuses = new HashSet<JobStatus>();
private JobType? selectedJobType = null;
protected override async Task OnInitializedAsync()
@@ -60,7 +60,8 @@ public partial class Index : ComponentBase, IDisposable
try
{
jobs = await JobService.GetJobsAsync(currentPage, pageSize, selectedStatus, selectedJobType);
var statusList = selectedStatuses?.ToList();
jobs = await JobService.GetJobsAsync(currentPage, pageSize, statusList, selectedJobType);
}
catch (Exception ex)
{
@@ -81,15 +82,29 @@ public partial class Index : ComponentBase, IDisposable
private async Task ClearFilters()
{
selectedStatus = null;
selectedStatuses = new HashSet<JobStatus>();
selectedJobType = null;
currentPage = 1;
await LoadJobs();
}
private async Task OnStatusFilterChanged(IEnumerable<JobStatus> values)
{
selectedStatuses = values;
currentPage = 1;
await LoadJobs();
}
private async Task OnJobTypeFilterChanged(JobType? value)
{
selectedJobType = value;
currentPage = 1;
await LoadJobs();
}
private async Task OnStatusClear()
{
selectedStatus = null;
selectedStatuses = new HashSet<JobStatus>();
currentPage = 1;
await LoadJobs();
}