diff --git a/lib/towerops_web/live/agent_live/index.ex b/lib/towerops_web/live/agent_live/index.ex index 6e1d75e4..ee951f2e 100644 --- a/lib/towerops_web/live/agent_live/index.ex +++ b/lib/towerops_web/live/agent_live/index.ex @@ -56,7 +56,10 @@ defmodule ToweropsWeb.AgentLive.Index do |> assign(:timezone, socket.assigns.current_scope.timezone) |> assign(:is_superuser, is_superuser) |> stream(:agent_tokens, agent_tokens) - |> assign(:cloud_pollers, cloud_pollers) + |> assign(:has_agents, agent_tokens != []) + |> stream(:cloud_pollers, cloud_pollers) + |> assign(:cloud_pollers_list, cloud_pollers) + |> assign(:has_cloud_pollers, cloud_pollers != []) |> assign(:global_default_cloud_poller_id, global_default_cloud_poller_id) |> assign(:selected_global_default, global_default_cloud_poller_id || "") |> assign(:device_counts, equipment_counts) @@ -128,7 +131,8 @@ defmodule ToweropsWeb.AgentLive.Index do {:noreply, socket - |> assign(:agent_tokens, agent_tokens) + |> stream(:agent_tokens, agent_tokens, reset: true) + |> assign(:has_agents, agent_tokens != []) |> assign(:new_token, %{agent_token: new_agent_token, token: token}) |> assign(:show_token_modal, true) |> put_flash(:info, t_equipment("New token generated successfully"))} @@ -184,8 +188,11 @@ defmodule ToweropsWeb.AgentLive.Index do {:noreply, socket - |> assign(:agent_tokens, agent_tokens) - |> assign(:cloud_pollers, cloud_pollers) + |> stream(:agent_tokens, agent_tokens, reset: true) + |> assign(:has_agents, agent_tokens != []) + |> stream(:cloud_pollers, cloud_pollers, reset: true) + |> assign(:cloud_pollers_list, cloud_pollers) + |> assign(:has_cloud_pollers, cloud_pollers != []) |> assign(:global_default_cloud_poller_id, global_default_cloud_poller_id) |> assign(:selected_global_default, global_default_cloud_poller_id || "") |> assign(:device_counts, equipment_counts) @@ -288,8 +295,11 @@ defmodule ToweropsWeb.AgentLive.Index do {:noreply, socket - |> assign(:agent_tokens, agent_tokens) - |> assign(:cloud_pollers, cloud_pollers) + |> stream(:agent_tokens, agent_tokens, reset: true) + |> assign(:has_agents, agent_tokens != []) + |> stream(:cloud_pollers, cloud_pollers, reset: true) + |> assign(:cloud_pollers_list, cloud_pollers) + |> assign(:has_cloud_pollers, cloud_pollers != []) |> assign(:device_counts, equipment_counts) |> assign(:cloud_poller_counts, cloud_poller_counts) |> assign(:agent_health_stats, agent_health_stats) @@ -389,7 +399,10 @@ defmodule ToweropsWeb.AgentLive.Index do socket |> stream(:agent_tokens, agent_tokens, reset: true) - |> assign(:cloud_pollers, cloud_pollers) + |> assign(:has_agents, agent_tokens != []) + |> stream(:cloud_pollers, cloud_pollers, reset: true) + |> assign(:cloud_pollers_list, cloud_pollers) + |> assign(:has_cloud_pollers, cloud_pollers != []) |> assign(:device_counts, equipment_counts) |> assign(:cloud_poller_counts, cloud_poller_counts) |> assign(:agent_health_stats, agent_health_stats) diff --git a/lib/towerops_web/live/agent_live/index.html.heex b/lib/towerops_web/live/agent_live/index.html.heex index 9b17aa7f..7ede6d85 100644 --- a/lib/towerops_web/live/agent_live/index.html.heex +++ b/lib/towerops_web/live/agent_live/index.html.heex @@ -52,7 +52,7 @@ - <%= if Enum.empty?(@streams.agent_tokens) do %> + <%= if !@has_agents do %>
<.icon name="hero-server" class="mx-auto h-12 w-12 text-gray-400 dark:text-gray-500" />

No agents

@@ -176,7 +176,7 @@ <% end %> <%!-- Cloud Pollers Section (Superadmin Only) --%> - <%= if @is_superuser && @cloud_pollers != [] do %> + <%= if @is_superuser && @has_cloud_pollers do %>

Cloud Pollers @@ -184,7 +184,7 @@

Application-wide agents that can poll devices for any organization. Only visible and manageable by superadmins.

- <.table id="cloud-pollers-table" rows={@cloud_pollers}> + <.table id="cloud-pollers-table" rows={@streams.cloud_pollers}> <:col :let={{_id, agent}} label="Name">
<.link @@ -315,7 +315,7 @@ class="block w-full rounded-md border-amber-300 dark:border-amber-700 bg-white dark:bg-gray-900 text-gray-900 dark:text-white shadow-sm focus:border-amber-500 focus:ring-amber-500 sm:text-sm" > - <%= for cloud_poller <- @cloud_pollers do %> + <%= for cloud_poller <- @cloud_pollers_list do %>