diff --git a/assets/js/app.ts b/assets/js/app.ts index db1fab90..e68a4021 100644 --- a/assets/js/app.ts +++ b/assets/js/app.ts @@ -867,11 +867,14 @@ const NetworkMap = { wheelSensitivity: 1 }) - // Add click handler for nodes + // Add click handler for nodes (skip site compound nodes) this.cy.on('tap', 'node', (evt: any) => { const node = evt.target const nodeData = node.data() + // Don't open detail panel for site group nodes + if (nodeData.type === 'site') return + // Push event to LiveView to open detail panel this.pushEvent("node_clicked", { node_id: nodeData.id, diff --git a/lib/towerops/topology.ex b/lib/towerops/topology.ex index 666e68b4..a1eaa888 100644 --- a/lib/towerops/topology.ex +++ b/lib/towerops/topology.ex @@ -530,6 +530,8 @@ defmodule Towerops.Topology do end end + def get_node_detail("site_" <> _rest, _organization_id), do: nil + def get_node_detail(device_id, organization_id) do device = Repo.one( diff --git a/test/towerops/topology_test.exs b/test/towerops/topology_test.exs index ca6138a7..2f935b43 100644 --- a/test/towerops/topology_test.exs +++ b/test/towerops/topology_test.exs @@ -1362,6 +1362,12 @@ defmodule Towerops.TopologyTest do result = Topology.get_node_detail(Ecto.UUID.generate(), org.id) assert result == nil end + + test "returns nil for site compound node IDs", + %{organization: org, site: site} do + result = Topology.get_node_detail("site_#{site.id}", org.id) + assert result == nil + end end describe "list_connected_devices/1" do