in legacy/src/Calendar/EventSources/FreeFormEventsSource.ts [31:66]
public load(): PromiseLike<Calendar_Contracts.CalendarEvent[]> {
return this.getCategories().then((categories: Calendar_Contracts.IEventCategory[]) => {
return this.getEvents().then((events: Calendar_Contracts.CalendarEvent[]) => {
const updatedEvents: Calendar_Contracts.CalendarEvent[] = [];
for (const event of events) {
// For now, skip events with date strngs we can't parse.
if (Date.parse(event.startDate) && Date.parse(event.endDate)) {
// update legacy events to match new contract
event.movable = true;
const category = event.category;
if (!category || typeof category === "string") {
event.category = <Calendar_Contracts.IEventCategory>{
title: category || "Uncategorized",
id: this.id + "." + category || "Uncategorized",
};
this._updateCategoryForEvents([event]);
}
// fix times
const start = Utils_Date.shiftToUTC(new Date(event.startDate));
const end = Utils_Date.shiftToUTC(new Date(event.endDate));
if (start.getHours() !== 0) {
// Set dates back to midnight
start.setHours(0);
end.setHours(0);
// update the event in the list
event.startDate = Utils_Date.shiftToLocal(start).toISOString();
event.endDate = Utils_Date.shiftToLocal(end).toISOString();
this.updateEvent(null, event);
}
updatedEvents.push(event);
}
}
return updatedEvents;
});
});
}