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
This commit is contained in:
alphaeusmote
2025-04-11 03:01:44 +00:00
@@ -90,30 +90,41 @@ export const CronJobBuilder: React.FC<CronJobBuilderProps> = ({
// Update cron expression // Update cron expression
const schedule = newSchedules[index]; const schedule = newSchedules[index];
let cronExpression = '';
switch (schedule.frequency) { // If we're in advanced mode and it's a custom schedule, use the advanced generator
case 'minutely': if (schedule.mode === 'advanced' && schedule.customSchedule) {
cronExpression = '* * * * *'; newSchedules[index].cronExpression = generateAdvancedCronExpression(schedule);
break; } else {
case 'hourly': // Otherwise use the standard frequency-based generator
cronExpression = `${schedule.minute} * * * *`; let cronExpression = '';
break;
case 'daily': switch (schedule.frequency) {
cronExpression = `${schedule.minute} ${schedule.hour} * * *`; case 'minutely':
break; cronExpression = '* * * * *';
case 'weekly': break;
const dayNumber = schedule.dayOfWeek ? weekdays.indexOf(schedule.dayOfWeek) : 0; case 'hourly':
cronExpression = `${schedule.minute} ${schedule.hour} * * ${dayNumber}`; cronExpression = `${schedule.minute} * * * *`;
break; break;
case 'monthly': case 'daily':
const day = schedule.dayOfMonth || 1; cronExpression = `${schedule.minute} ${schedule.hour} * * *`;
cronExpression = `${schedule.minute} ${schedule.hour} ${day} * *`; break;
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); setActiveSchedules(newSchedules);
onSchedulesChange(newSchedules); onSchedulesChange(newSchedules);
}; };
@@ -598,11 +609,7 @@ export const CronJobBuilder: React.FC<CronJobBuilderProps> = ({
updateSchedule(index, { updateSchedule(index, {
minutes: newMinutes, minutes: newMinutes,
customSchedule: true, customSchedule: true
cronExpression: generateAdvancedCronExpression({
...schedule,
minutes: newMinutes
})
}); });
}} }}
> >
@@ -638,11 +645,7 @@ export const CronJobBuilder: React.FC<CronJobBuilderProps> = ({
updateSchedule(index, { updateSchedule(index, {
hours: newHours, hours: newHours,
customSchedule: true, customSchedule: true
cronExpression: generateAdvancedCronExpression({
...schedule,
hours: newHours
})
}); });
}} }}
> >
@@ -678,11 +681,7 @@ export const CronJobBuilder: React.FC<CronJobBuilderProps> = ({
updateSchedule(index, { updateSchedule(index, {
daysOfWeek: newDays, daysOfWeek: newDays,
customSchedule: true, customSchedule: true
cronExpression: generateAdvancedCronExpression({
...schedule,
daysOfWeek: newDays
})
}); });
}} }}
> >
@@ -718,11 +717,7 @@ export const CronJobBuilder: React.FC<CronJobBuilderProps> = ({
updateSchedule(index, { updateSchedule(index, {
daysOfMonth: newDays, daysOfMonth: newDays,
customSchedule: true, customSchedule: true
cronExpression: generateAdvancedCronExpression({
...schedule,
daysOfMonth: newDays
})
}); });
}} }}
> >
@@ -763,11 +758,7 @@ export const CronJobBuilder: React.FC<CronJobBuilderProps> = ({
updateSchedule(index, { updateSchedule(index, {
months: newMonths, months: newMonths,
customSchedule: true, customSchedule: true
cronExpression: generateAdvancedCronExpression({
...schedule,
months: newMonths
})
}); });
}} }}
> >