Add UI search page template
This commit is contained in:
121
internal/api/ui_search.tmpl
Normal file
121
internal/api/ui_search.tmpl
Normal file
@@ -0,0 +1,121 @@
|
||||
{{define "search"}}
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{{template "head" .}}
|
||||
<body>
|
||||
{{template "topbar" .}}
|
||||
{{template "breadcrumbs" .}}
|
||||
|
||||
<main class="container">
|
||||
<section class="card">
|
||||
<h2>Global Search</h2>
|
||||
{{if not .HasQuery}}
|
||||
<div class="meta">Enter a query in the search box above. Search covers assets, components, and failure events.</div>
|
||||
{{else}}
|
||||
<div class="meta">Query: <code>{{.Query}}</code> · Total matches: {{.TotalMatches}}</div>
|
||||
{{end}}
|
||||
</section>
|
||||
|
||||
{{if .HasQuery}}
|
||||
<section class="card">
|
||||
<h2>Assets</h2>
|
||||
{{if .Assets}}
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Status</th>
|
||||
<th>Name</th>
|
||||
<th>Vendor Serial</th>
|
||||
<th>Vendor</th>
|
||||
<th>Model</th>
|
||||
<th>ID</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .Assets}}
|
||||
<tr class="clickable" onclick="navigateToRow('/ui/assets/{{.ID}}')">
|
||||
<td><span class="badge {{assetStatusClass (index $.AssetStatusByID .ID)}}">{{assetStatusText (index $.AssetStatusByID .ID)}}</span></td>
|
||||
<td>{{.Name}}</td>
|
||||
<td>{{.VendorSerial}}</td>
|
||||
<td>{{if .Vendor}}{{.Vendor}}{{else}}—{{end}}</td>
|
||||
<td>{{if .Model}}{{.Model}}{{else}}—{{end}}</td>
|
||||
<td><code>{{.ID}}</code></td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{template "pagination" .AssetsPager}}
|
||||
{{else}}
|
||||
<div class="meta">No asset matches.</div>
|
||||
{{end}}
|
||||
</section>
|
||||
|
||||
<section class="card">
|
||||
<h2>Components</h2>
|
||||
{{if .Components}}
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Status</th>
|
||||
<th>Vendor Serial</th>
|
||||
<th>Vendor</th>
|
||||
<th>Model</th>
|
||||
<th>Asset</th>
|
||||
<th>ID</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .Components}}
|
||||
<tr class="clickable" onclick="navigateToRow('/ui/components/{{.ID}}')">
|
||||
<td><span class="badge {{componentStatusClass (index $.ComponentStatusByID .ID)}}">{{componentStatusText (index $.ComponentStatusByID .ID)}}</span></td>
|
||||
<td>{{.VendorSerial}}</td>
|
||||
<td>{{if .Vendor}}{{.Vendor}}{{else}}—{{end}}</td>
|
||||
<td>{{if .Model}}{{.Model}}{{else}}—{{end}}</td>
|
||||
{{$asset := index $.ComponentAssetByID .ID}}
|
||||
<td>{{if $asset.ID}}<a href="/ui/assets/{{$asset.ID}}">{{$asset.Label}}</a>{{else}}—{{end}}</td>
|
||||
<td><code>{{.ID}}</code></td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{template "pagination" .ComponentsPager}}
|
||||
{{else}}
|
||||
<div class="meta">No component matches.</div>
|
||||
{{end}}
|
||||
</section>
|
||||
|
||||
<section class="card">
|
||||
<h2>Failure Events</h2>
|
||||
{{if .Failures}}
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Time</th>
|
||||
<th>Type</th>
|
||||
<th>Asset</th>
|
||||
<th>Component</th>
|
||||
<th>External ID</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .Failures}}
|
||||
<tr>
|
||||
<td title="{{formatTimeFull .FailureTime}}">{{formatTime .FailureTime}}</td>
|
||||
<td>{{.FailureType}}</td>
|
||||
<td>{{if .MachineID}}<a href="/ui/assets/{{.MachineID}}">{{assetLabel .MachineID $.AssetLabelByID}}</a>{{else}}—{{end}}</td>
|
||||
<td><a href="/ui/components/{{.PartID}}">{{componentLabelByID .PartID $.ComponentLabelByID}}</a></td>
|
||||
<td><code>{{.ExternalID}}</code></td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{template "pagination" .FailuresPager}}
|
||||
{{else}}
|
||||
<div class="meta">No failure matches.</div>
|
||||
{{end}}
|
||||
</section>
|
||||
{{end}}
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
Reference in New Issue
Block a user