Skip to content

Commit b88526e

Browse files
Merge pull request #30 from Geta/bugfix/HTS-1404-pagination-not-working
HTS-1404: remove unnecessary ?page= from link
2 parents 2bcdff8 + 4b2b3c5 commit b88526e

File tree

6 files changed

+37
-15
lines changed

6 files changed

+37
-15
lines changed

src/Geta.Optimizely.Tags/Areas/GetaOptimizelyTags/Pages/Components/Pager/Default.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<li class="page-item"><a class="page-link" href="@Model.PageUrl(i)">@i</a></li>
1414
}
1515
<li class="page-item @(Model.HasNextPage ? string.Empty : "disabled")">
16-
<a class="page-link" href="?page=@Model.PageUrl(Model.PageNumber+1)" aria-label="Next">
16+
<a class="page-link" href="@Model.PageUrl(Model.PageNumber+1)" aria-label="Next">
1717
<span aria-hidden="true">&raquo;</span>
1818
</a>
1919
</li>

src/Geta.Optimizely.Tags/Areas/GetaOptimizelyTags/Pages/Index.cshtml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
</td>
4848
<td>
4949
<button type="submit" class="btn btn-primary"
50-
asp-page-handler="update" asp-route-id="@item.Id.ToString()">
50+
asp-page-handler="update" asp-route-pageNumber="@item.ItemPageNumber" asp-route-id="@item.Id.ToString()">
5151
<span data-feather="plus"></span> update
5252
</button>
5353
</td>
@@ -60,7 +60,7 @@
6060
<td>@item.GroupKey</td>
6161
<td colspan="2" class="text-end">
6262
<button type="submit" class="btn btn-secondary"
63-
asp-page-handler="edit" asp-route-id="@item.Id.ToString()">
63+
asp-page-handler="edit" asp-route-pageNumber="@item.ItemPageNumber" asp-route-id="@item.Id.ToString()">
6464
<span data-feather="edit"></span> edit
6565
</button>
6666
<button type="submit" class="btn btn-danger"

src/Geta.Optimizely.Tags/Areas/GetaOptimizelyTags/Pages/Index.cshtml.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using System.ComponentModel.DataAnnotations;
44
using System.Linq;
5+
using System.Web;
56
using EPiServer;
67
using EPiServer.Core;
78
using EPiServer.Data;
@@ -103,9 +104,18 @@ public IActionResult OnPostDelete(string id)
103104

104105
private void Load()
105106
{
107+
SetPageNumberFromQueryString();
108+
106109
var items = FindTags().ToPagedList(Paging.PageNumber, Paging.PageSize);
107110
Items = items;
108111
}
112+
private void SetPageNumberFromQueryString()
113+
{
114+
if (HttpContext.Request.Query.TryGetValue("pageNumber", out var value) && int.TryParse(value, out var pageNumber))
115+
{
116+
Paging.PageNumber = pageNumber == 0 ? 1 : pageNumber;
117+
}
118+
}
109119

110120
private IEnumerable<Tag> FindTags()
111121
{
Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
using Microsoft.AspNetCore.Mvc;
22

3-
namespace Geta.Optimizely.Tags.Pages.Geta.Optimizely.Tags.Models
4-
{
5-
public class Paging
6-
{
7-
public const int DefaultPageSize = 50;
3+
namespace Geta.Optimizely.Tags.Pages.Geta.Optimizely.Tags.Models;
84

9-
[FromQuery(Name = "page")]
10-
public int PageNumber { get; set; } = 1;
5+
public class Paging
6+
{
7+
[FromQuery(Name = "page")]
8+
public int PageNumber { get; set; } = 1;
119

12-
[FromQuery(Name = "page-size")]
13-
public int PageSize { get; set; } = DefaultPageSize;
14-
}
10+
public static int PageSize { get => 50; }
1511
}

src/Geta.Optimizely.Tags/Core/Tag.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) Geta Digital. All rights reserved.
1+
// Copyright (c) Geta Digital. All rights reserved.
22
// Licensed under Apache-2.0. See the LICENSE file in the project root for more information
33

44
using System;
@@ -31,6 +31,8 @@ public class Tag
3131

3232
public bool CheckedEditContentTags { get; set; }
3333

34+
public int ItemPageNumber { get; set; }
35+
3436
public override int GetHashCode()
3537
{
3638
return Name == null ? base.GetHashCode() : Name.GetHashCode();

src/Geta.Optimizely.Tags/TagsScheduledJob.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) Geta Digital. All rights reserved.
1+
// Copyright (c) Geta Digital. All rights reserved.
22
// Licensed under Apache-2.0. See the LICENSE file in the project root for more information
33

44
using System;
@@ -10,6 +10,8 @@
1010
using EPiServer.PlugIn;
1111
using EPiServer.Scheduler;
1212
using Geta.Optimizely.Tags.Core;
13+
using Geta.Optimizely.Tags.Pages.Geta.Optimizely.Tags.Models;
14+
using X.PagedList;
1315

1416
namespace Geta.Optimizely.Tags
1517
{
@@ -36,6 +38,7 @@ public TagsScheduledJob(
3638
public override string Execute()
3739
{
3840
var tags = _tagService.GetAllTags().ToList();
41+
SetTagPageNumber(tags.ToPagedList());
3942
var contentGuids = GetTaggedContentGuids(tags);
4043

4144
foreach (var contentGuid in contentGuids)
@@ -165,6 +168,17 @@ private void RemoveFromAllTags(Guid guid, IEnumerable<Tag> tags)
165168
}
166169
}
167170

171+
private void SetTagPageNumber(IPagedList<Tag> items)
172+
{
173+
for (var i = 0; i < items.Count; i++)
174+
{
175+
var itemPageNumber = (i / Paging.PageSize) + 1;
176+
var tag = _tagService.GetTagById(items[i].Id);
177+
tag.ItemPageNumber = itemPageNumber;
178+
_tagService.Save(tag);
179+
}
180+
}
181+
168182
public override void Stop()
169183
{
170184
_stop = true;

0 commit comments

Comments
 (0)