Merge pull request #36 from c-base/calendarJson

Remove calendar script workaround
This commit is contained in:
Henri Bergius 2019-01-29 20:27:54 +01:00 committed by GitHub
commit 169759264f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 69 additions and 64 deletions

View file

@ -3,74 +3,80 @@ import '../elements/time';
function getEvents(number, callback) {
const now = new Date();
const allEvents = window.c_base_events.concat(window.c_base_regulars, window.c_base_seminars);
const current = allEvents.filter((event) => {
if (event.id === 45) {
return false;
}
const start = new Date(event.start);
if ((!event.data || event.allDay) && start.toDateString() !== now.toDateString()) {
return false;
}
const end = new Date(event.end);
if (start > now) {
return false;
}
if (end < now) {
return false;
}
return true;
});
const upcoming = allEvents.filter((event) => {
if (event.id === 45) {
return false;
}
const start = new Date(event.start);
if (start > now) {
return true;
}
return false;
});
fetch('https://launchlibrary.net/1.3/launch/next/2')
fetch('/../calendar')
.then(res => res.json())
.then((res) => {
const launches = res.launches.map((launch) => {
const start = new Date(launch.windowstart);
const end = new Date(launch.windowend);
return {
allDay: false,
start: start.toISOString(),
end: end.toISOString(),
title: launch.name,
id: launch.lsp.abbrev,
type: 'launch',
};
.then((calendars) => {
const allEvents = calendars.c_base_events.concat(
calendars.c_base_regulars, calendars.c_base_seminars,
);
const current = allEvents.filter((event) => {
if (event.id === 45) {
return false;
}
const start = new Date(event.start);
if ((!event.data || event.allDay) && start.toDateString() !== now.toDateString()) {
return false;
}
const end = new Date(event.end);
if (start > now) {
return false;
}
if (end < now) {
return false;
}
return true;
});
const events = current.concat(upcoming, launches);
events.sort((a, b) => {
if (a.start < b.start) {
return -1;
const upcoming = allEvents.filter((event) => {
if (event.id === 45) {
return false;
}
if (a.start > b.start) {
return 1;
const start = new Date(event.start);
if (start > now) {
return true;
}
return 0;
return false;
});
return callback(events.slice(0, number));
})
.catch(() => {
const events = current.concat(upcoming);
events.sort((a, b) => {
if (a.start < b.start) {
return -1;
}
if (a.start > b.start) {
return 1;
}
return 0;
});
return callback(events.slice(0, number));
fetch('https://launchlibrary.net/1.3/launch/next/2')
.then(res => res.json())
.then((res) => {
const launches = res.launches.map((launch) => {
const start = new Date(launch.windowstart);
const end = new Date(launch.windowend);
return {
allDay: false,
start: start.toISOString(),
end: end.toISOString(),
title: launch.name,
id: launch.lsp.abbrev,
type: 'launch',
};
});
const events = current.concat(upcoming, launches);
events.sort((a, b) => {
if (a.start < b.start) {
return -1;
}
if (a.start > b.start) {
return 1;
}
return 0;
});
return callback(events.slice(0, number));
})
.catch(() => {
const events = current.concat(upcoming);
events.sort((a, b) => {
if (a.start < b.start) {
return -1;
}
if (a.start > b.start) {
return 1;
}
return 0;
});
return callback(events.slice(0, number));
});
});
}

View file

@ -5,7 +5,6 @@
<title>c-base event calendar</title>
<script src="../vendor/webcomponentsjs/webcomponents-lite.js"></script>
<script src="../vendor/webcomponentsjs/custom-elements-es5-adapter.js"></script>
<script src="https://www.c-base.org/calendar/exported/events.js"></script>
<script src="../lib/calendar.js"></script>
<link rel="stylesheet" href="../theme/c-base.css">
<style>