import * as events from '../models/events'; const m = require('mithril'); const date = `${new Date().toISOString().split('.')[0]}Z`; export default class EventList { static oninit() { events.load({ where: { time_advertising_start: { $lte: date }, time_advertising_end: { $gte: date }, show_website: true, }, sort: ['-priority', 'time_advertising_start'], }); } static onbeforeupdate(vnode, old) { // when attrs are different it means we changed route if (vnode.attrs.id !== old.attrs.id) { events.reload(); } } static view() { return m('table', [ m('thead', [ m('tr', [ m('th', 'Title'), m('th', 'Starting time'), m('th', 'Signup count'), m('th', 'Spots'), ]), ]), m('tbody', events.getList().map(event => m('tr', [ m('td', event.title), m('td', event.time_start), m('td', event.signup_count), m('td', event.spots), m('td', m('a', { href: `/events/${event._id}`, oncreate: m.route.link }, 'Details')), ]))), ]); } }