Added Paging and Filtering to PrivateList
This commit is contained in:
@@ -103,7 +103,6 @@
|
||||
private string? _searchString;
|
||||
private bool _showFilters;
|
||||
private bool _showAlreadyAddedEntities = false;
|
||||
|
||||
private IEnumerable<GlobalEntity> FiltertGlobalEntities => _globalEntities.Where(entity =>
|
||||
(string.IsNullOrWhiteSpace(_searchString) || entity.Title.Contains(_searchString, StringComparison.OrdinalIgnoreCase)) && //Search bar
|
||||
(_showAlreadyAddedEntities || !_userPrivateEntityIds.Contains(entity.Id)) //Filter for already added Entitys
|
||||
@@ -115,8 +114,10 @@
|
||||
private int TotalPages => (int)Math.Ceiling(FiltertGlobalEntities.Count() / (double)_pageSize);
|
||||
private IEnumerable<GlobalEntity> VisibleGlobalEntities => FiltertGlobalEntities.Skip((_currentPage - 1) * _pageSize).Take(_pageSize);
|
||||
|
||||
//Core
|
||||
//User
|
||||
private ApplicationUser? _appUser;
|
||||
|
||||
//Core
|
||||
private List<GlobalEntity> _globalEntities = [];
|
||||
private HashSet<int> _userPrivateEntityIds = [];
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
<MudContainer>
|
||||
<MudPaper Class="pa-2" Elevation="1">
|
||||
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="2">
|
||||
@*Search bar*@
|
||||
<MudTextField @bind-Value="_searchString"
|
||||
Placeholder="Search..."
|
||||
Adornment="Adornment.Start"
|
||||
@@ -38,30 +39,95 @@
|
||||
Variant="Variant.Outlined"
|
||||
Margin="Margin.Dense"
|
||||
Style="max-width: 300px;"/>
|
||||
@*Refresh button*@
|
||||
@*<MudTooltip Text="Refresh Entities">
|
||||
<MudIconButton Icon="@Icons.Material.Filled.Refresh" OnClick="RefreshPage"/>
|
||||
</MudTooltip>*@
|
||||
@*More Filters button*@
|
||||
<MudTooltip Text="More filters">
|
||||
<MudIconButton Icon="@(_showFilters
|
||||
? Icons.Material.Filled.ExpandLess
|
||||
: Icons.Material.Filled.FilterList)"
|
||||
OnClick="@(() => _showFilters = !_showFilters)"
|
||||
Color="Color.Default"/>
|
||||
</MudTooltip>
|
||||
</MudStack>
|
||||
<MudCollapse Expanded="_showFilters">
|
||||
@*Entity allready added*@
|
||||
<MudSwitch @bind-Value="_showAlreadyAddedEntities" Color="Color.Primary">
|
||||
Show already added Entities
|
||||
</MudSwitch>
|
||||
@*To be exstendet*@
|
||||
</MudCollapse>
|
||||
</MudPaper>
|
||||
</MudContainer>
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
<!--<editor-fold desc="Active Watching">-->
|
||||
<MudContainer MaxWidth="MaxWidth.False">
|
||||
<MudText Typo="Typo.h4">Active Watching</MudText>
|
||||
<br/>
|
||||
<MudGrid Spacing="6" Justify="Justify.Center">
|
||||
@foreach (var privateEntity in ActiveWatchingEntities)
|
||||
{
|
||||
<PrivateEntityCard PrivateEntity="privateEntity" />
|
||||
}
|
||||
@foreach (var privateEntity in LibraryEntities)
|
||||
@foreach (var privateEntity in VisibleActiveWatchingEntities)
|
||||
{
|
||||
<PrivateEntityCard PrivateEntity="privateEntity"/>
|
||||
}
|
||||
</MudGrid>
|
||||
</MudContainer>
|
||||
<br/>
|
||||
|
||||
<MudContainer>
|
||||
<MudStack AlignItems="AlignItems.Center">
|
||||
<MudPagination Count="@TotalPagesActiveWatching" @bind-Selected="_currentActiveWatchingPage"/>
|
||||
</MudStack>
|
||||
</MudContainer>
|
||||
<!--</editor-fold>-->
|
||||
|
||||
<!--<editor-fold desc="Library">-->
|
||||
<MudContainer MaxWidth="MaxWidth.False">
|
||||
<MudText Typo="Typo.h4">Library</MudText>
|
||||
<br/>
|
||||
<MudGrid Spacing="6" Justify="Justify.Center">
|
||||
@foreach (var privateEntity in VisibleLibraryEntities)
|
||||
{
|
||||
<PrivateEntityCard PrivateEntity="privateEntity"/>
|
||||
}
|
||||
</MudGrid>
|
||||
</MudContainer>
|
||||
|
||||
<br/>
|
||||
|
||||
<MudContainer>
|
||||
<MudStack AlignItems="AlignItems.Center">
|
||||
<MudPagination Count="@TotalPagesLibrary" @bind-Selected="_currentLibraryPage"/>
|
||||
</MudStack>
|
||||
</MudContainer>
|
||||
<!--</editor-fold>-->
|
||||
</MudContainer>
|
||||
|
||||
@code
|
||||
{
|
||||
//Search
|
||||
private string _searchString;
|
||||
//Filter
|
||||
private string? _searchString;
|
||||
private bool _showFilters;
|
||||
private bool _showAlreadyAddedEntities = false;
|
||||
private IEnumerable<PrivateEntity> FiltertGlobalEntities => _privateEntities.Where(entity =>
|
||||
(string.IsNullOrWhiteSpace(_searchString) || entity.GlobalEntity.Title.Contains(_searchString, StringComparison.OrdinalIgnoreCase)) //Search bar
|
||||
);
|
||||
|
||||
//Paging Active Watching
|
||||
private int _currentActiveWatchingPage = 1;
|
||||
private int _pageSizeActiveWatching = 12;
|
||||
private int TotalPagesActiveWatching => (int)Math.Ceiling(ActiveWatchingEntities.Count() / (double)_pageSizeActiveWatching);
|
||||
private IEnumerable<PrivateEntity> VisibleActiveWatchingEntities => ActiveWatchingEntities.Skip((_currentActiveWatchingPage - 1) * _pageSizeActiveWatching).Take(_pageSizeActiveWatching);
|
||||
|
||||
//Paging Library
|
||||
private int _currentLibraryPage = 1;
|
||||
private int _pageSizeLibrary = 12;
|
||||
private int TotalPagesLibrary => (int)Math.Ceiling(LibraryEntities.Count() / (double)_pageSizeLibrary);
|
||||
private IEnumerable<PrivateEntity> VisibleLibraryEntities => LibraryEntities.Skip((_currentLibraryPage - 1) * _pageSizeLibrary).Take(_pageSizeLibrary);
|
||||
|
||||
//User
|
||||
private ApplicationUser? _appUser;
|
||||
@@ -70,8 +136,8 @@
|
||||
private List<PrivateEntity> _privateEntities = [];
|
||||
private List<UserWatchStatus> _userWatchStatuses = [];
|
||||
|
||||
private List<PrivateEntity> ActiveWatchingEntities => _privateEntities.Where(x => x.UserWatchStatus?.Name == "Watching").ToList();
|
||||
private List<PrivateEntity> LibraryEntities => _privateEntities.Where(x => x.UserWatchStatus?.Name != "Watching").ToList();
|
||||
private IEnumerable<PrivateEntity> ActiveWatchingEntities => FiltertGlobalEntities.Where(x => x.UserWatchStatus?.Name == "Watching").ToList();
|
||||
private IEnumerable<PrivateEntity> LibraryEntities => FiltertGlobalEntities.Where(x => x.UserWatchStatus?.Name != "Watching").ToList();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user