From 0cd62951ec402a11f78cf3275ddf772be967561c Mon Sep 17 00:00:00 2001 From: Graham McIntie Date: Mon, 16 Feb 2026 10:06:47 -0600 Subject: [PATCH] Replace 'Other Integrations' with specific category headers on settings page Each non-billing integration now shows under its proper category: - Quality of Experience (Preseem) - Incident Management (PagerDuty) - Infrastructure & IPAM (NetBox) --- lib/towerops_web/live/org/settings_live.ex | 13 +++++++++---- lib/towerops_web/live/org/settings_live.html.heex | 4 ++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/towerops_web/live/org/settings_live.ex b/lib/towerops_web/live/org/settings_live.ex index 4cf47141..3e19db44 100644 --- a/lib/towerops_web/live/org/settings_live.ex +++ b/lib/towerops_web/live/org/settings_live.ex @@ -47,26 +47,31 @@ defmodule ToweropsWeb.Org.SettingsLive do description: "Cloud-based ISP management. Sync subscribers, sites, equipment, and MRR data from VISP.", icon: "hero-cloud" }, - # Other integrations + # Quality of Experience %{ id: "preseem", name: "Preseem", description: "QoE monitoring and subscriber experience analytics for wireless ISPs.", - icon: "hero-signal" + icon: "hero-signal", + category: "Quality of Experience" }, + # Incident Management %{ id: "pagerduty", name: "PagerDuty", description: "Incident management and on-call alerting. Automatically triggers, acknowledges, and resolves PagerDuty incidents from TowerOps alerts.", - icon: "hero-bell-alert" + icon: "hero-bell-alert", + category: "Incident Management" }, + # Infrastructure & IPAM %{ id: "netbox", name: "NetBox", description: "Infrastructure source of truth. Sync devices, sites, IP addresses, and interfaces between TowerOps and your NetBox instance.", - icon: "hero-server-stack" + icon: "hero-server-stack", + category: "Infrastructure & IPAM" } ] diff --git a/lib/towerops_web/live/org/settings_live.html.heex b/lib/towerops_web/live/org/settings_live.html.heex index 59a6450f..a998be7f 100644 --- a/lib/towerops_web/live/org/settings_live.html.heex +++ b/lib/towerops_web/live/org/settings_live.html.heex @@ -854,10 +854,10 @@ <% end %> - <%= if provider.id not in @billing_provider_ids and (idx == 0 or Enum.at(@providers, idx - 1).id in @billing_provider_ids) do %> + <%= if Map.has_key?(provider, :category) and (idx == 0 or Enum.at(@providers, idx - 1) |> Map.get(:category) != provider.category) do %>

- Other Integrations + {provider.category}

<% end %>