Skip to content

Commit d02586d

Browse files
committed
Added filter for gametype fo report page
1 parent 6de861d commit d02586d

5 files changed

Lines changed: 38 additions & 4 deletions

File tree

src/CodeBreaker.Blazor.Client/Pages/ReportsPage.razor

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,20 @@
66
<h2>@Loc["ReportsPage_Title"]</h2>
77

88
<FluentGrid Class="align-items-end">
9-
<FluentGridItem xs="12" md="8">
10-
<FluentDatePicker Class="full-width" Label="@Loc["ReportsPage_SelectDate_Label"]" @bind-Value="@_selectedDate" />
9+
<FluentGridItem xs="12" md="4">
10+
<FluentDatePicker Class="full-width" Label="@Loc["ReportsPage_SelectDate_Label"]" @bind-Value="@_selectedDate" Required />
11+
</FluentGridItem>
12+
<FluentGridItem xs="12" md="4">
13+
<FluentSelect
14+
TOption="KeyValuePair<string, GameType>"
15+
Label="@Loc["ReportsPage_SelectGameType_Label"]"
16+
Items="_gameTypes"
17+
Class="full-width"
18+
OptionText="@(x => x.Key)"
19+
@bind-Value="_selectedGameTypeKey" />
1120
</FluentGridItem>
1221
<FluentGridItem xs="12" md="4">
13-
<FluentButton Class="full-width" Disabled="_isLoadingGames" OnClick="GetGamesAsync" Loading="_isLoadingGames">@Loc["ReportsPage_LoadGames_Action"]</FluentButton>
22+
<FluentButton Appearance="Appearance.Accent" Class="full-width" Disabled="_isLoadingGames" OnClick="GetGamesAsync" Loading="_isLoadingGames">@Loc["ReportsPage_LoadGames_Action"]</FluentButton>
1423
</FluentGridItem>
1524
@if (_games is not null && !_isLoadingGames)
1625
{

src/CodeBreaker.Blazor.Client/Pages/ReportsPage.razor.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Microsoft.Extensions.Localization;
77
using Microsoft.FluentUI.AspNetCore.Components;
88
using Microsoft.FluentUI.AspNetCore.Components.Extensions;
9+
using System.Collections.Frozen;
910

1011
namespace CodeBreaker.Blazor.Client.Pages;
1112

@@ -14,6 +15,15 @@ public partial class ReportsPage
1415
private GameInfo[]? _games;
1516
private bool _isLoadingGames = false;
1617
private DateTime? _selectedDate = DateTime.Now;
18+
private string? _selectedGameTypeKey = null;
19+
private readonly FrozenDictionary<string, GameType> _gameTypes = new Dictionary<string, GameType>() {
20+
{ "6x4", GameType.Game6x4 },
21+
{ "6x4 Mini", GameType.Game6x4Mini },
22+
{ "8x5", GameType.Game8x5 },
23+
{ "5x5x4", GameType.Game5x5x4 },
24+
}.ToFrozenDictionary();
25+
26+
private GameType? SelectedGameType => _selectedGameTypeKey is null ? null : _gameTypes[_selectedGameTypeKey];
1727

1828
[Inject] private IDialogService DialogService { get; set; } = default!;
1929

@@ -33,7 +43,7 @@ public async Task GetGamesAsync()
3343
_isLoadingGames = true;
3444
try
3545
{
36-
var query = new GamesQuery(Date: date, Ended: true);
46+
var query = new GamesQuery(Date: date, Ended: true, GameType: SelectedGameType);
3747
var response = await GameClient.GetGamesAsync(query);
3848
Logger?.LogDebug("Got response: {response}", response);
3949
_games = [..response ?? []];

src/CodeBreaker.Blazor.Client/Resources/Resource.Designer.cs

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/CodeBreaker.Blazor.Client/Resources/Resource.de.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,4 +380,7 @@
380380
<data name="GamePage_NameInput_Placeholder" xml:space="preserve">
381381
<value>Wählen Sie Ihren Spielernamen</value>
382382
</data>
383+
<data name="ReportsPage_SelectGameType_Label" xml:space="preserve">
384+
<value>Wähle einen Spieltyp</value>
385+
</data>
383386
</root>

src/CodeBreaker.Blazor.Client/Resources/Resource.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,4 +392,7 @@
392392
<data name="GamePage_NameInput_Placeholder" xml:space="preserve">
393393
<value>Choose your gamername</value>
394394
</data>
395+
<data name="ReportsPage_SelectGameType_Label" xml:space="preserve">
396+
<value>Select a gametype (optional)</value>
397+
</data>
395398
</root>

0 commit comments

Comments
 (0)