refactor(centralui): NotificationReport adopts OffsetPager + DateTimeRangeFilter + tokenized backdrop (T35d)

This commit is contained in:
Joseph Doherty
2026-06-18 19:56:47 -04:00
parent e0d085481f
commit 64cc96253f
@@ -72,16 +72,9 @@
data-test="notif-filter-node" data-test="notif-filter-node"
@bind="_nodeFilter" /> @bind="_nodeFilter" />
</div> </div>
<div class="col-auto"> <DateTimeRangeFilter From="_fromFilter" FromChanged="(v => _fromFilter = v)"
<label class="form-label small mb-1" for="no-from">From</label> To="_toFilter" ToChanged="(v => _toFilter = v)"
<input id="no-from" type="datetime-local" class="form-control form-control-sm" IdPrefix="no" />
@bind="_fromFilter" />
</div>
<div class="col-auto">
<label class="form-label small mb-1" for="no-to">To</label>
<input id="no-to" type="datetime-local" class="form-control form-control-sm"
@bind="_toFilter" />
</div>
<div class="col"> <div class="col">
<label class="form-label small mb-1" for="no-search">Subject keyword</label> <label class="form-label small mb-1" for="no-search">Subject keyword</label>
<input id="no-search" type="search" class="form-control form-control-sm" <input id="no-search" type="search" class="form-control form-control-sm"
@@ -205,20 +198,12 @@
</table> </table>
</div> </div>
@if (_totalCount > _pageSize) <OffsetPager Page="_pageNumber"
{ PageChanged="OnPageChanged"
<div class="d-flex justify-content-between align-items-center"> HasNextPage="@(_notifications.Count >= _pageSize)"
<span class="text-muted small"> TotalCount="_totalCount"
Page @_pageNumber of @((_totalCount + _pageSize - 1) / _pageSize) · @_totalCount total PageSize="_pageSize"
</span> Disabled="_loading" />
<div>
<button class="btn btn-outline-secondary btn-sm me-1"
@onclick="PrevPage" disabled="@(_pageNumber <= 1 || _loading)">Previous</button>
<button class="btn btn-outline-secondary btn-sm"
@onclick="NextPage" disabled="@(_notifications.Count < _pageSize || _loading)">Next</button>
</div>
</div>
}
} }
</div> </div>
@@ -226,7 +211,7 @@
@if (_detailNotification != null) @if (_detailNotification != null)
{ {
var d = _detailNotification; var d = _detailNotification;
<div class="modal show d-block" tabindex="-1" style="background: rgba(0,0,0,0.4);" <div class="modal show d-block sb-modal-backdrop" tabindex="-1"
@onclick="CloseDetail"> @onclick="CloseDetail">
<div class="modal-dialog modal-dialog-scrollable modal-lg" @onclick:stopPropagation="true"> <div class="modal-dialog modal-dialog-scrollable modal-lg" @onclick:stopPropagation="true">
<div class="modal-content"> <div class="modal-content">
@@ -432,8 +417,7 @@
await FetchPage(); await FetchPage();
} }
private async Task PrevPage() { _pageNumber--; await FetchPage(); } private async Task OnPageChanged(int page) { _pageNumber = page; await FetchPage(); }
private async Task NextPage() { _pageNumber++; await FetchPage(); }
private async Task FetchPage() private async Task FetchPage()
{ {