Add Reports drawer, Dell catalog compliance, and Service Tag chat context.

Exposes OME warranties, baselines, report defs, and CSV/JSON exports for customer-ready fleet briefs.
This commit is contained in:
mo
2026-07-17 15:15:57 +02:00
parent c2bb0465d0
commit 115b6e39aa
11 changed files with 1393 additions and 36 deletions
+31 -7
View File
@@ -7,7 +7,7 @@
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="/styles.css?v=kpi1" />
<link rel="stylesheet" href="/styles.css?v=reports1" />
<link rel="icon" href="/dell.png" type="image/png" />
<link rel="stylesheet" href="/vendor/xterm/xterm.css?v=home1" />
</head>
@@ -28,6 +28,7 @@
<div class="top-actions">
<button type="button" class="btn ghost" id="btn-reset-view" title="Fit fleet in view">Reset view</button>
<button type="button" class="btn ghost" id="btn-ome-console" title="Open OME console">OME console</button>
<button type="button" class="btn ghost" id="btn-reports" title="Fleet reports &amp; Dell compliance">Reports</button>
<button type="button" class="btn ghost" id="btn-ops" title="ATC admin tickets">Ops desk</button>
<button type="button" class="btn primary" id="btn-chat">Cockpit chat</button>
</div>
@@ -211,9 +212,10 @@
<span class="chat-ctx-pill" id="chat-ctx-focus">focus: none</span>
</div>
<div class="chat-quick" id="chat-quick">
<button type="button" data-q="What is the current fleet health? Name critical systems.">Fleet health</button>
<button type="button" data-q="List all critical alerts with system name and IP.">Critical alerts</button>
<button type="button" data-q="Which connected nodes use the most power right now?">Top power</button>
<button type="button" data-q="List every device with its Service Tag, model, and IP.">All service tags</button>
<button type="button" data-q="What is the current fleet health? Include Service Tags for critical systems.">Fleet health</button>
<button type="button" data-q="List all critical alerts with system name, Service Tag, and IP.">Critical alerts</button>
<button type="button" data-q="Which systems are firmware outdated vs the Dell catalog? Include Service Tags and BIOS/iDRAC versions if known.">Outdated firmware</button>
<button type="button" data-q="Summarize V100 GPU utilization on atc-gpu-prod.">GPU status</button>
</div>
<div class="chat-body" id="chat-body"></div>
@@ -276,6 +278,27 @@
<iframe id="ai-frame" title="OpenManage AI" src="about:blank"></iframe>
</div>
<!-- Reports / compliance / export -->
<div class="drawer wide reports-drawer" id="reports-drawer" aria-hidden="true">
<div class="drawer-head">
<div class="drawer-brand">
<img src="/dell.png" alt="Dell" height="22" />
<span>Fleet reports · Dell compliance</span>
</div>
<button type="button" class="btn ghost" id="btn-reports-close">Close</button>
</div>
<div class="chip-grid reports-tabs" id="reports-tabs">
<button type="button" class="chip active" data-tab="fleet">Fleet inventory</button>
<button type="button" class="chip" data-tab="firmware">Firmware / BIOS</button>
<button type="button" class="chip" data-tab="warranty">Warranty</button>
<button type="button" class="chip" data-tab="ome">OME reports</button>
<button type="button" class="chip" data-tab="brief">Customer brief</button>
</div>
<div class="reports-body" id="reports-mount">
<p class="hint">Select a report tab to load live OME data.</p>
</div>
</div>
<div class="scrim" id="scrim"></div>
<div class="node-tip hidden" id="node-tip" role="tooltip"></div>
@@ -443,8 +466,9 @@
<script src="/vendor/xterm/xterm.min.js?v=home1"></script>
<script src="/vendor/xterm/xterm-addon-fit.min.js?v=home1"></script>
<script src="/app.js?v=kpi1"></script>
<script src="/ops.js?v=kpi1"></script>
<script src="/ssh.js?v=kpi1"></script>
<script src="/app.js?v=reports1"></script>
<script src="/ops.js?v=reports1"></script>
<script src="/ssh.js?v=reports1"></script>
<script src="/reports.js?v=reports1"></script>
</body>
</html>