fix bugs on agents screen
This commit is contained in:
parent
a50c8e6314
commit
41594e5a96
2 changed files with 25 additions and 12 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<%= if Enum.empty?(@streams.agent_tokens) do %>
|
||||
<%= if !@has_agents do %>
|
||||
<div class="text-center py-16">
|
||||
<.icon name="hero-server" class="mx-auto h-12 w-12 text-gray-400 dark:text-gray-500" />
|
||||
<h3 class="mt-4 text-lg font-semibold text-gray-900 dark:text-white">No agents</h3>
|
||||
|
|
@ -176,7 +176,7 @@
|
|||
<% end %>
|
||||
|
||||
<%!-- Cloud Pollers Section (Superadmin Only) --%>
|
||||
<%= if @is_superuser && @cloud_pollers != [] do %>
|
||||
<%= if @is_superuser && @has_cloud_pollers do %>
|
||||
<div class="mt-12">
|
||||
<h2 class="text-lg font-semibold text-gray-900 dark:text-white mb-4">
|
||||
Cloud Pollers
|
||||
|
|
@ -184,7 +184,7 @@
|
|||
<p class="text-sm text-gray-600 dark:text-gray-400 mb-4">
|
||||
Application-wide agents that can poll devices for any organization. Only visible and manageable by superadmins.
|
||||
</p>
|
||||
<.table id="cloud-pollers-table" rows={@cloud_pollers}>
|
||||
<.table id="cloud-pollers-table" rows={@streams.cloud_pollers}>
|
||||
<:col :let={{_id, agent}} label="Name">
|
||||
<div class="flex items-center gap-2">
|
||||
<.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"
|
||||
>
|
||||
<option value="">No global default (direct Phoenix polling)</option>
|
||||
<%= for cloud_poller <- @cloud_pollers do %>
|
||||
<%= for cloud_poller <- @cloud_pollers_list do %>
|
||||
<option value={cloud_poller.id}>
|
||||
{cloud_poller.name}
|
||||
<%= if cloud_poller.id == @global_default_cloud_poller_id do %>
|
||||
|
|
@ -328,7 +328,7 @@
|
|||
|
||||
<%= if @global_default_cloud_poller_id do %>
|
||||
<% selected_poller =
|
||||
Enum.find(@cloud_pollers, &(&1.id == @global_default_cloud_poller_id)) %>
|
||||
Enum.find(@cloud_pollers_list, &(&1.id == @global_default_cloud_poller_id)) %>
|
||||
<%= if selected_poller do %>
|
||||
<p class="text-xs text-amber-600 dark:text-amber-400">
|
||||
<.icon name="hero-check-circle" class="h-4 w-4 inline" /> Currently using:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue