diff --git a/frontend/src/components/ScheduledOperationsView.tsx b/frontend/src/components/ScheduledOperationsView.tsx index aecde342..6ec599b2 100644 --- a/frontend/src/components/ScheduledOperationsView.tsx +++ b/frontend/src/components/ScheduledOperationsView.tsx @@ -9,8 +9,9 @@ import { SystemSheet, SheetSection } from '@/components/ui/system-sheet'; import { TogglePill } from '@/components/ui/toggle-pill'; import { Label } from '@/components/ui/label'; import { Checkbox } from '@/components/ui/checkbox'; -import { Clock, Plus, Pencil, Trash2, History, RefreshCw, Play, ChevronLeft, ChevronRight, Download, CalendarClock, Table2 } from 'lucide-react'; +import { Clock, Plus, Pencil, Trash2, History, RefreshCw, Play, ChevronLeft, ChevronRight, Download, CalendarClock, Table2, Copy } from 'lucide-react'; import { toast } from '@/components/ui/toast-store'; +import { copyToClipboard } from '@/lib/clipboard'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'; import { apiFetch, fetchForNode } from '@/lib/api'; import { Combobox } from '@/components/ui/combobox'; @@ -1058,8 +1059,32 @@ export default function ScheduledOperationsView({ filterNodeId, onClearFilter, p )} {duration} - - {run.error || run.output || '-'} + + + + {run.error || run.output || '-'} + + {(run.output || run.error) ? ( + + + + { + copyToClipboard(run.output || run.error || ''); + toast.info('Copied to clipboard'); + }} + > + + + + Copy details + + + ) : null} + );