From 3d399a0652488f6baa759adae1ce9e12db51c118 Mon Sep 17 00:00:00 2001 From: alphaeusmote <41258468-alphaeusmote@users.noreply.replit.com> Date: Fri, 11 Apr 2025 03:01:44 +0000 Subject: [PATCH] Fix cron expression updates in dynamic group scheduling Replit-Commit-Author: Agent Replit-Commit-Session-Id: 705f2157-ef97-4fbd-89e4-8c7f2ecaea90 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7ed01c5f-a82d-405a-b728-b2e3d127c60c/84a9ea23-1975-4d94-9bee-0bd122ed0481.jpg --- .../dynamic-groups/cron-job-builder.tsx | 83 +++++++++---------- 1 file changed, 37 insertions(+), 46 deletions(-) diff --git a/client/src/components/dynamic-groups/cron-job-builder.tsx b/client/src/components/dynamic-groups/cron-job-builder.tsx index 6ed2a58..e3b8fe5 100644 --- a/client/src/components/dynamic-groups/cron-job-builder.tsx +++ b/client/src/components/dynamic-groups/cron-job-builder.tsx @@ -90,30 +90,41 @@ export const CronJobBuilder: React.FC = ({ // Update cron expression const schedule = newSchedules[index]; - let cronExpression = ''; - switch (schedule.frequency) { - case 'minutely': - cronExpression = '* * * * *'; - break; - case 'hourly': - cronExpression = `${schedule.minute} * * * *`; - break; - case 'daily': - cronExpression = `${schedule.minute} ${schedule.hour} * * *`; - break; - case 'weekly': - const dayNumber = schedule.dayOfWeek ? weekdays.indexOf(schedule.dayOfWeek) : 0; - cronExpression = `${schedule.minute} ${schedule.hour} * * ${dayNumber}`; - break; - case 'monthly': - const day = schedule.dayOfMonth || 1; - cronExpression = `${schedule.minute} ${schedule.hour} ${day} * *`; - break; + // If we're in advanced mode and it's a custom schedule, use the advanced generator + if (schedule.mode === 'advanced' && schedule.customSchedule) { + newSchedules[index].cronExpression = generateAdvancedCronExpression(schedule); + } else { + // Otherwise use the standard frequency-based generator + let cronExpression = ''; + + switch (schedule.frequency) { + case 'minutely': + cronExpression = '* * * * *'; + break; + case 'hourly': + cronExpression = `${schedule.minute} * * * *`; + break; + case 'daily': + cronExpression = `${schedule.minute} ${schedule.hour} * * *`; + break; + case 'weekly': + const dayNumber = schedule.dayOfWeek ? weekdays.indexOf(schedule.dayOfWeek) : 0; + cronExpression = `${schedule.minute} ${schedule.hour} * * ${dayNumber}`; + break; + case 'monthly': + const day = schedule.dayOfMonth || 1; + cronExpression = `${schedule.minute} ${schedule.hour} ${day} * *`; + break; + case 'custom': + // For custom schedules, if there's no existing cron expression, use a default + cronExpression = schedule.cronExpression || '0 0 * * *'; + break; + } + + newSchedules[index].cronExpression = cronExpression; } - newSchedules[index].cronExpression = cronExpression; - setActiveSchedules(newSchedules); onSchedulesChange(newSchedules); }; @@ -598,11 +609,7 @@ export const CronJobBuilder: React.FC = ({ updateSchedule(index, { minutes: newMinutes, - customSchedule: true, - cronExpression: generateAdvancedCronExpression({ - ...schedule, - minutes: newMinutes - }) + customSchedule: true }); }} > @@ -638,11 +645,7 @@ export const CronJobBuilder: React.FC = ({ updateSchedule(index, { hours: newHours, - customSchedule: true, - cronExpression: generateAdvancedCronExpression({ - ...schedule, - hours: newHours - }) + customSchedule: true }); }} > @@ -678,11 +681,7 @@ export const CronJobBuilder: React.FC = ({ updateSchedule(index, { daysOfWeek: newDays, - customSchedule: true, - cronExpression: generateAdvancedCronExpression({ - ...schedule, - daysOfWeek: newDays - }) + customSchedule: true }); }} > @@ -718,11 +717,7 @@ export const CronJobBuilder: React.FC = ({ updateSchedule(index, { daysOfMonth: newDays, - customSchedule: true, - cronExpression: generateAdvancedCronExpression({ - ...schedule, - daysOfMonth: newDays - }) + customSchedule: true }); }} > @@ -763,11 +758,7 @@ export const CronJobBuilder: React.FC = ({ updateSchedule(index, { months: newMonths, - customSchedule: true, - cronExpression: generateAdvancedCronExpression({ - ...schedule, - months: newMonths - }) + customSchedule: true }); }} >