public load()

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;
            });
        });
    }