Skip to content

Commit 55e0819

Browse files
feat: Add overrun indicator for server feed to notify high volume and update related logic
1 parent bcdc043 commit 55e0819

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

src/XtremeIdiots.Portal.Web/Views/ServerAdmin/ServerDetail.cshtml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@
204204
<h5>
205205
Server Feed
206206
<span class="badge bg-secondary ms-2" id="sd-feedPendingCount" style="display: none;">0 new</span>
207+
<span class="badge bg-warning text-dark ms-1" id="sd-feedOverrunIndicator" style="display: none;" title="Feed volume is high — some items may be truncated"><i class="fa-solid fa-fw fa-triangle-exclamation"></i> High volume</span>
207208
</h5>
208209
<div class="ibox-tools d-flex align-items-center gap-2">
209210
<div class="form-check form-check-inline mb-0">
@@ -659,6 +660,7 @@
659660
containerSelector: '#sd-feedContainer',
660661
itemsSelector: '#sd-feedItems',
661662
pendingCountSelector: '#sd-feedPendingCount',
663+
overrunIndicatorSelector: '#sd-feedOverrunIndicator',
662664
chatToggleSelector: '#sd-feedToggleChat',
663665
eventsToggleSelector: '#sd-feedToggleEvents',
664666
eventTypeFilterSelector: '#sd-feedEventFilter',

src/XtremeIdiots.Portal.Web/wwwroot/js/server-feed.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ var ServerFeed = (function () {
1414
var _seenItemIds = new Set();
1515
var _pendingItems = [];
1616
var _overrunCount = 0;
17+
var _overrunNoticeShown = false;
1718

1819
var _cursor = {
1920
lastSeenTimestampUtc: null,
@@ -34,6 +35,7 @@ var ServerFeed = (function () {
3435
_pendingItems = [];
3536
_seenItemIds = new Set();
3637
_overrunCount = 0;
38+
_overrunNoticeShown = false;
3739
_cursor = {
3840
lastSeenTimestampUtc: null,
3941
lastSeenSourceType: null,
@@ -46,6 +48,7 @@ var ServerFeed = (function () {
4648
container: options.containerSelector || '#sd-feedContainer',
4749
items: options.itemsSelector || '#sd-feedItems',
4850
pendingCount: options.pendingCountSelector || '#sd-feedPendingCount',
51+
overrunIndicator: options.overrunIndicatorSelector || null,
4952
chatToggle: options.chatToggleSelector || '#sd-feedToggleChat',
5053
eventsToggle: options.eventsToggleSelector || '#sd-feedToggleEvents',
5154
eventTypeFilter: options.eventTypeFilterSelector || '#sd-feedEventFilter',
@@ -171,11 +174,18 @@ var ServerFeed = (function () {
171174

172175
if (result?.diagnostics?.overrunDetected === true) {
173176
_overrunCount += 1;
174-
if (_overrunCount === 1 || _overrunCount % 3 === 0) {
175-
prependSystemNotice('Feed overrun detected. Some high-volume bursts may be truncated.');
177+
if (_selectors.overrunIndicator) {
178+
$(_selectors.overrunIndicator).show();
179+
}
180+
if (!_overrunNoticeShown) {
181+
_overrunNoticeShown = true;
182+
prependSystemNotice('Feed volume is high \u2014 some items may be truncated.');
176183
}
177184
} else {
178185
_overrunCount = 0;
186+
if (_selectors.overrunIndicator) {
187+
$(_selectors.overrunIndicator).hide();
188+
}
179189
}
180190

181191
var dedupedItems = [];

0 commit comments

Comments
 (0)