Skip to content

Commit 6a6010b

Browse files
committed
Fix paging display numbers.
1 parent 688702a commit 6a6010b

File tree

3 files changed

+52
-34
lines changed

3 files changed

+52
-34
lines changed

src/Serilog.Ui.Web/Controllers/LogsController.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ static LogsController()
2323
Scripts = SetResource("Serilog.Ui.Web.wwwroot.js.main.js");
2424
SelectListItems = new List<SelectListItem>
2525
{
26-
new SelectListItem {Text = "10", Value = "10"},
26+
new SelectListItem {Text = "10", Value = "10", Selected = true},
2727
new SelectListItem {Text = "25", Value = "25"},
2828
new SelectListItem {Text = "50", Value = "50"},
2929
new SelectListItem {Text = "100", Value = "100"}
@@ -43,11 +43,15 @@ public async Task<IActionResult> Index(int page = 1, int count = 10)
4343
if (count > 100)
4444
count = 100;
4545

46-
var x = SelectListItems.FirstOrDefault(i => i.Value == count.ToString());
47-
if (x != null)
48-
x.Selected = true;
49-
else
50-
SelectListItems.First().Selected = true;
46+
if (SelectListItems.First(i => i.Selected).Value != count.ToString())
47+
{
48+
SelectListItems.First(i => i.Selected).Selected = false;
49+
var x = SelectListItems.FirstOrDefault(i => i.Value == count.ToString());
50+
if (x != null)
51+
x.Selected = true;
52+
else
53+
SelectListItems.First().Selected = true;
54+
};
5155

5256
var (logs, logCount) = await _dataProvider.FetchDataAsync(page, count);
5357
var viewModel = new LogViewModel

src/Serilog.Ui.Web/Views/Logs/Index.cshtml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@
33
ViewData["Title"] = "Log List";
44
Layout = "~/Views/Shared/_LogLayout.cshtml";
55
var levelClass = string.Empty;
6+
var showingItemsStart = (Model.Page - 1) * Model.Count;
7+
int showingItemsEnd;
8+
if (showingItemsStart == 0)
9+
{
10+
showingItemsStart = 1;
11+
showingItemsEnd = 10;
12+
}
13+
else
14+
{
15+
showingItemsEnd = showingItemsStart + Model.Count;
16+
}
617
}
718
<h1>Log List</h1>
819
<form method="get" asp-action="Index">
@@ -70,7 +81,7 @@
7081
</table>
7182
<div class="row">
7283
<div class="col-sm-12 col-md-5">
73-
<div class="table-paging-info">Showing 41 to 50 of @Model.LogCount entries</div>
84+
<div class="table-paging-info">Showing @showingItemsStart to @showingItemsEnd of @Model.LogCount entries</div>
7485
</div>
7586
<div class="col-sm-12 col-md-7">
7687
<partial name="_Paging" model="Model" />

src/Serilog.Ui.Web/Views/Logs/_Paging.cshtml

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@
22
@{
33
var totalPages = Model.LogCount / Model.Count;
44
totalPages += Model.LogCount % Model.Count != 0 ? 1 : 0;
5-
var pageDisplayCount = totalPages;
5+
var endIndex = 5;
6+
var startIndex = 1;
67
var hasMore = false;
78
if (totalPages > 5)
89
{
9-
pageDisplayCount = 5;
10+
1011
if (totalPages - Model.Page > 2)
1112
{
1213
hasMore = true;
14+
startIndex = Model.Page;
15+
endIndex = Model.Page + 5;
1316
}
1417
}
1518
}
@@ -19,36 +22,36 @@
1922
<ul class="pagination">
2023
@if (Model.Page != 1)
2124
{
22-
var value = Model.Page - 1;
23-
<li class="page-item previous">
24-
<a href="#" data-val="@value" tabindex="@value" class="page-link">Previous</a>
25-
</li>
25+
var value = Model.Page - 1;
26+
<li class="page-item previous">
27+
<a href="#" data-val="@value" tabindex="@value" class="page-link">Previous</a>
28+
</li>
2629
}
27-
@for (var i = 1; i <= pageDisplayCount; i++)
30+
@for (var i = startIndex; i <= endIndex; i++)
31+
{
32+
if (Model.Page == i)
2833
{
29-
if (Model.Page == i)
30-
{
31-
<li class="page-item active">
32-
<span class="page-link disabled">
33-
@i
34-
<span class="sr-only">(current)</span>
35-
</span>
36-
</li>
37-
}
38-
else
39-
{
40-
<li>
41-
<a href="#" data-val="@i" tabindex="@i" class="page-link">@i</a>
42-
</li>
43-
}
34+
<li class="page-item active">
35+
<span class="page-link disabled">
36+
@i
37+
<span class="sr-only">(current)</span>
38+
</span>
39+
</li>
40+
}
41+
else
42+
{
43+
<li>
44+
<a href="#" data-val="@i" tabindex="@i" class="page-link">@i</a>
45+
</li>
46+
}
4447
}
4548
@if (hasMore)
4649
{
47-
var value = Model.Page + 1;
48-
<li class="page-item ">&nbsp;...&nbsp;</li>
49-
<li class="page-item next">
50-
<a href="#" data-val="@value" tabindex="@value" class="page-link">Next</a>
51-
</li>
50+
var value = Model.Page + 1;
51+
<li class="page-item ">&nbsp;...&nbsp;</li>
52+
<li class="page-item next">
53+
<a href="#" data-val="@value" tabindex="@value" class="page-link">Next</a>
54+
</li>
5255
}
5356
</ul>
5457
</div>

0 commit comments

Comments
 (0)