mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 06:37:23 +01:00
Fix assigning end date to content schedule items
This commit is contained in:
@@ -839,16 +839,24 @@ export function getScheduleMatchingGroup (type, date) {
|
|||||||
const checkedDate = date || new Date();
|
const checkedDate = date || new Date();
|
||||||
if (cacheDate !== null && (getDay(checkedDate) !== getDay(cacheDate)
|
if (cacheDate !== null && (getDay(checkedDate) !== getDay(cacheDate)
|
||||||
|| getMonth(checkedDate) !== getMonth(cacheDate))) {
|
|| getMonth(checkedDate) !== getMonth(cacheDate))) {
|
||||||
|
// Clear cached matchers, since they are old
|
||||||
cacheDate = null;
|
cacheDate = null;
|
||||||
cachedScheduleMatchers = null;
|
cachedScheduleMatchers = null;
|
||||||
}
|
}
|
||||||
if (!cachedScheduleMatchers) {
|
if (!cachedScheduleMatchers) {
|
||||||
|
// No matchers exist, make new ones
|
||||||
cacheDate = new Date();
|
cacheDate = new Date();
|
||||||
cachedScheduleMatchers = {};
|
cachedScheduleMatchers = {};
|
||||||
assembleScheduledMatchers(checkedDate).forEach(matcher => {
|
assembleScheduledMatchers(checkedDate).forEach(matcher => {
|
||||||
if (!cachedScheduleMatchers[matcher.type]) {
|
if (!cachedScheduleMatchers[matcher.type]) {
|
||||||
cachedScheduleMatchers[matcher.type] = makeMatcherClass();
|
cachedScheduleMatchers[matcher.type] = makeMatcherClass();
|
||||||
}
|
}
|
||||||
|
const end = moment(checkedDate);
|
||||||
|
end.date(TYPE_SCHEDULE[type]);
|
||||||
|
if (end.date() <= moment(checkedDate).date()) {
|
||||||
|
moment(end).add(1, 'months');
|
||||||
|
}
|
||||||
|
cachedScheduleMatchers[matcher.type].end = end.toDate();
|
||||||
if (matcher.matcher instanceof Function) {
|
if (matcher.matcher instanceof Function) {
|
||||||
cachedScheduleMatchers[matcher.type].matchers.push(matcher.matcher);
|
cachedScheduleMatchers[matcher.type].matchers.push(matcher.matcher);
|
||||||
} else if (matcher.items instanceof Array) {
|
} else if (matcher.items instanceof Array) {
|
||||||
@@ -857,13 +865,8 @@ export function getScheduleMatchingGroup (type, date) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (!cachedScheduleMatchers[type]) {
|
if (!cachedScheduleMatchers[type]) {
|
||||||
let end = moment(checkedDate);
|
// No matchers exist for this type
|
||||||
end.date(TYPE_SCHEDULE[type]);
|
|
||||||
if (end.date() <= moment(checkedDate).date()) {
|
|
||||||
moment(end).add(1, 'months');
|
|
||||||
}
|
|
||||||
return {
|
return {
|
||||||
end: end.toDate(),
|
|
||||||
items: [],
|
items: [],
|
||||||
match () {
|
match () {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user