#591 - cron jobs

This commit is contained in:
Saeed Vaziry
2025-05-28 00:19:25 +02:00
parent 6032bd1098
commit 61506ff70e
22 changed files with 938 additions and 87 deletions

View File

@ -1,7 +1,7 @@
import { AppSidebar } from '@/components/app-sidebar';
import { AppHeader } from '@/components/app-header';
import { type BreadcrumbItem, NavItem, SharedData } from '@/types';
import { CSSProperties, type PropsWithChildren } from 'react';
import { type PropsWithChildren, useState } from 'react';
import { SidebarInset, SidebarProvider } from '@/components/ui/sidebar';
import { usePage } from '@inertiajs/react';
import { Toaster } from '@/components/ui/sonner';
@ -18,6 +18,13 @@ export default function Layout({
secondNavTitle?: string;
}>) {
const page = usePage<SharedData>();
const [sidebarOpen, setSidebarOpen] = useState(
(localStorage.getItem('sidebar') === 'true' || false) && !!(secondNavItems && secondNavItems.length > 0),
);
const sidebarOpenChange = (open: boolean) => {
setSidebarOpen(open);
localStorage.setItem('sidebar', String(open));
};
if (page.props.flash && page.props.flash.success) toast.success(page.props.flash.success);
if (page.props.flash && page.props.flash.error) toast.error(page.props.flash.error);
@ -28,14 +35,7 @@ export default function Layout({
return (
<QueryClientProvider client={queryClient}>
<SidebarProvider
style={
{
'--sidebar-width': '300px',
} as CSSProperties
}
defaultOpen={!!(secondNavItems && secondNavItems.length > 0)}
>
<SidebarProvider open={sidebarOpen} onOpenChange={sidebarOpenChange}>
<AppSidebar secondNavItems={secondNavItems} secondNavTitle={secondNavTitle} />
<SidebarInset>
<AppHeader />

View File

@ -1,5 +1,15 @@
import { type NavItem } from '@/types';
import { ArrowLeftIcon, CloudUploadIcon, DatabaseIcon, FlameIcon, HomeIcon, MousePointerClickIcon, RocketIcon, UsersIcon } from 'lucide-react';
import {
ArrowLeftIcon,
ClockIcon,
CloudUploadIcon,
DatabaseIcon,
FlameIcon,
HomeIcon,
MousePointerClickIcon,
RocketIcon,
UsersIcon,
} from 'lucide-react';
import { ReactNode } from 'react';
import { Server } from '@/types/server';
import ServerHeader from '@/pages/servers/components/header';
@ -80,11 +90,12 @@ export default function ServerLayout({ children }: { children: ReactNode }) {
icon: FlameIcon,
isDisabled: isMenuDisabled,
},
// {
// title: 'CronJobs',
// href: '#',
// icon: ClockIcon,
// },
{
title: 'CronJobs',
href: route('cronjobs', { server: page.props.server.id }),
icon: ClockIcon,
isDisabled: isMenuDisabled,
},
// {
// title: 'Workers',
// href: '#',