Dashboard: programs list deployments; Tools page; statics on Services; editable launcher
- Programs page: each card lists the program's deployments (name · kind) instead of a single kind badge; kind-filter chips removed (nav is the kind lens now). protonmail honestly shows tool + job. - New Tools nav page (Wrench) — programs with a tool deployment (/programs?kind=tool). - Services page now shows statics too: /services returns service + static, and a static renders as a caddy-served card (KindBadge, served URL, no start/stop). - Program detail: DeploymentsSection + deleteConfirm rebuilt over program.deployments; header drops the (now nonexistent) program kind. - ServiceFields / JobFields: launcher is now an editable select (python|command| container|compose|node), persisted into run.launcher via the normal save. clean pnpm build + tsc --noEmit.
This commit is contained in:
@@ -5,6 +5,7 @@ import { useServiceAction } from "@/services/api/hooks"
|
||||
import { launcherLabel, subdomainUrl } from "@/lib/labels"
|
||||
import { HealthBadge } from "./HealthBadge"
|
||||
import { StackBadge } from "./StackBadge"
|
||||
import { KindBadge } from "./KindBadge"
|
||||
|
||||
interface ServiceCardProps {
|
||||
service: ServiceSummary
|
||||
@@ -37,7 +38,9 @@ export function ServiceCard({ service, health }: ServiceCardProps) {
|
||||
) : null}
|
||||
</div>
|
||||
|
||||
<div className="flex gap-1.5 mb-2">
|
||||
<div className="flex items-center gap-1.5 mb-2">
|
||||
{/* A static (caddy-served) "service" is distinguished from a systemd one. */}
|
||||
{service.kind === "static" && <KindBadge kind="static" />}
|
||||
<StackBadge stack={service.stack} />
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user