MCPcopy Create free account
hub / github.com/allasca/allasca.github.io / fetchData

Function fetchData

themes/next/source/js/schedule.js:95–131  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

93 }
94
95 function fetchData() {
96 const eventList = document.querySelector('.event-list');
97 if (!eventList) return;
98
99 fetch(request_url.href).then(response => {
100 return response.json();
101 }).then(data => {
102 if (data.items.length === 0) {
103 eventList.innerHTML = '<hr>';
104 return;
105 }
106 // Clean the event list
107 eventList.innerHTML = '';
108 let prevEnd = 0; // used to decide where to insert an <hr>
109 const utc = new Date().getTimezoneOffset() * 60000;
110
111 data.items.forEach(event => {
112 // Parse data
113 const start = new Date(event.start.dateTime || (new Date(event.start.date).getTime() + utc));
114 const end = new Date(event.end.dateTime || (new Date(event.end.date).getTime() + utc));
115
116 let tense = 'now';
117 if (end < now) {
118 tense = 'past';
119 } else if (start > now) {
120 tense = 'future';
121 }
122
123 if (tense === 'future' && prevEnd < now) {
124 eventList.insertAdjacentHTML('beforeend', '<hr>');
125 }
126
127 eventList.insertAdjacentHTML('beforeend', buildEventDOM(tense, event, start, end));
128 prevEnd = end;
129 });
130 });
131 }
132
133 fetchData();
134 const fetchDataTimer = setInterval(fetchData, 60000);

Callers 1

schedule.jsFile · 0.70

Calls 1

buildEventDOMFunction · 0.85

Tested by

no test coverage detected