From 5fd10819e49e539df597d03eb125e95e9e37c21f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Guti=C3=A9rrez?= <35082514+alezmad@users.noreply.github.com> Date: Wed, 4 Feb 2026 00:51:42 +0100 Subject: [PATCH] Add Coolify management links to service cards and overview chips Each discovered service now shows a settings gear icon linking to its Coolify management page alongside the existing web URL link. Co-Authored-By: Claude Opus 4.5 --- src/components/OverviewTab.tsx | 92 +++++++++++++++++++++++----------- src/components/ServiceCard.tsx | 15 +++++- 2 files changed, 77 insertions(+), 30 deletions(-) diff --git a/src/components/OverviewTab.tsx b/src/components/OverviewTab.tsx index 210d7c9..4fbe759 100644 --- a/src/components/OverviewTab.tsx +++ b/src/components/OverviewTab.tsx @@ -9,6 +9,7 @@ import { formatUptime } from '@/lib/stats'; import { STATUS_COLORS, STATUS_LABELS, formatRelativeTime, formatDuration } from '@/lib/deployments'; import type { DeploymentStatus } from '@/lib/deployments'; import type { HealthStatus } from '@/lib/PortalContext'; +import { getCoolifyUrl } from '@/lib/services'; import type { Service, DiscoveredService } from '@/lib/services'; function isDiscoveredService(s: Service): s is DiscoveredService { @@ -208,13 +209,24 @@ export function OverviewTab() { className="inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 border border-red-100 dark:border-red-800/30" > - {s.name} + {s.name} + {isDiscoveredService(s) && ( + + + + )} {uuid && ( - - - )} + + + )} + {uuid && ( + <> + + + + )} + ); })} diff --git a/src/components/ServiceCard.tsx b/src/components/ServiceCard.tsx index 2975a0b..bfdfb1f 100644 --- a/src/components/ServiceCard.tsx +++ b/src/components/ServiceCard.tsx @@ -1,7 +1,7 @@ 'use client'; import { useState, useCallback } from 'react'; -import { Service, DiscoveredService } from '@/lib/services'; +import { Service, DiscoveredService, getCoolifyUrl } from '@/lib/services'; import { HealthStatus } from '@/lib/PortalContext'; import { Icon } from './Icons'; @@ -101,13 +101,24 @@ export function ServiceCard({ service, status }: ServiceCardProps) { return (
- {/* Top row: badges */} + {/* Top row: badges + links */}
{resourceBadge && ( {resourceBadge} )} + {discovered && ( + + + + )}
{/* Clickable area for opening service URL */}