|
@@ -18,7 +18,7 @@ namespace PRS.Avalonia.Modules;
|
|
|
public partial class InOutViewModel : ModuleViewModel
|
|
|
{
|
|
|
const string AllFilter = "All";
|
|
|
- const string NotInFilter = "Not In";
|
|
|
+ const string NotInFilter = "Absent";
|
|
|
|
|
|
public override string Title => "In/Out";
|
|
|
|
|
@@ -78,13 +78,14 @@ public partial class InOutViewModel : ModuleViewModel
|
|
|
.Add(LookupFactory.DefineFilter<Employee>())
|
|
|
.Add(new Filter<Employee>(x => x.ID).IsNotEqualTo(Repositories.Me.ID).And(x => x.ShowOnInOutBoard).IsEqualTo(true))
|
|
|
.Combine() ?? new Filter<Employee>().All());
|
|
|
-
|
|
|
- FilterButtons = [AllFilter, NotInFilter, .. Model.AvailableFilters];
|
|
|
}
|
|
|
|
|
|
protected override async Task<TimeSpan> OnRefresh()
|
|
|
{
|
|
|
await Refresh();
|
|
|
+
|
|
|
+ FilterButtons = [AllFilter, NotInFilter, .. Model.AvailableFilters.Where(x => x.Name != "All")];
|
|
|
+
|
|
|
return TimeSpan.Zero;
|
|
|
}
|
|
|
|
|
@@ -110,11 +111,16 @@ public partial class InOutViewModel : ModuleViewModel
|
|
|
}
|
|
|
|
|
|
[RelayCommand]
|
|
|
- private void FilterSelected(object? filter)
|
|
|
+ private async Task FilterSelected(object? filter)
|
|
|
{
|
|
|
- if(filter is string stringFilter)
|
|
|
+ if (filter is string stringFilter)
|
|
|
{
|
|
|
- Model.SelectFilter(null);
|
|
|
+ if (Model.SelectedFilterName is not null)
|
|
|
+ {
|
|
|
+ Model.SelectFilter(null);
|
|
|
+ await Model.RefreshAsync(true);
|
|
|
+ }
|
|
|
+
|
|
|
if(stringFilter == AllFilter)
|
|
|
{
|
|
|
Model.Search(null);
|
|
@@ -127,7 +133,8 @@ public partial class InOutViewModel : ModuleViewModel
|
|
|
else if(filter is CoreRepositoryFilter coreFilter)
|
|
|
{
|
|
|
Model.SelectFilter(coreFilter.Name);
|
|
|
- Model.Search(null);
|
|
|
+ Model.SearchPredicate = null;
|
|
|
+ await Model.RefreshAsync(true);
|
|
|
}
|
|
|
}
|
|
|
}
|