static/js/events-calendar.js (64 lines of code) (raw):

// Update the calendar page from the json file // Where to put things var events = $('#events'); if (!events) { events = $('body').append("<ul id='events'/>"); } // Fetch $.ajax({ type: 'GET', url: encodeURI('/js/calendar-DO-NOT-EDIT.json'), dataType: 'json', success: function (response) { events.empty(); var el = response['items']; let reg = /T.*$/; let official = /(ApacheCon|Roadshow|Community (O|o)ver Code)/; if (el.length > 0) { for (i = 0; i < el.length; i++) { var ev = el[i]; var when = ev.start.dateTime; if (!when) { when = ev.start.date; } when = when.replace(reg,""); if (ev.end) { var end = ev.end.dateTime; if (!end) { end = ev.end.date; } end = end.replace(reg,""); if (end != when) { when = when + " to " + end; } } var link = null; if (ev.description) { var line1 = ev.description.split("\n")[0]; if (line1.slice(0,7) === "http://" || line1.slice(0,8) === "https://" ) { link = line1.trim(); } } var html = "<li>"; if (link) { html += "<a href='" + link + "'>"; } if (ev.summary.match(official)) { html += "<b>" + ev.summary + "</b>"; } else { html += ev.summary; } if (link) { html += "</a>"; } html += " - <i>" + when + "</i>"; if (ev.location) { html += "<br/>"+ev.location; } events.append(html); } } else { events.append("<li><i>No events found, sorry</i></li>"); } }, error: function (response) { events.empty(); events.append("<li><i>Error loading events</i></li>"); console.log(response.responseText); } });