@@ -35,6 +35,10 @@ import {
3535 DropdownMenuLabel ,
3636 DropdownMenuSeparator ,
3737 DropdownMenuTrigger ,
38+ DropdownMenuSub ,
39+ DropdownMenuSubContent ,
40+ DropdownMenuSubTrigger ,
41+ DropdownMenuPortal ,
3842} from "@/components/ui/dropdown-menu"
3943import { VeeamBackupJob } from "@/lib/types/veeam"
4044import { veeamApi } from "@/lib/api/veeam-client"
@@ -48,7 +52,23 @@ import {
4852 HelpCircle ,
4953 MoreHorizontal ,
5054 Columns ,
51- ArrowUpDown
55+ ArrowUpDown ,
56+ PlusIcon ,
57+ Monitor ,
58+ Server ,
59+ Cloud ,
60+ File ,
61+ Copy ,
62+ RefreshCw ,
63+ FolderOpen ,
64+ Filter ,
65+ MonitorCheck ,
66+ Building ,
67+ HardDrive ,
68+ Laptop ,
69+ Terminal ,
70+ LayoutGrid ,
71+ Database
5272} from "lucide-react"
5373import { toast } from "sonner"
5474
@@ -293,7 +313,10 @@ export function BackupJobsTable({ data, loading = false, onRefresh }: BackupJobs
293313 try {
294314 switch ( action ) {
295315 case 'start' :
296- await veeamApi . startJob ( job . id ) ;
316+ const startPayload = job . type === 'BackupCopy'
317+ ? { performActiveFull : false , startChainedJobs : false , syncRestorePoints : "Latest" }
318+ : undefined ;
319+ await veeamApi . startJob ( job . id , startPayload ) ;
297320 toast . success ( 'Job started successfully' ) ;
298321 break ;
299322 case 'stop' :
@@ -397,6 +420,217 @@ export function BackupJobsTable({ data, loading = false, onRefresh }: BackupJobs
397420 < div className = "w-full space-y-4" >
398421 < div className = "flex items-center justify-between" >
399422 < div className = "flex flex-1 items-center space-x-2" >
423+ < DropdownMenu >
424+ < DropdownMenuTrigger asChild >
425+ < Button >
426+ < PlusIcon className = "mr-2 h-4 w-4" />
427+ Create Job
428+ </ Button >
429+ </ DropdownMenuTrigger >
430+ < DropdownMenuContent align = "start" className = "w-56" >
431+ < DropdownMenuSub >
432+ < DropdownMenuSubTrigger >
433+ < HardDrive className = "mr-2 h-4 w-4 text-green-600" />
434+ < span > Backup</ span >
435+ </ DropdownMenuSubTrigger >
436+ < DropdownMenuPortal >
437+ < DropdownMenuSubContent className = "w-56" >
438+ < DropdownMenuSub >
439+ < DropdownMenuSubTrigger >
440+ < Server className = "mr-2 h-4 w-4 text-green-600" />
441+ < span > Virtual machine...</ span >
442+ </ DropdownMenuSubTrigger >
443+ < DropdownMenuPortal >
444+ < DropdownMenuSubContent >
445+ < DropdownMenuItem asChild >
446+ < Link href = "/vbr/jobs/create" className = "cursor-pointer w-full flex items-center" >
447+ < Server className = "mr-2 h-4 w-4 text-blue-500" />
448+ < span className = "ml-2" > VMware vSphere</ span >
449+ </ Link >
450+ </ DropdownMenuItem >
451+ < DropdownMenuItem asChild >
452+ < Link href = "/vbr/jobs/create?platform=hyperv" className = "cursor-pointer w-full flex items-center" >
453+ < Server className = "mr-2 h-4 w-4 text-blue-500" />
454+ < span className = "ml-2" > Microsoft Hyper-V</ span >
455+ </ Link >
456+ </ DropdownMenuItem >
457+ </ DropdownMenuSubContent >
458+ </ DropdownMenuPortal >
459+ </ DropdownMenuSub >
460+
461+ < DropdownMenuItem disabled >
462+ < Monitor className = "mr-2 h-4 w-4 text-orange-500" />
463+ Windows computer...
464+ </ DropdownMenuItem >
465+ < DropdownMenuItem disabled >
466+ < Terminal className = "mr-2 h-4 w-4 text-yellow-500" />
467+ Linux computer...
468+ </ DropdownMenuItem >
469+ < DropdownMenuItem disabled >
470+ < Laptop className = "mr-2 h-4 w-4 text-gray-500" />
471+ Mac computer...
472+ </ DropdownMenuItem >
473+ < DropdownMenuItem disabled >
474+ < Terminal className = "mr-2 h-4 w-4 text-green-800" />
475+ Unix computer...
476+ </ DropdownMenuItem >
477+
478+ < DropdownMenuSub >
479+ < DropdownMenuSubTrigger >
480+ < LayoutGrid className = "mr-2 h-4 w-4 text-gray-400" />
481+ < span > Application</ span >
482+ </ DropdownMenuSubTrigger >
483+ < DropdownMenuPortal >
484+ < DropdownMenuSubContent >
485+ < DropdownMenuItem disabled > Oracle Database</ DropdownMenuItem >
486+ < DropdownMenuItem disabled > SAP HANA</ DropdownMenuItem >
487+ < DropdownMenuItem disabled > Microsoft SQL Server</ DropdownMenuItem >
488+ </ DropdownMenuSubContent >
489+ </ DropdownMenuPortal >
490+ </ DropdownMenuSub >
491+
492+ < DropdownMenuItem disabled >
493+ < LayoutGrid className = "mr-2 h-4 w-4 text-green-500" />
494+ Object storage...
495+ </ DropdownMenuItem >
496+ < DropdownMenuItem disabled >
497+ < FolderOpen className = "mr-2 h-4 w-4 text-gray-500" />
498+ File share...
499+ </ DropdownMenuItem >
500+
501+ < DropdownMenuSub >
502+ < DropdownMenuSubTrigger >
503+ < Building className = "mr-2 h-4 w-4 text-blue-500" />
504+ < span > Microsoft Entra ID...</ span >
505+ </ DropdownMenuSubTrigger >
506+ < DropdownMenuPortal >
507+ < DropdownMenuSubContent >
508+ < DropdownMenuItem asChild >
509+ < Link href = "/vbr/jobs/create-entraid?type=tenant" className = "cursor-pointer" >
510+ Tenant
511+ </ Link >
512+ </ DropdownMenuItem >
513+ < DropdownMenuItem asChild >
514+ < Link href = "/vbr/jobs/create-entraid?type=audit" className = "cursor-pointer" >
515+ Logs
516+ </ Link >
517+ </ DropdownMenuItem >
518+ </ DropdownMenuSubContent >
519+ </ DropdownMenuPortal >
520+ </ DropdownMenuSub >
521+
522+ < DropdownMenuSub >
523+ < DropdownMenuSubTrigger >
524+ < Cloud className = "mr-2 h-4 w-4 text-orange-400" />
525+ < span > AWS</ span >
526+ </ DropdownMenuSubTrigger >
527+ < DropdownMenuPortal >
528+ < DropdownMenuSubContent className = "w-48" >
529+ < DropdownMenuSub >
530+ < DropdownMenuSubTrigger >
531+ < Server className = "mr-2 h-4 w-4 text-orange-400" />
532+ < span > EC2</ span >
533+ </ DropdownMenuSubTrigger >
534+ < DropdownMenuPortal >
535+ < DropdownMenuSubContent >
536+ < DropdownMenuItem disabled > EC2...</ DropdownMenuItem >
537+ < DropdownMenuItem disabled > EC2 SLA-Based...</ DropdownMenuItem >
538+ </ DropdownMenuSubContent >
539+ </ DropdownMenuPortal >
540+ </ DropdownMenuSub >
541+ < DropdownMenuItem disabled > < Database className = "mr-2 h-4 w-4 text-blue-400" /> RDS...</ DropdownMenuItem >
542+ < DropdownMenuItem disabled > < HardDrive className = "mr-2 h-4 w-4 text-green-400" /> EFS...</ DropdownMenuItem >
543+ < DropdownMenuItem disabled > < Database className = "mr-2 h-4 w-4 text-purple-400" /> DynamoDB...</ DropdownMenuItem >
544+ < DropdownMenuItem disabled > < HardDrive className = "mr-2 h-4 w-4 text-green-500" /> FSx...</ DropdownMenuItem >
545+ < DropdownMenuItem disabled > < Database className = "mr-2 h-4 w-4 text-red-500" /> Redshift...</ DropdownMenuItem >
546+ < DropdownMenuItem disabled > < Database className = "mr-2 h-4 w-4 text-red-400" /> Redshift Serverless...</ DropdownMenuItem >
547+ </ DropdownMenuSubContent >
548+ </ DropdownMenuPortal >
549+ </ DropdownMenuSub >
550+
551+ < DropdownMenuSub >
552+ < DropdownMenuSubTrigger >
553+ < Cloud className = "mr-2 h-4 w-4 text-blue-600" />
554+ < span > Microsoft Azure</ span >
555+ </ DropdownMenuSubTrigger >
556+ < DropdownMenuPortal >
557+ < DropdownMenuSubContent >
558+ < DropdownMenuItem disabled > Virtual machine...</ DropdownMenuItem >
559+ < DropdownMenuItem disabled > SQL databases...</ DropdownMenuItem >
560+ < DropdownMenuItem disabled > Azure files...</ DropdownMenuItem >
561+ </ DropdownMenuSubContent >
562+ </ DropdownMenuPortal >
563+ </ DropdownMenuSub >
564+ </ DropdownMenuSubContent >
565+ </ DropdownMenuPortal >
566+ </ DropdownMenuSub >
567+
568+ < DropdownMenuSub >
569+ < DropdownMenuSubTrigger >
570+ < Copy className = "mr-2 h-4 w-4 text-green-500" />
571+ < span > Replication</ span >
572+ </ DropdownMenuSubTrigger >
573+ < DropdownMenuPortal >
574+ < DropdownMenuSubContent >
575+ < DropdownMenuItem disabled > < Server className = "mr-2 h-4 w-4 text-blue-500" /> VMware vSphere</ DropdownMenuItem >
576+ < DropdownMenuItem disabled > < Server className = "mr-2 h-4 w-4 text-blue-500" /> Microsoft Hyper-V</ DropdownMenuItem >
577+ </ DropdownMenuSubContent >
578+ </ DropdownMenuPortal >
579+ </ DropdownMenuSub >
580+
581+ < DropdownMenuSub >
582+ < DropdownMenuSubTrigger >
583+ < RefreshCw className = "mr-2 h-4 w-4 text-green-500" />
584+ < span > CDP policy</ span >
585+ </ DropdownMenuSubTrigger >
586+ < DropdownMenuPortal >
587+ < DropdownMenuSubContent >
588+ < DropdownMenuItem disabled > < Server className = "mr-2 h-4 w-4 text-blue-500" /> VMware vSphere</ DropdownMenuItem >
589+ < DropdownMenuItem disabled > < RefreshCw className = "mr-2 h-4 w-4 text-green-500" /> Universal CDP</ DropdownMenuItem >
590+ </ DropdownMenuSubContent >
591+ </ DropdownMenuPortal >
592+ </ DropdownMenuSub >
593+
594+ < DropdownMenuSeparator />
595+
596+ < DropdownMenuItem disabled >
597+ < MonitorCheck className = "mr-2 h-4 w-4 text-green-500" />
598+ SureBackup...
599+ </ DropdownMenuItem >
600+
601+ < DropdownMenuSub >
602+ < DropdownMenuSubTrigger >
603+ < Copy className = "mr-2 h-4 w-4 text-green-500" />
604+ < span > Backup copy...</ span >
605+ </ DropdownMenuSubTrigger >
606+ < DropdownMenuPortal >
607+ < DropdownMenuSubContent >
608+ < DropdownMenuItem asChild >
609+ < Link href = "/vbr/jobs/create-backup-copy" className = "cursor-pointer" > Image-level backup</ Link >
610+ </ DropdownMenuItem >
611+ < DropdownMenuItem disabled > Storage copy</ DropdownMenuItem >
612+ </ DropdownMenuSubContent >
613+ </ DropdownMenuPortal >
614+ </ DropdownMenuSub >
615+
616+ < DropdownMenuItem disabled >
617+ < Copy className = "mr-2 h-4 w-4 text-gray-500" />
618+ VM copy...
619+ </ DropdownMenuItem >
620+
621+ < DropdownMenuItem disabled >
622+ < File className = "mr-2 h-4 w-4 text-green-500" />
623+ File copy...
624+ </ DropdownMenuItem >
625+
626+ < DropdownMenuSeparator />
627+
628+ < DropdownMenuItem disabled >
629+ < Filter className = "mr-2 h-4 w-4 text-green-500" />
630+ Add view...
631+ </ DropdownMenuItem >
632+ </ DropdownMenuContent >
633+ </ DropdownMenu >
400634 < Input
401635 placeholder = "Filter jobs..."
402636 value = { ( table . getColumn ( "name" ) ?. getFilterValue ( ) as string ) ?? "" }
0 commit comments