Skip to content

Commit e079b4a

Browse files
authored
Add prev/next ID buttons for game groups (#2000)
* Change prefix to format string for `ViewDataDictionary.SetNavigation` also make these explicitly absolute paths, while still allowing relative paths * Add prev/next ID buttons for game groups
1 parent 084a9a3 commit e079b4a

File tree

5 files changed

+11
-6
lines changed

5 files changed

+11
-6
lines changed

TASVideos/Extensions/ViewDataDictionaryExtensions.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ public static string GetHeading(this ViewDataDictionary viewData)
4545
public static void SetWikiPage(this ViewDataDictionary viewData, IWikiPage wikiPage)
4646
=> viewData["WikiPage"] = wikiPage;
4747

48-
public static void SetNavigation(this ViewDataDictionary viewData, int id, string suffix)
48+
public static void SetNavigation(this ViewDataDictionary viewData, int id, string fmtStr = "{0}")
4949
{
5050
viewData["NavigationId"] = id;
51-
viewData["NavigationSuffix"] = suffix;
51+
viewData["NavigationFmtStr"] = fmtStr;
5252
}
5353

5454
public static string ActivePageClass(this ViewDataDictionary viewData, string page)

TASVideos/Pages/GameGroups/Index.cshtml

+4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
@model IndexModel
33
@{
44
ViewData.SetTitle($"Games for Group: {Model.Name}");
5+
if (int.TryParse(Model.Id, out var id))
6+
{
7+
ViewData.SetNavigation(id, "/GameGroups/{0}");
8+
}
59
}
610

711
<warning-alert condition="!Model.Games.Any()">

TASVideos/Pages/Games/Index.cshtml

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
if (int.TryParse(Model.Id, out int id))
2222
{
23-
ViewData.SetNavigation(id, "G");
23+
ViewData.SetNavigation(id, "/{0}G");
2424
}
2525
}
2626

TASVideos/Pages/Shared/_Layout.cshtml

+3-2
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
var heading = ViewData.GetHeading();
9090
int? prev = null;
9191
int? next = null;
92+
string? fmtStr = ViewData["NavigationFmtStr"] as string;
9293
if (User.Has(PermissionTo.CatalogMovies))
9394
{
9495
var id = ViewData.Int("NavigationId");
@@ -101,7 +102,7 @@
101102

102103
<div class="container mb-2">
103104
<h1 class="page-title card card-body d-block">
104-
<a condition="prev.HasValue" href="@(prev + ViewData["NavigationSuffix"]?.ToString())"><i class="fa fa-arrow-left"></i></a>
105+
<a condition="prev.HasValue" href="@string.Format(fmtStr!, prev)"><i class="fa fa-arrow-left"></i></a>
105106
@if (IsSectionDefined("PageTitle"))
106107
{
107108
@await RenderSectionAsync("PageTitle")
@@ -110,7 +111,7 @@
110111
{
111112
@heading
112113
}
113-
<a condition="next.HasValue" class="float-end" href="@(next + ViewData["NavigationSuffix"]?.ToString())"><i class="fa fa-arrow-right"></i></a>
114+
<a condition="next.HasValue" class="float-end" href="@string.Format(fmtStr!, next)"><i class="fa fa-arrow-right"></i></a>
114115
</h1>
115116
</div>
116117
}

TASVideos/Pages/Submissions/View.cshtml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
@{
55
ViewData.SetTitle($"{Model.Submission.Title} - Submission #{Model.Id}");
66
ViewData.SetHeading($"Submission {Model.Submission.Title}");
7-
ViewData.SetNavigation(Model.Id, "S");
7+
ViewData.SetNavigation(Model.Id, "/{0}S");
88
bool hasEncode = !string.IsNullOrWhiteSpace(Model.Submission.EncodeEmbedLink);
99
bool canEdit = User.Has(PermissionTo.EditSubmissions)
1010
|| (Model.CanEdit && User.Has(PermissionTo.SubmitMovies));

0 commit comments

Comments
 (0)