From a8aac003f5d476e9914830aeb5f93601dd9504e9 Mon Sep 17 00:00:00 2001 From: Kush Trivedi <44091822+kushthedude@users.noreply.github.com> Date: Fri, 7 Feb 2020 19:53:59 +0530 Subject: [PATCH] feat: Implementing infinityModel at public session route (#4022) --- app/routes/public/sessions/list.js | 187 ++++++------------------- app/templates/public/sessions/list.hbs | 6 + 2 files changed, 47 insertions(+), 146 deletions(-) diff --git a/app/routes/public/sessions/list.js b/app/routes/public/sessions/list.js index 78e5612d6e3..4a309ccaf8c 100644 --- a/app/routes/public/sessions/list.js +++ b/app/routes/public/sessions/list.js @@ -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]' + }) }; } }); diff --git a/app/templates/public/sessions/list.hbs b/app/templates/public/sessions/list.hbs index 8d7da621bd6..e158c138dab 100644 --- a/app/templates/public/sessions/list.hbs +++ b/app/templates/public/sessions/list.hbs @@ -10,4 +10,10 @@ {{else}}
{{t 'No Sessions exist for this time period'}}
{{/each}} + {{#infinity-loader infinityModel=model.session triggerOffset=300 eventDebounce=50}} +
+
+
+
+ {{/infinity-loader}} \ No newline at end of file