import React from 'react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/index'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/index'; import { Button } from '@/components/ui/index'; import { MoreHorizontal, Play, Trash2 } from 'lucide-react'; interface BackupJobInfo { id: string; name: string; node: string; schedule: string; status: 'idle' | 'running' | 'success' | 'failed'; lastRun?: string; nextRun?: string; size?: number; count?: number; enabled: boolean; } interface BackupJobListProps { jobs: BackupJobInfo[]; onRefresh?: () => void; isLoading?: boolean; onTrigger?: (job: BackupJobInfo) => void; onEdit?: (job: BackupJobInfo) => void; onDelete?: (job: BackupJobInfo) => void; onEnable?: (job: BackupJobInfo) => void; onDisable?: (job: BackupJobInfo) => void; } export function BackupJobList({ jobs, onRefresh, isLoading, onTrigger, onEdit, onDelete, onEnable, onDisable, }: BackupJobListProps) { return ( Backup Jobs
Name Node Schedule Status Last Run Next Run Size Count Actions {jobs.map((job) => ( {job.name} {job.node} {job.schedule} {job.status} {job.lastRun || '-'} {job.nextRun || '-'} {job.size ? `${(job.size / (1024 * 1024 * 1024)).toFixed(2)} GB` : '-'} {job.count || '-'}
))}
); }