Improve UI views for assets/components/failures and timeline details

This commit is contained in:
2026-02-15 23:26:12 +03:00
parent 929bf9c524
commit f9ff0e10ff
14 changed files with 1221 additions and 87 deletions

View File

@@ -9,37 +9,44 @@
<main class="container">
<section class="card">
<h2>Failure Events</h2>
{{if .Failures}}
<table class="table">
{{if .FailureGroups}}
{{range .FailureGroups}}
<details open style="margin-bottom: 18px;">
<summary class="meta" style="margin-bottom: 8px; cursor: pointer;">
<span class="badge {{assetStatusClass .AssetStatus}}">{{assetStatusText .AssetStatus}}</span>
Asset {{if .AssetID}}<a href="/ui/assets/{{.AssetID}}" onclick="event.stopPropagation()">{{.AssetLabel}}</a>{{else}}—{{end}} · Vendor {{.AssetVendor}} · Model {{.AssetModel}} · SN {{.AssetSN}} · {{len .Failures}} events
</summary>
<table class="table" style="table-layout: fixed; width: 100%;">
<colgroup>
<col style="width: 28%;" />
<col style="width: 17%;" />
<col style="width: 27%;" />
<col style="width: 14%;" />
<col style="width: 14%;" />
</colgroup>
<thead>
<tr>
<th>Source</th>
<th>External</th>
<th>Component</th>
<th>Asset</th>
<th>Time</th>
<th>Component Status</th>
<th>Asset Status</th>
<th>Component</th>
<th>Type</th>
<th>Failure Time</th>
<th>Confidence</th>
</tr>
</thead>
<tbody>
{{range .Failures}}
<tr>
<td>{{.Source}}</td>
<td>{{.ExternalID}}</td>
<td><a href="/ui/components/{{.PartID}}">{{componentLabelByID .PartID $.ComponentLabelByID}}</a></td>
<td>{{if .MachineID}}<a href="/ui/assets/{{.MachineID}}">{{assetLabel .MachineID $.AssetLabelByID}}</a>{{else}}—{{end}}</td>
<td>{{formatTimeFull .FailureTime}}</td>
<td><span class="badge {{componentStatusClass (index $.ComponentStatusByID .PartID)}}">{{componentStatusText (index $.ComponentStatusByID .PartID)}}</span></td>
<td><span class="badge {{assetStatusClass (assetStatusByPtr .MachineID $.AssetStatusByID)}}">{{assetStatusText (assetStatusByPtr .MachineID $.AssetStatusByID)}}</span></td>
<td><a href="/ui/components/{{.PartID}}">{{componentLabelByID .PartID $.ComponentLabelByID}}</a></td>
<td>{{.FailureType}}</td>
<td title="{{formatTimeFull .FailureTime}}">{{formatTime .FailureTime}}</td>
<td>{{formatFloatPtr .Confidence 2}}</td>
</tr>
{{end}}
</tbody>
</table>
</details>
{{end}}
{{else}}
<div class="meta">No failures ingested yet.</div>
{{end}}