Initial commit

This commit is contained in:
2026-04-23 21:38:24 -04:00
commit 63e12a9636
1762 changed files with 1672620 additions and 0 deletions
@@ -0,0 +1,86 @@
@using PowderCoating.Application.DTOs.Common
@model dynamic
@if (Model.TotalCount > 0)
{
var request = Context.Request;
var queryParams = request.Query.ToDictionary(k => k.Key, v => v.Value.ToString());
string BuildUrl(int page, int? pageSize = null)
{
var urlParams = new Dictionary<string, string>(queryParams);
urlParams["pageNumber"] = page.ToString();
if (pageSize.HasValue)
{
urlParams["pageSize"] = pageSize.Value.ToString();
}
var queryString = string.Join("&", urlParams.Select(kvp => $"{kvp.Key}={Uri.EscapeDataString(kvp.Value)}"));
return $"{request.Path}?{queryString}";
}
<div class="row mt-4">
<div class="col-md-6">
<div class="d-flex align-items-center">
<span class="me-2">Showing @Model.StartIndex-@Model.EndIndex of @Model.TotalCount results</span>
<span class="me-2">|</span>
<label class="me-2 mb-0">Page size:</label>
<select class="form-select form-select-sm w-auto" onchange="changePageSize(this.value)">
<option value="10" selected="@(Model.PageSize == 10)">10</option>
<option value="25" selected="@(Model.PageSize == 25)">25</option>
<option value="50" selected="@(Model.PageSize == 50)">50</option>
<option value="100" selected="@(Model.PageSize == 100)">100</option>
</select>
</div>
</div>
<div class="col-md-6">
<nav aria-label="Page navigation">
<ul class="pagination justify-content-end mb-0">
<!-- First Page -->
<li class="page-item @(!Model.HasPreviousPage ? "disabled" : "")">
<a class="page-link" href="@BuildUrl(1)" aria-label="First">
<i class="bi bi-chevron-double-left"></i>
</a>
</li>
<!-- Previous Page -->
<li class="page-item @(!Model.HasPreviousPage ? "disabled" : "")">
<a class="page-link" href="@BuildUrl(Model.PageNumber - 1)" aria-label="Previous">
<i class="bi bi-chevron-left"></i>
</a>
</li>
@{
// Calculate page range to show (5 pages at a time)
var startPage = Math.Max(1, Model.PageNumber - 2);
var endPage = Math.Min(Model.TotalPages, startPage + 4);
if (endPage - startPage < 4)
{
startPage = Math.Max(1, endPage - 4);
}
for (var i = startPage; i <= endPage; i++)
{
<li class="page-item @(i == Model.PageNumber ? "active" : "")">
<a class="page-link" href="@BuildUrl(i)">@i</a>
</li>
}
}
<!-- Next Page -->
<li class="page-item @(!Model.HasNextPage ? "disabled" : "")">
<a class="page-link" href="@BuildUrl(Model.PageNumber + 1)" aria-label="Next">
<i class="bi bi-chevron-right"></i>
</a>
</li>
<!-- Last Page -->
<li class="page-item @(!Model.HasNextPage ? "disabled" : "")">
<a class="page-link" href="@BuildUrl(Model.TotalPages)" aria-label="Last">
<i class="bi bi-chevron-double-right"></i>
</a>
</li>
</ul>
</nav>
</div>
</div>
}