context = window EventActions = context.EventActions context.EventList = React.createClass({ mixins: [Reflux.listenTo(EventStore, "onEventsChanged")], events: null, getInitialState: function () { return {events: null} }, componentDidMount: function () { }, isModeYours: function() { return this.props.mode == 'yours' }, render: function () { return this.renderAll(); }, renderEvents() { if(!this.state.events || this.state.events.length == 0) { return null; } var items = [] var isModeYours = this.isModeYours(); for(var i = 0; i < this.state.events.length; i++) { var event = this.state.events[i] if(isModeYours && (!!event.authorization || event.allow_in) || !isModeYours && (!event.authorization && !event.allow_in)) { var dynamic = null var thumb = null if(event.img_url) { thumb = dynamic = 'event' } else { dynamic = 'event no-image' } var title = event.title ? event.title : 'Missing event title' title = {title} var when = event.starts_at ?
{new Date(event.starts_at).toLocaleString()}
: null var item =
{thumb}
{title}
{when}
items.push(item) } } return items }, renderAll: function() { var events = this.renderEvents() var headerText = this.isModeYours() ? 'Your Registered Events' : 'All Upcoming Events' if(!events || events.length == 0) { return null; } if(events) { var response =
{headerText}
{events}
return response } else { return
{headerText}
Loading ...
; } }, onEventsChanged: function (allEvents) { var scopedEvents = [] if(this.isModeYours()) { allEvents.events.entries.forEach(function(event) { if (event.authorization || event.allow_in) { scopedEvents.push(event) } }) } else { scopedEvents = allEvents.events.entries } this.setState({events: scopedEvents}) } })