Fix remaining multi-weekday recurrence bugs (#838)
This commit is contained in:
parent
ca5bd127b8
commit
65943e7599
2 changed files with 23 additions and 1 deletions
|
|
@ -148,7 +148,24 @@ async function calculateNextIterations(task, startFromDate, userTimezone) {
|
|||
);
|
||||
} else if (task.recurrence_type === 'weekly') {
|
||||
const interval = task.recurrence_interval || 1;
|
||||
if (
|
||||
if (task.recurrence_weekdays) {
|
||||
const weekdays = Array.isArray(task.recurrence_weekdays)
|
||||
? task.recurrence_weekdays
|
||||
: JSON.parse(task.recurrence_weekdays);
|
||||
let found = false;
|
||||
for (let daysAhead = 1; daysAhead <= 7; daysAhead++) {
|
||||
const testDate = new Date(nextDate);
|
||||
testDate.setUTCDate(testDate.getUTCDate() + daysAhead);
|
||||
if (weekdays.includes(testDate.getUTCDay())) {
|
||||
nextDate = testDate;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
nextDate.setUTCDate(nextDate.getUTCDate() + interval * 7);
|
||||
}
|
||||
} else if (
|
||||
task.recurrence_weekday !== null &&
|
||||
task.recurrence_weekday !== undefined
|
||||
) {
|
||||
|
|
|
|||
|
|
@ -461,6 +461,7 @@ router.patch('/task/:uid', requireTaskWriteAccess, async (req, res) => {
|
|||
recurrence_interval,
|
||||
recurrence_end_date,
|
||||
recurrence_weekday,
|
||||
recurrence_weekdays,
|
||||
recurrence_month_day,
|
||||
recurrence_week_of_month,
|
||||
completion_based,
|
||||
|
|
@ -504,6 +505,10 @@ router.patch('/task/:uid', requireTaskWriteAccess, async (req, res) => {
|
|||
recurrence_weekday !== undefined
|
||||
? recurrence_weekday
|
||||
: parentTask.recurrence_weekday,
|
||||
recurrence_weekdays:
|
||||
recurrence_weekdays !== undefined
|
||||
? recurrence_weekdays
|
||||
: parentTask.recurrence_weekdays,
|
||||
recurrence_month_day:
|
||||
recurrence_month_day !== undefined
|
||||
? recurrence_month_day
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue