fix: add issues_callout component to trace_live

This commit is contained in:
Graham McIntire 2026-02-13 18:44:39 -06:00
parent 7c2321da75
commit 010736b555

View file

@ -10,6 +10,28 @@ defmodule ToweropsWeb.TraceLive.Index do
alias Towerops.Trace
attr :trace, :map, required: true
defp issues_callout(assigns) do
issues = []
issues = if assigns.trace[:device] && assigns.trace.device[:status] == :down, do: ["Device is DOWN" | issues], else: issues
issues = if assigns.trace[:qoe_metrics] && assigns.trace.qoe_metrics[:qoe_score] && assigns.trace.qoe_metrics.qoe_score < 50, do: ["QoE score is critical (#{assigns.trace.qoe_metrics.qoe_score})" | issues], else: issues
issues = if assigns.trace[:active_alerts] && length(assigns.trace.active_alerts) > 0, do: ["#{length(assigns.trace.active_alerts)} active alert(s)" | issues], else: issues
assigns = assign(assigns, :issues, Enum.reverse(issues))
~H"""
<div :if={@issues != []} class="alert alert-warning shadow-sm">
<.icon name="hero-exclamation-triangle" class="h-5 w-5" />
<div>
<h3 class="font-bold">Issues Detected</h3>
<ul class="text-sm mt-1">
<li :for={issue <- @issues}> {issue}</li>
</ul>
</div>
</div>
"""
end
attr :label, :string, required: true
attr :value, :string, required: true
attr :quality, :atom, default: :unknown