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 {