var color_counter = 0; var { calendar_fade_time, button_delay } = Timing; var saved_courses = []; var curr_course = {} $("#calendar").after(Template.Calendar.modal()); chrome.storage.sync.get("savedCourses", function (data) { // Iterate through each saved course and add to 'event' saved_courses = data.savedCourses; let event_source = buildEventSource(saved_courses); $("#calendar").fullCalendar({ editable: false, // Don't allow editing of events handleWindowResize: true, weekends: false, // will hide Saturdays and Sundays slotDuration: "00:30:00", // 15 minute intervals on vertical column slotEventOverlap: false, // No overlapping between events defaultView: "agendaWeek", // Only show week view header: false, // Hide buttons/titles minTime: "08:00:00", // Start time maxTime: "21:00:01", // End time columnHeaderFormat: "ddd", // Only show day of the week names displayEventTime: true, // Display event time allDaySlot: false, Duration: { hours: 1 }, height: 'auto', events: event_source, slotLabelFormat: [ 'h:mm A' // lower level of text ], eventRender: function (event, element, view) { $(element).css("padding", "5px").css("margin-bottom", "5px"); }, eventClick: function (data, event, view) { displayModal(data) } }); }); function displayModal(data) { $("#myModal").fadeIn(calendar_fade_time); $("#colorStrip").css('background-color', data.color); curr_course = saved_courses[data.index]; setUpModal() } function setUpModal() { let { coursename, unique, datetimearr, profname, status, registerlink } = curr_course; $("#classname").html(`${coursename} (${unique})`); buildTimeTitle(datetimearr); $("#prof").html(`with ${capitalizeString(profname)}`); setRegisterButton(status, registerlink) } function setRegisterButton(status, registerlink) { if (canNotRegister(status, registerlink)) $("#register").text("Can't Register").css("background-color", Colors.closed); else if (status.includes("waitlisted")) $("#register").text("Join Waitlist").css("background-color", Colors.waitlisted); else $("#register").text("Register").css("background-color", Colors.open); } function buildTimeTitle(datetimearr) { $('#timelines').remove(); var arr = convertDateTimeArrToLine(datetimearr) var output = ""; for (let i = 0; i < arr.length; i++) { let line = arr[i]; output += Template.Calendar.line(line); } $("#header").after(`