9cff87fe85
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.
102 lines
4.3 KiB
Plaintext
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>
|