Skip to content

Commit

Permalink
feat: Implementing infinityModel at public session route (#4022)
Browse files Browse the repository at this point in the history
  • Loading branch information
kushthedude authored Feb 7, 2020
1 parent 7d86eac commit a8aac00
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 146 deletions.
187 changes: 41 additions & 146 deletions app/routes/public/sessions/list.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,169 +16,64 @@ export default Route.extend({
},
async model(params) {
const eventDetails = this.modelFor('public');
let sessions = null;
if (params.session_status === 'today') {
sessions = await this.store.query('session', {
filter: [
const filterOptions = [
{
and: [
{
and: [
{
name : 'event',
op : 'has',
val : {
name : 'identifier',
op : 'eq',
val : eventDetails.id
}
},
{
name : 'starts-at',
op : 'ge',
val : moment().startOf('day').toISOString()
},
{
name : 'starts-at',
op : 'lt',
val : moment().endOf('day').toISOString()
},
{
or: [
{
name : 'state',
op : 'eq',
val : 'confirmed'
},
{
name : 'state',
op : 'eq',
val : 'accepted'
}
]
}
]
}
]
});
} else if (params.session_status === 'week') {
sessions = await this.store.query('session', {
filter: [
name : 'event',
op : 'has',
val : {
name : 'identifier',
op : 'eq',
val : eventDetails.id
}
},
{
and: [
or: [
{
name : 'event',
op : 'has',
val : {
name : 'identifier',
op : 'eq',
val : eventDetails.id
}
name : 'state',
op : 'eq',
val : 'confirmed'
},
{
name : 'starts-at',
op : 'ge',
val : moment().startOf('week').toISOString()
},
{
name : 'starts-at',
op : 'lt',
val : moment().endOf('week').toISOString()
},
{
or: [
{
name : 'state',
op : 'eq',
val : 'confirmed'
},
{
name : 'state',
op : 'eq',
val : 'accepted'
}
]
name : 'state',
op : 'eq',
val : 'accepted'
}
]
}
]
});
} else if (params.session_status === 'month') {
sessions = await this.store.query('session', {
filter: [
}
];

if (params.session_status !== 'all') {

const period = params.session_status === 'today' ? 'day' : params.session_status;
filterOptions.push({
and: [
{
and: [
{
name : 'event',
op : 'has',
val : {
name : 'identifier',
op : 'eq',
val : eventDetails.id
}
},
{
name : 'starts-at',
op : 'ge',
val : moment().startOf('month').toISOString()
},
{
name : 'starts-at',
op : 'lt',
val : moment().add('month').toISOString()
},
{
or: [
{
name : 'state',
op : 'eq',
val : 'confirmed'
},
{
name : 'state',
op : 'eq',
val : 'accepted'
}
]
}
]
}
]
});
} else {
sessions = await this.store.query('session', {
filter: [
name : 'starts-at',
op : 'ge',
val : moment().startOf(period).toISOString()
},
{
and: [
{
name : 'event',
op : 'has',
val : {
name : 'identifier',
op : 'eq',
val : eventDetails.id
}
},
{
or: [
{
name : 'state',
op : 'eq',
val : 'confirmed'
},
{
name : 'state',
op : 'eq',
val : 'accepted'
}
]
}
]
name : 'starts-at',
op : 'lt',
val : moment().endOf(period).toISOString()
}
]
});

}
return {
event : eventDetails,
session : sessions
session : await this.infinity.model('session', {
filter : filterOptions,
perPage : 6,
startingPage : 1,
perPageParam : 'page[size]',
pageParam : 'page[number]'
})
};
}
});
6 changes: 6 additions & 0 deletions app/templates/public/sessions/list.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,10 @@
{{else}}
<div class="ui disabled header">{{t 'No Sessions exist for this time period'}}</div>
{{/each}}
{{#infinity-loader infinityModel=model.session triggerOffset=300 eventDebounce=50}}
<div class="center aligned five wide column">
<div class="ui loading very padded basic segment">
</div>
</div>
{{/infinity-loader}}
</div>

0 comments on commit a8aac00

Please sign in to comment.