feat: IT Glue integration, workflow engine, pipelines, Zabbix WAN, notification channels, backup status UI improvements, nav alignment fixes

This commit is contained in:
lorentz 2026-02-27 14:52:14 -05:00
parent ed6c4a8b65
commit 19605f82aa
97 changed files with 17080 additions and 304 deletions

View file

@ -157,25 +157,22 @@ export function AppNavigation() {
return (
<header className="sticky top-0 z-50 w-full border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60">
<div className="relative container mx-auto flex h-16 items-center justify-center">
<div className="flex flex-1 items-center justify-center">
{/* Logo and App Name */}
<Link href="/" className="flex items-center space-x-3 absolute left-4">
<img
src="/wulff-logo.png"
alt="Wulf Consulting"
className="h-10 w-auto"
/>
<div className="hidden sm:block">
<h1 className="text-xl font-semibold tracking-tight">
Pulse
</h1>
<p className="text-xs text-muted-foreground">PSA Management System</p>
</div>
</Link>
<div className="container px-6 flex h-16 items-center justify-between">
{/* Logo and App Name */}
<Link href="/" className="flex items-center space-x-3 shrink-0">
<img
src="/wulff-logo.png"
alt="Wulf Consulting"
className="h-10 w-auto"
/>
<div className="hidden sm:block">
<h1 className="text-xl font-semibold tracking-tight">Pulse</h1>
<p className="text-xs text-muted-foreground">PSA Management System</p>
</div>
</Link>
{/* Main Navigation */}
<NavigationMenu className="mx-auto">
{/* Main Navigation — centered */}
<NavigationMenu>
<NavigationMenuList>
{navigationItems.map((item) => (
<NavigationMenuItem key={item.title}>
@ -231,12 +228,11 @@ export function AppNavigation() {
</NavigationMenuItem>
))}
</NavigationMenuList>
</NavigationMenu>
</NavigationMenu>
{/* Right Side Actions */}
<div className="flex items-center gap-3 absolute right-4">
<ThemeToggle />
</div>
{/* Right Side Actions */}
<div className="flex items-center gap-3 shrink-0">
<ThemeToggle />
</div>
</div>
</header>
@ -259,7 +255,7 @@ interface PageHeaderProps {
export function PageHeader({ title, description, breadcrumbs, actions }: PageHeaderProps) {
return (
<div className="border-b">
<div className="container py-4">
<div className="container px-6 py-4">
{/* Breadcrumbs */}
{breadcrumbs && breadcrumbs.length > 0 && (
<nav className="flex items-center space-x-2 text-sm text-muted-foreground mb-2">