diff --git a/GanjooRazor/Pages/Contribs.cshtml.cs b/GanjooRazor/Pages/Contribs.cshtml.cs
index c6a37960..37f1f82e 100644
--- a/GanjooRazor/Pages/Contribs.cshtml.cs
+++ b/GanjooRazor/Pages/Contribs.cshtml.cs
@@ -10,6 +10,8 @@ using Microsoft.Extensions.Configuration;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using RMuseum.Models.Generic.ViewModels;
+using RSecurityBackend.Models.Generic;
+using System.Linq;
namespace GanjooRazor.Pages
{
@@ -146,8 +148,8 @@ namespace GanjooRazor.Pages
var days = JArray.Parse(await responseDays.Content.ReadAsStringAsync()).ToObject>();
List users = null;
-
- if(dataType != "users")
+ PaginationMetadata usersPagination = null;
+ if (dataType != "users")
{
var responseUsers = await _httpClient.GetAsync($"{APIRoot.Url}/api/contributions/{dataType}/by/user?PageNumber=1&PageSize=30");
@@ -156,7 +158,7 @@ namespace GanjooRazor.Pages
return new BadRequestObjectResult(JsonConvert.DeserializeObject(await responseUsers.Content.ReadAsStringAsync()));
}
users = JArray.Parse(await responseUsers.Content.ReadAsStringAsync()).ToObject>();
-
+ usersPagination = JsonConvert.DeserializeObject(responseDays.Headers.GetValues("paging-headers").Single());
}
var response = await _httpClient.GetAsync($"{APIRoot.Url}/api/contributions/{dataType}/summary");
@@ -176,7 +178,9 @@ namespace GanjooRazor.Pages
{
DataType = dataType,
Days = days.ToArray(),
+ DaysPagination = JsonConvert.DeserializeObject(responseDays.Headers.GetValues("paging-headers").Single()),
Users = users == null ? null :users.ToArray(),
+ UsersPagination = usersPagination,
Summary = summary
}
}
diff --git a/GanjooRazor/Pages/_GroupedByDateViewPartial.cshtml.cs b/GanjooRazor/Pages/_GroupedByDateViewPartial.cshtml.cs
index 3c247cf9..61889962 100644
--- a/GanjooRazor/Pages/_GroupedByDateViewPartial.cshtml.cs
+++ b/GanjooRazor/Pages/_GroupedByDateViewPartial.cshtml.cs
@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Mvc.RazorPages;
using RMuseum.Models.Generic.ViewModels;
+using RSecurityBackend.Models.Generic;
namespace GanjooRazor.Pages
{
@@ -7,9 +8,9 @@ namespace GanjooRazor.Pages
{
public string DataType { get; set; }
public GroupedByDateViewModel[] Days { get; set; }
-
+ public PaginationMetadata DaysPagination { get; set; }
public GroupedByUserViewModel[] Users { get; set; }
-
+ public PaginationMetadata UsersPagination { get; set; }
public SummedUpViewModel Summary { get; set; }
public _GroupedByDateViewTablePartialModel TableModel
@@ -19,7 +20,9 @@ namespace GanjooRazor.Pages
return new _GroupedByDateViewTablePartialModel()
{
Days = Days,
+ DaysPagination = DaysPagination,
Users = Users,
+ UsersPagination = UsersPagination,
};
}
}
diff --git a/GanjooRazor/Pages/_GroupedByDateViewTablePartial.cshtml b/GanjooRazor/Pages/_GroupedByDateViewTablePartial.cshtml
index 4dfa1046..febaf627 100644
--- a/GanjooRazor/Pages/_GroupedByDateViewTablePartial.cshtml
+++ b/GanjooRazor/Pages/_GroupedByDateViewTablePartial.cshtml
@@ -5,6 +5,11 @@
}
@if (Model.Days == null || Model.Days.Length == 0) return;
+
diff --git a/GanjooRazor/Pages/_GroupedByDateViewTablePartial.cshtml.cs b/GanjooRazor/Pages/_GroupedByDateViewTablePartial.cshtml.cs
index 76343e5b..792d6506 100644
--- a/GanjooRazor/Pages/_GroupedByDateViewTablePartial.cshtml.cs
+++ b/GanjooRazor/Pages/_GroupedByDateViewTablePartial.cshtml.cs
@@ -1,12 +1,14 @@
using Microsoft.AspNetCore.Mvc.RazorPages;
using RMuseum.Models.Generic.ViewModels;
+using RSecurityBackend.Models.Generic;
namespace GanjooRazor.Pages
{
public class _GroupedByDateViewTablePartialModel : PageModel
{
public GroupedByDateViewModel[] Days { get; set; }
-
+ public PaginationMetadata DaysPagination { get; set; }
public GroupedByUserViewModel[] Users { get; set; }
+ public PaginationMetadata UsersPagination { get; set; }
}
}
diff --git a/GanjooRazor/wwwroot/css/p8.css b/GanjooRazor/wwwroot/css/p8.css
index 9ffd7bdb..b017c599 100644
--- a/GanjooRazor/wwwroot/css/p8.css
+++ b/GanjooRazor/wwwroot/css/p8.css
@@ -744,6 +744,14 @@ td.c2 {
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
+pagination-controls {
+ margin: 20px 0;
+ gap: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
@media(max-width: 768px) {
.b {