Skip to content

Commit a8aac00

Browse files
authored
feat: Implementing infinityModel at public session route (#4022)
1 parent 7d86eac commit a8aac00

File tree

2 files changed

+47
-146
lines changed

2 files changed

+47
-146
lines changed

app/routes/public/sessions/list.js

Lines changed: 41 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -16,169 +16,64 @@ export default Route.extend({
1616
},
1717
async model(params) {
1818
const eventDetails = this.modelFor('public');
19-
let sessions = null;
20-
if (params.session_status === 'today') {
21-
sessions = await this.store.query('session', {
22-
filter: [
19+
const filterOptions = [
20+
{
21+
and: [
2322
{
24-
and: [
25-
{
26-
name : 'event',
27-
op : 'has',
28-
val : {
29-
name : 'identifier',
30-
op : 'eq',
31-
val : eventDetails.id
32-
}
33-
},
34-
{
35-
name : 'starts-at',
36-
op : 'ge',
37-
val : moment().startOf('day').toISOString()
38-
},
39-
{
40-
name : 'starts-at',
41-
op : 'lt',
42-
val : moment().endOf('day').toISOString()
43-
},
44-
{
45-
or: [
46-
{
47-
name : 'state',
48-
op : 'eq',
49-
val : 'confirmed'
50-
},
51-
{
52-
name : 'state',
53-
op : 'eq',
54-
val : 'accepted'
55-
}
56-
]
57-
}
58-
]
59-
}
60-
]
61-
});
62-
} else if (params.session_status === 'week') {
63-
sessions = await this.store.query('session', {
64-
filter: [
23+
name : 'event',
24+
op : 'has',
25+
val : {
26+
name : 'identifier',
27+
op : 'eq',
28+
val : eventDetails.id
29+
}
30+
},
6531
{
66-
and: [
32+
or: [
6733
{
68-
name : 'event',
69-
op : 'has',
70-
val : {
71-
name : 'identifier',
72-
op : 'eq',
73-
val : eventDetails.id
74-
}
34+
name : 'state',
35+
op : 'eq',
36+
val : 'confirmed'
7537
},
7638
{
77-
name : 'starts-at',
78-
op : 'ge',
79-
val : moment().startOf('week').toISOString()
80-
},
81-
{
82-
name : 'starts-at',
83-
op : 'lt',
84-
val : moment().endOf('week').toISOString()
85-
},
86-
{
87-
or: [
88-
{
89-
name : 'state',
90-
op : 'eq',
91-
val : 'confirmed'
92-
},
93-
{
94-
name : 'state',
95-
op : 'eq',
96-
val : 'accepted'
97-
}
98-
]
39+
name : 'state',
40+
op : 'eq',
41+
val : 'accepted'
9942
}
10043
]
10144
}
10245
]
103-
});
104-
} else if (params.session_status === 'month') {
105-
sessions = await this.store.query('session', {
106-
filter: [
46+
}
47+
];
48+
49+
if (params.session_status !== 'all') {
50+
51+
const period = params.session_status === 'today' ? 'day' : params.session_status;
52+
filterOptions.push({
53+
and: [
10754
{
108-
and: [
109-
{
110-
name : 'event',
111-
op : 'has',
112-
val : {
113-
name : 'identifier',
114-
op : 'eq',
115-
val : eventDetails.id
116-
}
117-
},
118-
{
119-
name : 'starts-at',
120-
op : 'ge',
121-
val : moment().startOf('month').toISOString()
122-
},
123-
{
124-
name : 'starts-at',
125-
op : 'lt',
126-
val : moment().add('month').toISOString()
127-
},
128-
{
129-
or: [
130-
{
131-
name : 'state',
132-
op : 'eq',
133-
val : 'confirmed'
134-
},
135-
{
136-
name : 'state',
137-
op : 'eq',
138-
val : 'accepted'
139-
}
140-
]
141-
}
142-
]
143-
}
144-
]
145-
});
146-
} else {
147-
sessions = await this.store.query('session', {
148-
filter: [
55+
name : 'starts-at',
56+
op : 'ge',
57+
val : moment().startOf(period).toISOString()
58+
},
14959
{
150-
and: [
151-
{
152-
name : 'event',
153-
op : 'has',
154-
val : {
155-
name : 'identifier',
156-
op : 'eq',
157-
val : eventDetails.id
158-
}
159-
},
160-
{
161-
or: [
162-
{
163-
name : 'state',
164-
op : 'eq',
165-
val : 'confirmed'
166-
},
167-
{
168-
name : 'state',
169-
op : 'eq',
170-
val : 'accepted'
171-
}
172-
]
173-
}
174-
]
60+
name : 'starts-at',
61+
op : 'lt',
62+
val : moment().endOf(period).toISOString()
17563
}
17664
]
17765
});
66+
17867
}
17968
return {
18069
event : eventDetails,
181-
session : sessions
70+
session : await this.infinity.model('session', {
71+
filter : filterOptions,
72+
perPage : 6,
73+
startingPage : 1,
74+
perPageParam : 'page[size]',
75+
pageParam : 'page[number]'
76+
})
18277
};
18378
}
18479
});

app/templates/public/sessions/list.hbs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,10 @@
1010
{{else}}
1111
<div class="ui disabled header">{{t 'No Sessions exist for this time period'}}</div>
1212
{{/each}}
13+
{{#infinity-loader infinityModel=model.session triggerOffset=300 eventDebounce=50}}
14+
<div class="center aligned five wide column">
15+
<div class="ui loading very padded basic segment">
16+
</div>
17+
</div>
18+
{{/infinity-loader}}
1319
</div>

0 commit comments

Comments
 (0)