Skip to content

Commit 1271f2f

Browse files
committed
Added filter for gamername and added "all" filter for gametypes
1 parent d02586d commit 1271f2f

5 files changed

Lines changed: 71 additions & 13 deletions

File tree

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,25 @@
66
<h2>@Loc["ReportsPage_Title"]</h2>
77

88
<FluentGrid Class="align-items-end">
9-
<FluentGridItem xs="12" md="4">
9+
<FluentGridItem xs="12" md="3">
1010
<FluentDatePicker Class="full-width" Label="@Loc["ReportsPage_SelectDate_Label"]" @bind-Value="@_selectedDate" Required />
1111
</FluentGridItem>
12-
<FluentGridItem xs="12" md="4">
12+
<FluentGridItem xs="12" md="3">
1313
<FluentSelect
14-
TOption="KeyValuePair<string, GameType>"
1514
Label="@Loc["ReportsPage_SelectGameType_Label"]"
1615
Items="_gameTypes"
1716
Class="full-width"
1817
OptionText="@(x => x.Key)"
1918
@bind-Value="_selectedGameTypeKey" />
2019
</FluentGridItem>
21-
<FluentGridItem xs="12" md="4">
20+
<FluentGridItem xs="12" md="3">
21+
<FluentTextField
22+
Class="full-width"
23+
Label="@Loc["ReportsPage_GamerName_Label"]"
24+
Placeholder="@Loc["ReportsPage_GamerName_Placeholder"]"
25+
@bind-Value="_enteredPlayerName" />
26+
</FluentGridItem>
27+
<FluentGridItem xs="12" md="3">
2228
<FluentButton Appearance="Appearance.Accent" Class="full-width" Disabled="_isLoadingGames" OnClick="GetGamesAsync" Loading="_isLoadingGames">@Loc["ReportsPage_LoadGames_Action"]</FluentButton>
2329
</FluentGridItem>
2430
@if (_games is not null && !_isLoadingGames)

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

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,10 @@ public partial class ReportsPage
1616
private bool _isLoadingGames = false;
1717
private DateTime? _selectedDate = DateTime.Now;
1818
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();
19+
private string? _enteredPlayerName = null;
20+
private IDictionary<string, GameType?> _gameTypes = null!;
2521

26-
private GameType? SelectedGameType => _selectedGameTypeKey is null ? null : _gameTypes[_selectedGameTypeKey];
22+
private GameType? SelectedGameType => string.IsNullOrEmpty(_selectedGameTypeKey) ? null : _gameTypes[_selectedGameTypeKey];
2723

2824
[Inject] private IDialogService DialogService { get; set; } = default!;
2925

@@ -35,6 +31,17 @@ public partial class ReportsPage
3531

3632
private string[] Headers => [.. Loc.GetString("ReportsPage_Table_Headers").Value.Split(",")];
3733

34+
protected override void OnInitialized()
35+
{
36+
_gameTypes = new Dictionary<string, GameType?>() {
37+
{ Loc["ReportsPage_GameType_All"], null },
38+
{ "6x4", GameType.Game6x4 },
39+
{ "6x4 Mini", GameType.Game6x4Mini },
40+
{ "8x5", GameType.Game8x5 },
41+
{ "5x5x4", GameType.Game5x5x4 },
42+
}.ToFrozenDictionary();
43+
}
44+
3845
public async Task GetGamesAsync()
3946
{
4047
var date = _selectedDate.ToDateOnly();
@@ -43,7 +50,7 @@ public async Task GetGamesAsync()
4350
_isLoadingGames = true;
4451
try
4552
{
46-
var query = new GamesQuery(Date: date, Ended: true, GameType: SelectedGameType);
53+
var query = new GamesQuery(Date: date, Ended: true, GameType: SelectedGameType, PlayerName: _enteredPlayerName);
4754
var response = await GameClient.GetGamesAsync(query);
4855
Logger?.LogDebug("Got response: {response}", response);
4956
_games = [..response ?? []];

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

Lines changed: 27 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: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,15 @@
381381
<value>Wählen Sie Ihren Spielernamen</value>
382382
</data>
383383
<data name="ReportsPage_SelectGameType_Label" xml:space="preserve">
384-
<value>Wähle einen Spieltyp</value>
384+
<value>Wähle einen Spieltyp (optional)</value>
385+
</data>
386+
<data name="ReportsPage_GamerName_Label" xml:space="preserve">
387+
<value>Gib einen Spielernamen ein (optional)</value>
388+
</data>
389+
<data name="ReportsPage_GameType_Placeholder" xml:space="preserve">
390+
<value>Alle</value>
391+
</data>
392+
<data name="ReportsPage_GamerName_Placeholder" xml:space="preserve">
393+
<value>Alle</value>
385394
</data>
386395
</root>

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,4 +395,13 @@
395395
<data name="ReportsPage_SelectGameType_Label" xml:space="preserve">
396396
<value>Select a gametype (optional)</value>
397397
</data>
398+
<data name="ReportsPage_GamerName_Label" xml:space="preserve">
399+
<value>Enter a gamer name (optional)</value>
400+
</data>
401+
<data name="ReportsPage_GameType_All" xml:space="preserve">
402+
<value>All</value>
403+
</data>
404+
<data name="ReportsPage_GamerName_Placeholder" xml:space="preserve">
405+
<value>All</value>
406+
</data>
398407
</root>

0 commit comments

Comments
 (0)