Merge pull request 'Replace 'Other Integrations' with specific category headers on settings page' (#2) from feature/integration-category-headers into main

Reviewed-on: graham/towerops-web#2
This commit is contained in:
Graham McIntire 2026-02-16 08:22:42 -08:00
commit 547ca8bebd
2 changed files with 11 additions and 6 deletions

View file

@ -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"
}
]

View file

@ -854,10 +854,10 @@
</span>
</div>
<% 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 %>
<div class="pt-4 mt-4 border-t border-gray-200 dark:border-white/10">
<h3 class="text-sm font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400">
Other Integrations
{provider.category}
</h3>
</div>
<% end %>