From b94ca1d53bbb5a6901a3207d41ba28536c53b609 Mon Sep 17 00:00:00 2001 From: Ivan Vasilov Date: Fri, 16 May 2025 11:49:29 +0200 Subject: [PATCH] fix: Minor fixes for the Cron integration (#35674) * Fix the CronJob type because its name is optional. * The Job previous runs page should be identified by job id, not job name because it can be undefined. Fix the tabs to show the job name by using additional query param. * Add a tooltip explaining that cron jobs without names can't be edited. * The parser for cron jobs should handle URLS with query params or hashes. * Remove the .only description from the tests. * Show Unknown for cron jobs which have "" as name. * Fix a crash when a cron job has "1 second" (singular) as schedule. * Calculate the next run properly when the schedule is "1 second". * Show a simplified confirm modal when deleting a cron job without a name. --- .../Integrations/CronJobs/CronJobCard.tsx | 49 ++++++++++++------- .../CronJobs/CronJobs.utils.test.ts | 45 ++++++++++++++++- .../Integrations/CronJobs/CronJobs.utils.ts | 27 +++++++--- .../Integrations/CronJobs/DeleteCronJob.tsx | 17 +++++++ .../Integrations/CronJobs/PreviousRunsTab.tsx | 15 +++--- .../components/layouts/Integrations/tabs.tsx | 6 ++- .../database-cron-jobs-query.ts | 2 +- 7 files changed, 127 insertions(+), 34 deletions(-) diff --git a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobCard.tsx b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobCard.tsx index 879ffd756e4..22f57fd3754 100644 --- a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobCard.tsx +++ b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobCard.tsx @@ -22,6 +22,9 @@ import { DropdownMenuTrigger, Label_Shadcn_, Switch, + Tooltip, + TooltipContent, + TooltipTrigger, } from 'ui' import { TimestampInfo } from 'ui-patterns' import { Input } from 'ui-patterns/DataInputs/Input' @@ -53,6 +56,17 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard const { mutate: sendEvent } = useSendEventMutation() const { mutate: toggleDatabaseCronJob, isLoading } = useDatabaseCronJobToggleMutation() + const onEdit = () => { + sendEvent({ + action: 'cron_job_update_clicked', + groups: { + project: selectedProject?.ref ?? 'Unknown', + organization: org?.slug ?? 'Unknown', + }, + }) + onEditCronJob(job) + } + return ( <>
@@ -64,10 +78,10 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard - {job.jobname ?? 'No name provided'} + {job.jobname || 'No name provided'}
{isLoading ? ( @@ -102,7 +116,7 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard }} > History @@ -112,20 +126,21 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard