This commit is contained in:
Graham McIntire 2026-01-05 10:44:21 -06:00
parent cac54b46a2
commit 4ad4e3a673
No known key found for this signature in database
2 changed files with 0 additions and 84 deletions

View file

@ -201,32 +201,4 @@ defmodule ToweropsWeb.EquipmentLive.Show do
}
end
end
# SVG Chart helpers
defp uptime_gauge(percentage) do
assigns = %{percentage: percentage}
color_class =
cond do
percentage >= 95 -> "bg-green-500"
percentage >= 80 -> "bg-yellow-500"
true -> "bg-red-500"
end
assigns = Map.put(assigns, :color_class, color_class)
~H"""
<div class="relative w-full h-6 bg-zinc-200 dark:bg-zinc-700 rounded-full overflow-hidden">
<div
class={"absolute inset-y-0 left-0 #{@color_class} transition-all duration-500"}
style={"width: #{@percentage}%"}
>
</div>
<div class="absolute inset-0 flex items-center justify-center text-xs font-medium text-zinc-900 dark:text-zinc-100">
{@percentage}%
</div>
</div>
"""
end
end

View file

@ -17,45 +17,6 @@
</.button>
</div>
</div>
<!-- Status Bar -->
<div class="grid grid-cols-2 md:grid-cols-4 gap-3 mb-4">
<div class="bg-white dark:bg-zinc-800 rounded-lg p-3 border border-zinc-200 dark:border-zinc-700">
<div class="text-xs text-zinc-600 dark:text-zinc-400 mb-1">Status</div>
<div class="flex items-center gap-2">
<span class={[
"inline-flex h-3 w-3 rounded-full",
@equipment.status == :up && "bg-green-500",
@equipment.status == :down && "bg-red-500",
@equipment.status == :unknown && "bg-zinc-400"
]}>
</span>
<span class="text-sm font-semibold text-zinc-900 dark:text-zinc-100">
{@equipment.status |> to_string() |> String.upcase()}
</span>
</div>
</div>
<div class="bg-white dark:bg-zinc-800 rounded-lg p-3 border border-zinc-200 dark:border-zinc-700">
<div class="text-xs text-zinc-600 dark:text-zinc-400 mb-1">Uptime</div>
<div class="text-lg font-bold text-zinc-900 dark:text-zinc-100">
{@metrics.uptime_percentage}%
</div>
</div>
<div class="bg-white dark:bg-zinc-800 rounded-lg p-3 border border-zinc-200 dark:border-zinc-700">
<div class="text-xs text-zinc-600 dark:text-zinc-400 mb-1">Last Check</div>
<div class="text-sm font-medium text-zinc-900 dark:text-zinc-100">
<span
title={
if @equipment.last_checked_at, do: "#{@equipment.last_checked_at} UTC", else: nil
}
class="cursor-help"
>
{time_ago(@equipment.last_checked_at)}
</span>
</div>
</div>
</div>
<!-- Tabs -->
<div class="border-b border-zinc-200 dark:border-zinc-700">
<nav class="-mb-px flex space-x-8">
@ -217,23 +178,6 @@
</div>
<!-- Graphs and Metrics -->
<div class="space-y-6">
<!-- Uptime Gauge -->
<div class="bg-white dark:bg-zinc-800 rounded-lg border border-zinc-200 dark:border-zinc-700">
<div class="px-4 py-3 border-b border-zinc-200 dark:border-zinc-700">
<h3 class="text-sm font-semibold text-zinc-900 dark:text-zinc-100">
Availability (last {@metrics.total_checks} checks)
</h3>
</div>
<div class="p-4">
<div class="mt-2">
{uptime_gauge(@metrics.uptime_percentage)}
</div>
<div class="mt-3 flex justify-between text-xs text-zinc-600 dark:text-zinc-400">
<span>{@metrics.successful_checks} successful</span>
<span>{@metrics.total_checks - @metrics.successful_checks} failed</span>
</div>
</div>
</div>
<!-- Sensors -->
<%= if @snmp_sensors && length(@snmp_sensors) > 0 do %>
<div class="bg-white dark:bg-zinc-800 rounded-lg border border-zinc-200 dark:border-zinc-700">