feat: remove task update functionality from SchedulersTable and clean up related code
Some checks failed
Frontend CI / lint (push) Failing after 18s
Frontend CI / build (push) Has been skipped

This commit is contained in:
JSC
2025-09-21 18:48:05 +02:00
parent dc1124dff6
commit 8945eb6ad6
2 changed files with 15 additions and 57 deletions

View File

@@ -5,7 +5,6 @@ import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu'
import { formatDate } from '@/utils/format-date'
@@ -20,8 +19,6 @@ import {
import {
CalendarClock,
MoreHorizontal,
Pause,
Play,
Square,
} from 'lucide-react'
import { useState } from 'react'
@@ -29,39 +26,29 @@ import { toast } from 'sonner'
interface SchedulersTableProps {
tasks: ScheduledTask[]
onTaskUpdated?: (task: ScheduledTask) => void
onTaskDeleted?: (taskId: number) => void
}
export function SchedulersTable({ tasks, onTaskUpdated, onTaskDeleted }: SchedulersTableProps) {
export function SchedulersTable({ tasks, onTaskDeleted }: SchedulersTableProps) {
const [loadingActions, setLoadingActions] = useState<Record<number, boolean>>({})
const handleToggleActive = async (task: ScheduledTask) => {
if (loadingActions[task.id]) return
try {
setLoadingActions(prev => ({ ...prev, [task.id]: true }))
const updatedTask = await schedulersService.updateTask(task.id, {
is_active: !task.is_active,
})
onTaskUpdated?.(updatedTask)
toast.success(`Task ${task.is_active ? 'paused' : 'resumed'} successfully`)
} catch (error) {
const message = error instanceof Error ? error.message : 'Failed to update task'
toast.error(message)
} finally {
setLoadingActions(prev => ({ ...prev, [task.id]: false }))
}
}
const handleCancelTask = async (task: ScheduledTask) => {
if (loadingActions[task.id]) return
// Confirm deletion
const confirmMessage = `Are you sure you want to delete the task "${task.name}"?${
task.status === 'scheduled' || task.status === 'running'
? '\n\nThis task is currently active and will be stopped immediately.'
: ''
}\n\nThis action cannot be undone.`
if (!confirm(confirmMessage)) {
return
}
try {
setLoadingActions(prev => ({ ...prev, [task.id]: true }))
await schedulersService.cancelTask(task.id)
onTaskDeleted?.(task.id)
toast.success('Task deleted successfully')
@@ -85,7 +72,7 @@ export function SchedulersTable({ tasks, onTaskUpdated, onTaskDeleted }: Schedul
return (
<div className="space-y-4">
{tasks.map((task) => (
<Card key={task.id} className={task.is_active ? '' : 'opacity-60'}>
<Card key={task.id}>
<CardHeader className="pb-3">
<div className="flex items-center justify-between">
<div className="space-y-1">
@@ -94,11 +81,6 @@ export function SchedulersTable({ tasks, onTaskUpdated, onTaskDeleted }: Schedul
<Badge variant={getTaskStatusVariant(task.status)}>
{getTaskStatusLabel(task.status)}
</Badge>
{!task.is_active && (
<Badge variant="outline" className="text-muted-foreground">
Paused
</Badge>
)}
</div>
<p className="text-sm text-muted-foreground">
{getTaskTypeLabel(task.task_type)}
@@ -121,26 +103,8 @@ export function SchedulersTable({ tasks, onTaskUpdated, onTaskDeleted }: Schedul
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
<DropdownMenuItem
onClick={() => handleToggleActive(task)}
disabled={task.status === 'completed' || task.status === 'cancelled'}
>
{task.is_active ? (
<>
<Pause className="h-4 w-4 mr-2" />
Pause Task
</>
) : (
<>
<Play className="h-4 w-4 mr-2" />
Resume Task
</>
)}
</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem
onClick={() => handleCancelTask(task)}
disabled={task.status === 'completed' || task.status === 'cancelled'}
className="text-destructive focus:text-destructive"
>
<Square className="h-4 w-4 mr-2" />