diff --git a/lib/towerops_web/live/admin/agent_live/index.ex b/lib/towerops_web/live/admin/agent_live/index.ex index 43a6dc67..eb7c8ff0 100644 --- a/lib/towerops_web/live/admin/agent_live/index.ex +++ b/lib/towerops_web/live/admin/agent_live/index.ex @@ -14,13 +14,17 @@ defmodule ToweropsWeb.Admin.AgentLive.Index do end agent_tokens = Agents.list_all_agent_tokens() + {cloud_pollers, org_agents} = Enum.split_with(agent_tokens, & &1.is_cloud_poller) device_counts = calculate_device_counts(agent_tokens) {:ok, socket |> assign(:page_title, "All Agents") |> assign(:timezone, socket.assigns.current_scope.timezone) - |> stream(:agent_tokens, agent_tokens) + |> stream(:cloud_pollers, cloud_pollers) + |> stream(:org_agents, org_agents) + |> assign(:has_cloud_pollers, cloud_pollers != []) + |> assign(:has_org_agents, org_agents != []) |> assign(:device_counts, device_counts) |> assign(:now, DateTime.utc_now())} end @@ -56,8 +60,10 @@ defmodule ToweropsWeb.Admin.AgentLive.Index do direct = Agents.count_assigned_devices(agent_token_id) total = length(Agents.list_agent_polling_targets(agent_token_id)) + stream_name = if agent_token.is_cloud_poller, do: :cloud_pollers, else: :org_agents + socket - |> stream_insert(:agent_tokens, agent_token) + |> stream_insert(stream_name, agent_token) |> assign(:device_counts, Map.put(socket.assigns.device_counts, agent_token_id, %{direct: direct, total: total})) rescue Ecto.NoResultsError -> socket @@ -65,10 +71,14 @@ defmodule ToweropsWeb.Admin.AgentLive.Index do defp reload_all(socket) do agent_tokens = Agents.list_all_agent_tokens() + {cloud_pollers, org_agents} = Enum.split_with(agent_tokens, & &1.is_cloud_poller) device_counts = calculate_device_counts(agent_tokens) socket - |> stream(:agent_tokens, agent_tokens, reset: true) + |> stream(:cloud_pollers, cloud_pollers, reset: true) + |> stream(:org_agents, org_agents, reset: true) + |> assign(:has_cloud_pollers, cloud_pollers != []) + |> assign(:has_org_agents, org_agents != []) |> assign(:device_counts, device_counts) end diff --git a/lib/towerops_web/live/admin/agent_live/index.html.heex b/lib/towerops_web/live/admin/agent_live/index.html.heex index 87fd34f1..1b6120dc 100644 --- a/lib/towerops_web/live/admin/agent_live/index.html.heex +++ b/lib/towerops_web/live/admin/agent_live/index.html.heex @@ -7,77 +7,149 @@
- <.table id="admin-agents-table" rows={@streams.agent_tokens}> - <:col :let={{_id, agent}} label="Name"> -