diff --git a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobRunsDataGrid.tsx b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobRunsDataGrid.tsx index 1df2da4c402..bda930cb9d4 100644 --- a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobRunsDataGrid.tsx +++ b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobRunsDataGrid.tsx @@ -1,6 +1,7 @@ import { ChevronRight, List, Timer } from 'lucide-react' import { useRef } from 'react' import DataGrid, { Column, DataGridHandle, Row } from 'react-data-grid' +import { motion } from 'framer-motion' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' import { useParams } from 'common' @@ -62,7 +63,7 @@ const CronJobRunsDataGrid = ({ updateJobState }: CronJobsDataGridProps) => { { id: 'runid', name: 'RunID', - minWidth: 100, + minWidth: 60, value: (row: CronJobRun) => (

{row.runid}

@@ -179,10 +180,15 @@ const CronJobRunsDataGrid = ({ updateJobState }: CronJobsDataGridProps) => { {currentJobState && ( <> - + {currentJobState?.jobname} - + )}
diff --git a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobs.constants.tsx b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobs.constants.tsx index ec4039916f0..94fe857cba3 100644 --- a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobs.constants.tsx +++ b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobs.constants.tsx @@ -11,26 +11,26 @@ export const CRONJOB_TYPES = [ export const CRONJOB_DEFINITIONS = [ { value: 'sql_snippet', - icon: , + icon: , label: 'SQL Snippet', description: 'Write a SQL snippet to run.', }, { value: 'sql_function', - icon: , + icon: , label: 'Postgres SQL Function', description: 'Choose a Postgres SQL functions to run.', }, { value: 'http_request', - icon: , + icon: , label: 'HTTP Request', description: 'Send an HTTP request to any URL.', }, { value: 'edge_function', - icon: , + icon: , label: 'Supabase Edge Function', description: 'Choose a Supabase edge function to run.', }, diff --git a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsDataGrid.tsx b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsDataGrid.tsx index 9ffc836ddbb..0b67a2e770b 100644 --- a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsDataGrid.tsx +++ b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsDataGrid.tsx @@ -21,9 +21,10 @@ import { import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal' import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader' import { CreateCronJobSheet } from './CreateCronJobSheet' -import { computeNextRunFromCurrentTime } from './CronJobs.utils' +import { computeNextRunFromCurrentTime, parseCronJobCommand } from './CronJobs.utils' import CronJobsEmptyState from './CronJobsEmptyState' import DeleteCronJob from './DeleteCronJob' +import { CRONJOB_DEFINITIONS } from './CronJobs.constants' interface CronJobsDataGridProps { jobState: { jobId: string; selectedJob: CronJob | null } @@ -83,15 +84,24 @@ const CronJobsDataGrid = ({ jobState, updateJobState }: CronJobsDataGridProps) = minWidth: 120, value: (row: CronJob) =>
{row.schedule}
, }, - { - id: 'next_run', - name: 'Next Run', - minWidth: 150, - value: (row: CronJob) => ( -
{computeNextRunFromCurrentTime(row.schedule, currentTime)}
- ), - }, + { + id: 'type', + name: 'Type', + minWidth: 70, + value: (row: CronJob) => { + const cronJobType = parseCronJobCommand(row.command).type + const definition = CRONJOB_DEFINITIONS.find((def) => def.value === cronJobType) + return ( + + +
{definition?.icon}
+
+ {definition?.label || cronJobType} +
+ ) + }, + }, { id: 'command', name: 'Command', @@ -124,11 +134,20 @@ const CronJobsDataGrid = ({ jobState, updateJobState }: CronJobsDataGridProps) = name: 'Status', minWidth: 100, value: (row: CronJob) => ( - + {row.active ? 'Active' : 'Inactive'} ), }, + { + id: 'next_run', + name: 'Next Run', + minWidth: 150, + value: (row: CronJob) => ( +
{computeNextRunFromCurrentTime(row.schedule, currentTime)}
+ ), + }, + { id: 'edit', name: '',