Merged develop

This commit is contained in:
Keith Holliday
2017-05-08 08:32:03 -06:00
1057 changed files with 73646 additions and 59862 deletions

View File

@@ -32,8 +32,8 @@ function sanitizeOptions (o) {
let dayStart = !Number.isNaN(ref) && ref >= 0 && ref <= 24 ? ref : 0;
let timezoneOffset;
let timezoneOffsetDefault = Number(moment().zone());
if (Number.isFinite(o.timezoneOffsetOverride)) {
let timezoneOffsetDefault = Number(moment().utcOffset());
if (_.isFinite(o.timezoneOffsetOverride)) {
timezoneOffset = Number(o.timezoneOffsetOverride);
} else if (Number.isFinite(o.timezoneOffset)) {
timezoneOffset = Number(o.timezoneOffset);
@@ -45,7 +45,7 @@ function sanitizeOptions (o) {
timezoneOffset = timezoneOffsetDefault;
}
let now = o.now ? moment(o.now).zone(timezoneOffset) : moment().zone(timezoneOffset);
let now = o.now ? moment(o.now).utcOffset(timezoneOffset) : moment().utcOffset(timezoneOffset);
// return a new object, we don't want to add "now" to user object
return {
@@ -92,13 +92,16 @@ export function daysSince (yesterday, options = {}) {
Should the user do this task on this date, given the task's repeat options and user.preferences.dayStart?
*/
export function shouldDo (day, dailyTask) {
export function shouldDo (day, dailyTask, options = {}) {
if (dailyTask.type !== 'daily') {
return false;
}
day = moment(day).startOf('day').toDate();
let startDate = moment(dailyTask.startDate).startOf('day').toDate();
let o = sanitizeOptions(options);
let startOfDayWithCDSTime = startOfDay(_.defaults({ now: day }, o));
// The time portion of the Start Date is never visible to or modifiable by the user so we must ignore it.
// Therefore, we must also ignore the time portion of the user's day start (startOfDayWithCDSTime), otherwise the date comparison will be wrong for some times.
// NB: The user's day start date has already been converted to the PREVIOUS day's date if the time portion was before CDS.
let startDate = moment(dailyTask.startDate).utcOffset(o.timezoneOffset);
let daysOfTheWeek = [];