Files
ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Components/App.razor
T
Joseph Doherty 9cff87fe85 docs(comments): strip internal task/milestone/bundle bookkeeping from code comments
Remove project bookkeeping citations from shipped code comments across the
solution: hyphenated task IDs (WP-14, StoreAndForward-025), milestone/task/
issue refs (M3, Task 4, Audit Log #23, #21), Bundle X task-bundle labels,
and C/D/K/S/T phase labels.

Comment text only — no code logic, string/log literals, or XML-doc structure
changed. Genuine descriptions are preserved (only the citation is stripped),
and technical lookalikes are retained (UTF-8, SHA-256, T00:00:00, M365,
UTC-5, pre-C4/pre-C5 schema versions). Flagged by the new CommentChecker
TaskReferenceInComment / TrackingReferenceInComment checks plus targeted
grep passes; full solution builds clean, append-only guard tests pass.
2026-07-07 11:03:26 -04:00

102 lines
4.3 KiB
Plaintext

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base href="/" />
<title>ScadaBridge</title>
<link href="/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<link href="/lib/bootstrap-icons/bootstrap-icons.css" rel="stylesheet" />
<ThemeHead />
<link href="/ZB.MOM.WW.ScadaBridge.Host.styles.css" rel="stylesheet" />
<link href="_content/ZB.MOM.WW.ScadaBridge.CentralUI/css/site.css" rel="stylesheet" />
<script>
// Apply the persisted theme to <html> BEFORE first paint so a
// dark-mode user never sees a light flash. Mirrors window.sbTheme.get/apply
// (theme.js) — same key, same rule — but inlined so it runs without waiting
// on the deferred script include. localStorage access is guarded for
// private-browsing modes that throw on read.
(function () {
try {
var m = localStorage.getItem('sb-theme') === 'dark' ? 'dark' : 'light';
document.documentElement.setAttribute('data-bs-theme', m);
} catch (e) { }
})();
</script>
<HeadOutlet @rendermode="InteractiveServer" />
</head>
<body>
<Routes @rendermode="InteractiveServer" />
<div id="reconnect-modal">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="spinner-border text-primary mb-3" role="status">
<span class="visually-hidden">Reconnecting...</span>
</div>
<h5>Connection Lost</h5>
<p class="text-muted mb-0">Attempting to reconnect to the server. Please wait...</p>
</div>
</div>
</div>
<script src="/_framework/blazor.web.js"
autostart="false"></script>
<script>
// Reconnection overlay for failover behavior. After a docker redeploy
// (or other server-side restart), Blazor exhausts its retry budget and
// leaves the user staring at a stuck "Reconnect failed" overlay. Auto-
// reload in that case so the user lands on a fresh circuit instead of
// having to manually refresh.
Blazor.start({
circuit: {
reconnectionOptions: {
maxRetries: 8,
retryIntervalMilliseconds: 1500
},
reconnectionHandler: {
onConnectionDown: () => { /* default overlay */ },
onConnectionUp: () => {
var m = document.getElementById('reconnect-modal');
if (m) m.style.display = 'none';
}
}
}
});
document.addEventListener('DOMContentLoaded', () => {
if (typeof Blazor !== 'undefined') {
Blazor.addEventListener?.('enhancedload', () => {
var m = document.getElementById('reconnect-modal');
if (m) m.style.display = 'none';
});
}
});
// When Blazor gives up reconnecting, it adds the
// `components-reconnect-failed` class to the reconnect modal element.
// Watch for it and auto-reload so the user gets a fresh circuit.
var mo = new MutationObserver(() => {
var m = document.getElementById('reconnect-modal');
if (!m) return;
if (m.classList.contains('components-reconnect-failed')) {
window.location.reload();
}
});
mo.observe(document.documentElement, {
attributes: true,
subtree: true,
attributeFilter: ['class']
});
</script>
<script src="/js/treeview-storage.js"></script>
<script src="_content/ZB.MOM.WW.ScadaBridge.CentralUI/js/theme.js"></script>
<ThemeScripts />
<script src="_content/ZB.MOM.WW.ScadaBridge.CentralUI/js/monaco-init.js"></script>
<script src="_content/ZB.MOM.WW.ScadaBridge.CentralUI/js/audit-grid.js"></script>
<script src="_content/ZB.MOM.WW.ScadaBridge.CentralUI/js/transport.js"></script>
<script src="_content/ZB.MOM.WW.ScadaBridge.CentralUI/js/dialog.js"></script>
<script src="/lib/bootstrap/js/bootstrap.bundle.min.js"></script>
</body>
</html>