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; storage?: string; vmid?: string | number; mode?: string; comment?: string; } 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
ID Storage VMs Node Schedule Enabled Next Run Mode Actions {jobs.map((job) => ( {job.name} {job.storage || '-'} {job.vmid ? String(job.vmid) : 'all'} {job.node || 'all'} {job.schedule} {job.enabled ? 'enabled' : 'disabled'} {job.nextRun || '-'} {job.mode || '-'}
))}
); }