platypush/platypush/backend/http/static/js/widgets/calendar/index.js

38 lines
926 B
JavaScript

Vue.component('calendar', {
template: '#tmpl-widget-calendar',
props: ['config'],
data: function() {
return {
events: [],
};
},
methods: {
refresh: async function() {
this.events = (await request('calendar.get_upcoming_events')).map(event => {
if (event.start)
event.start = new Date(event.start.dateTime || event.start.date);
if (event.end)
event.end = new Date(event.end.dateTime || event.end.date);
return event;
});
},
formatDate: function(date) {
return date.toDateString().substring(0, 10);
},
formatTime: function(date) {
return date.toTimeString().substring(0, 5);
},
},
mounted: function() {
this.refresh();
setInterval(this.refresh, 600000);
},
});