diff --git a/lib/towerops_web/live/equipment_live/show.ex b/lib/towerops_web/live/equipment_live/show.ex index f76d4087..9d41cdd0 100644 --- a/lib/towerops_web/live/equipment_live/show.ex +++ b/lib/towerops_web/live/equipment_live/show.ex @@ -55,8 +55,12 @@ defmodule ToweropsWeb.EquipmentLive.Show do cpu_chart_data = load_sensor_chart_data(equipment_id, ["cpu_load"]) memory_chart_data = load_sensor_chart_data(equipment_id, ["memory_usage"]) storage_chart_data = load_sensor_chart_data(equipment_id, ["disk_usage"]) - temperature_chart_data = load_sensor_chart_data(equipment_id, ["temperature", "cpu_temperature", "celsius"]) - voltage_chart_data = load_sensor_chart_data(equipment_id, ["voltage", "volts"]) + + # Filter sensors by type for temperature and voltage + temperature_sensors = + Enum.filter(snmp_data.sensors, &(&1.sensor_type in ["temperature", "cpu_temperature", "celsius"])) + + voltage_sensors = Enum.filter(snmp_data.sensors, &(&1.sensor_type in ["voltage", "volts"])) # Calculate metrics for dashboard metrics = calculate_metrics(recent_checks, equipment) @@ -73,8 +77,8 @@ defmodule ToweropsWeb.EquipmentLive.Show do |> assign(:cpu_chart_data, cpu_chart_data) |> assign(:memory_chart_data, memory_chart_data) |> assign(:storage_chart_data, storage_chart_data) - |> assign(:temperature_chart_data, temperature_chart_data) - |> assign(:voltage_chart_data, voltage_chart_data) + |> assign(:temperature_sensors, temperature_sensors) + |> assign(:voltage_sensors, voltage_sensors) end defp calculate_metrics(checks, _equipment) do diff --git a/lib/towerops_web/live/equipment_live/show.html.heex b/lib/towerops_web/live/equipment_live/show.html.heex index 632f1be0..65eb8c5e 100644 --- a/lib/towerops_web/live/equipment_live/show.html.heex +++ b/lib/towerops_web/live/equipment_live/show.html.heex @@ -262,100 +262,79 @@ <% end %> - - <%= if @temperature_chart_data do %> -
- <.link - navigate={ - ~p"/orgs/#{@current_organization.slug}/equipment/#{@equipment.id}/graph/temperature" - } - class="block px-4 py-3 border-b border-zinc-200 dark:border-zinc-700 hover:bg-zinc-50 dark:hover:bg-zinc-750 transition-colors" - > -
-

- Temperature (24 Hours) -

- <.icon name="hero-arrow-right" class="h-4 w-4 text-zinc-400" /> -
- -
-
- -
-
-
- <% end %> - - <%= if @voltage_chart_data do %> -
- <.link - navigate={ - ~p"/orgs/#{@current_organization.slug}/equipment/#{@equipment.id}/graph/voltage" - } - class="block px-4 py-3 border-b border-zinc-200 dark:border-zinc-700 hover:bg-zinc-50 dark:hover:bg-zinc-750 transition-colors" - > -
-

- Voltage (24 Hours) -

- <.icon name="hero-arrow-right" class="h-4 w-4 text-zinc-400" /> -
- -
-
- -
-
-
- <% end %> - - <%= if @snmp_sensors && length(@snmp_sensors) > 0 do %> + + <%= if @temperature_sensors && length(@temperature_sensors) > 0 do %>
-

Sensors

+

+ Temperature +

-
- <%= for sensor <- @snmp_sensors do %> -
-
- {sensor.sensor_descr} -
- <%= if sensor.latest_reading do %> -
- - {format_sensor_value( - sensor.latest_reading.value, - sensor.sensor_divisor - )} - - - {sensor.sensor_unit} - -
- <% else %> -
No data
- <% end %> +
+ <%= for sensor <- @temperature_sensors do %> +
+
+ <.link + navigate={ + ~p"/orgs/#{@current_organization.slug}/equipment/#{@equipment.id}/graph/temperature" + } + class="hover:text-blue-600 dark:hover:text-blue-400 hover:underline" + > + {sensor.sensor_descr} + +
+
+ <%= if sensor.latest_reading do %> + {format_sensor_value( + sensor.latest_reading.value, + sensor.sensor_divisor + )} + {sensor.sensor_unit} + <% else %> + N/A + <% end %> +
<% end %> -
+ +
+
+ <% end %> + + <%= if @voltage_sensors && length(@voltage_sensors) > 0 do %> +
+
+

Voltage

+
+
+
+ <%= for sensor <- @voltage_sensors do %> +
+
+ <.link + navigate={ + ~p"/orgs/#{@current_organization.slug}/equipment/#{@equipment.id}/graph/voltage" + } + class="hover:text-blue-600 dark:hover:text-blue-400 hover:underline" + > + {sensor.sensor_descr} + +
+
+ <%= if sensor.latest_reading do %> + {format_sensor_value( + sensor.latest_reading.value, + sensor.sensor_divisor + )} + {sensor.sensor_unit} + <% else %> + N/A + <% end %> +
+
+ <% end %> +
<% end %>