added Filters to build overview
This commit is contained in:
parent
267eae1297
commit
95b7ec8ea5
2 changed files with 160 additions and 12 deletions
|
@ -18,14 +18,25 @@
|
||||||
</AuthorizeView>
|
</AuthorizeView>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
Filter:
|
Klasse:
|
||||||
<select @onchange="args => ChangeFilter(args)" >
|
<select @onchange="args => ChangeClassFilter(args)" >
|
||||||
<option value="All">All</option>
|
<option value="All">All</option>
|
||||||
@foreach(GuildWars2Class gw2Class in Enum.GetValues(typeof(GuildWars2Class)))
|
@foreach(GuildWars2Class gw2Class in Enum.GetValues(typeof(GuildWars2Class)))
|
||||||
{
|
{
|
||||||
<option value="@gw2Class">@gw2Class.ToString()</option>
|
<option value="@gw2Class">@gw2Class.ToString()</option>
|
||||||
}
|
}
|
||||||
</select>
|
</select>
|
||||||
|
<label style="margin-left: 10px; margin-right: 3px;">DamageType:</label>
|
||||||
|
<select @onchange="args => ChangeDamageTypeFilter(args)" style="margin">
|
||||||
|
<option value="All">All</option>
|
||||||
|
@foreach(DamageType damageType in Enum.GetValues(typeof(DamageType)))
|
||||||
|
{
|
||||||
|
<option value="@damageType">@damageType.ToString()</option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
<label style="margin-left: 10px; margin-right: 4px;">Alacrity:</label><input type="checkbox" checked="@_filterAlac" @onchange="args => AlacStatusChanged(args)" />
|
||||||
|
<label style="margin-left: 10px; margin-right: 4px;">Quickness:</label><input type="checkbox" checked="@_filterQuick" @onchange="args => QuickStatusChanged(args)" />
|
||||||
|
<label style="margin-left: 10px; margin-right: 4px;">Might:</label><input type="checkbox" checked="@_filterMight" @onchange="args => MightStatusChanged(args)" />
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<table class="roletable">
|
<table class="roletable">
|
||||||
|
@ -90,21 +101,84 @@
|
||||||
private List<GuildWars2Build> _builds;
|
private List<GuildWars2Build> _builds;
|
||||||
private List<GuildWars2Build> _buildsToShow;
|
private List<GuildWars2Build> _buildsToShow;
|
||||||
|
|
||||||
|
private GuildWars2Class? _filterClass;
|
||||||
|
private bool _filterAlac = false;
|
||||||
|
private bool _filterQuick = false;
|
||||||
|
private bool _filterMight = false;
|
||||||
|
private DamageType? _filterDamageType;
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
_builds = GuildWars2BuildService.GetBuilds();
|
_builds = GuildWars2BuildService.GetBuilds();
|
||||||
_buildsToShow = _builds;
|
_buildsToShow = _builds;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ChangeFilter( ChangeEventArgs e)
|
private void ChangeClassFilter( ChangeEventArgs e)
|
||||||
{
|
{
|
||||||
if(Enum.TryParse<GuildWars2Class>(e.Value?.ToString(),out GuildWars2Class selectedClass))
|
if(Enum.TryParse<GuildWars2Class>(e.Value?.ToString(), out GuildWars2Class gw2Class))
|
||||||
{
|
{
|
||||||
_buildsToShow = _builds.Where(b => b.Class == selectedClass).ToList();
|
_filterClass = gw2Class;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_buildsToShow = _builds;
|
_filterClass = null;
|
||||||
|
}
|
||||||
|
ApplyFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ChangeDamageTypeFilter( ChangeEventArgs e)
|
||||||
|
{
|
||||||
|
if(Enum.TryParse<DamageType>(e.Value?.ToString(), out DamageType damage))
|
||||||
|
{
|
||||||
|
_filterDamageType = damage;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_filterDamageType = null;
|
||||||
|
}
|
||||||
|
ApplyFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AlacStatusChanged(ChangeEventArgs args)
|
||||||
|
{
|
||||||
|
_filterAlac = bool.Parse(args.Value.ToString());
|
||||||
|
ApplyFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void QuickStatusChanged(ChangeEventArgs args)
|
||||||
|
{
|
||||||
|
_filterQuick = bool.Parse(args.Value.ToString());
|
||||||
|
ApplyFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MightStatusChanged(ChangeEventArgs args)
|
||||||
|
{
|
||||||
|
_filterMight = bool.Parse(args.Value.ToString());
|
||||||
|
ApplyFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ApplyFilter()
|
||||||
|
{
|
||||||
|
_buildsToShow = _builds;
|
||||||
|
if(_filterClass != null)
|
||||||
|
{
|
||||||
|
_buildsToShow = _buildsToShow.Where(b => b.Class == _filterClass).ToList();
|
||||||
|
}
|
||||||
|
if(_filterAlac)
|
||||||
|
{
|
||||||
|
_buildsToShow = _buildsToShow.Where(b => b.Alacrity).ToList();
|
||||||
|
}
|
||||||
|
if(_filterQuick)
|
||||||
|
{
|
||||||
|
_buildsToShow = _buildsToShow.Where(b => b.Quickness).ToList();
|
||||||
|
}
|
||||||
|
if(_filterMight)
|
||||||
|
{
|
||||||
|
_buildsToShow = _buildsToShow.Where(b => b.Might).ToList();
|
||||||
|
}
|
||||||
|
if(_filterDamageType != null)
|
||||||
|
{
|
||||||
|
_buildsToShow = _buildsToShow.Where(b => b.DamageType == _filterDamageType).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,14 +43,25 @@
|
||||||
{
|
{
|
||||||
<br />
|
<br />
|
||||||
<label>
|
<label>
|
||||||
Filter:
|
Klasse:
|
||||||
<select @onchange="args => ChangeBuildFilter(args)" >
|
<select @onchange="args => ChangeClassFilter(args)" >
|
||||||
<option value="All">All</option>
|
<option value="All">All</option>
|
||||||
@foreach(GuildWars2Class gw2Class in Enum.GetValues(typeof(GuildWars2Class)))
|
@foreach(GuildWars2Class gw2Class in Enum.GetValues(typeof(GuildWars2Class)))
|
||||||
{
|
{
|
||||||
<option value="@gw2Class">@gw2Class.ToString()</option>
|
<option value="@gw2Class">@gw2Class.ToString()</option>
|
||||||
}
|
}
|
||||||
</select>
|
</select>
|
||||||
|
<label style="margin-left: 10px; margin-right: 3px;">DamageType:</label>
|
||||||
|
<select @onchange="args => ChangeDamageTypeFilter(args)" style="margin">
|
||||||
|
<option value="All">All</option>
|
||||||
|
@foreach(DamageType damageType in Enum.GetValues(typeof(DamageType)))
|
||||||
|
{
|
||||||
|
<option value="@damageType">@damageType.ToString()</option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
<label style="margin-left: 10px; margin-right: 4px;">Alacrity:</label><input type="checkbox" checked="@_filterAlac" @onchange="args => AlacStatusChanged(args)" />
|
||||||
|
<label style="margin-left: 10px; margin-right: 4px;">Quickness:</label><input type="checkbox" checked="@_filterQuick" @onchange="args => QuickStatusChanged(args)" />
|
||||||
|
<label style="margin-left: 10px; margin-right: 4px;">Might:</label><input type="checkbox" checked="@_filterMight" @onchange="args => MightStatusChanged(args)" />
|
||||||
</label>
|
</label>
|
||||||
<table class="roletable">
|
<table class="roletable">
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -130,6 +141,12 @@
|
||||||
|
|
||||||
private List<GuildWars2Build> _buildsToShow;
|
private List<GuildWars2Build> _buildsToShow;
|
||||||
|
|
||||||
|
private GuildWars2Class? _filterClass;
|
||||||
|
private bool _filterAlac = false;
|
||||||
|
private bool _filterQuick = false;
|
||||||
|
private bool _filterMight = false;
|
||||||
|
private DamageType? _filterDamageType;
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
|
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
|
||||||
|
@ -185,15 +202,72 @@
|
||||||
_saveMessage = "changes saved successfully";
|
_saveMessage = "changes saved successfully";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ChangeBuildFilter( ChangeEventArgs e)
|
private void ChangeClassFilter( ChangeEventArgs e)
|
||||||
{
|
{
|
||||||
if(Enum.TryParse<GuildWars2Class>(e.Value?.ToString(),out GuildWars2Class selectedClass))
|
if(Enum.TryParse<GuildWars2Class>(e.Value?.ToString(), out GuildWars2Class gw2Class))
|
||||||
{
|
{
|
||||||
_buildsToShow = _builds.Where(b => b.Class == selectedClass).ToList();
|
_filterClass = gw2Class;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_buildsToShow = _builds;
|
_filterClass = null;
|
||||||
|
}
|
||||||
|
ApplyFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ChangeDamageTypeFilter( ChangeEventArgs e)
|
||||||
|
{
|
||||||
|
if(Enum.TryParse<DamageType>(e.Value?.ToString(), out DamageType damage))
|
||||||
|
{
|
||||||
|
_filterDamageType = damage;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_filterDamageType = null;
|
||||||
|
}
|
||||||
|
ApplyFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AlacStatusChanged(ChangeEventArgs args)
|
||||||
|
{
|
||||||
|
_filterAlac = bool.Parse(args.Value.ToString());
|
||||||
|
ApplyFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void QuickStatusChanged(ChangeEventArgs args)
|
||||||
|
{
|
||||||
|
_filterQuick = bool.Parse(args.Value.ToString());
|
||||||
|
ApplyFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MightStatusChanged(ChangeEventArgs args)
|
||||||
|
{
|
||||||
|
_filterMight = bool.Parse(args.Value.ToString());
|
||||||
|
ApplyFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ApplyFilter()
|
||||||
|
{
|
||||||
|
_buildsToShow = _builds;
|
||||||
|
if(_filterClass != null)
|
||||||
|
{
|
||||||
|
_buildsToShow = _buildsToShow.Where(b => b.Class == _filterClass).ToList();
|
||||||
|
}
|
||||||
|
if(_filterAlac)
|
||||||
|
{
|
||||||
|
_buildsToShow = _buildsToShow.Where(b => b.Alacrity).ToList();
|
||||||
|
}
|
||||||
|
if(_filterQuick)
|
||||||
|
{
|
||||||
|
_buildsToShow = _buildsToShow.Where(b => b.Quickness).ToList();
|
||||||
|
}
|
||||||
|
if(_filterMight)
|
||||||
|
{
|
||||||
|
_buildsToShow = _buildsToShow.Where(b => b.Might).ToList();
|
||||||
|
}
|
||||||
|
if(_filterDamageType != null)
|
||||||
|
{
|
||||||
|
_buildsToShow = _buildsToShow.Where(b => b.DamageType == _filterDamageType).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue