Skip to content

Commit 4880985

Browse files
fix: Check session and speaker available for side-menu (#4848)
1 parent 57fdbcc commit 4880985

File tree

3 files changed

+67
-33
lines changed

3 files changed

+67
-33
lines changed

app/components/public/side-menu.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,47 @@ import classic from 'ember-classic-decorator';
22
import { action, computed } from '@ember/object';
33
import Component from '@ember/component';
44
import moment from 'moment';
5+
import { SPEAKERS_FILTER } from 'open-event-frontend/routes/public/speakers';
6+
import { tracked } from '@glimmer/tracking';
57

68
@classic
79
export default class SideMenu extends Component {
10+
@tracked
11+
showSpeakers = false;
12+
13+
@tracked
14+
showSessions = false;
15+
816
async didInsertElement() {
917
super.didInsertElement(...arguments);
1018
const speakersCall = await this.event.speakersCall;
1119
this.set('shouldShowCallforSpeakers',
1220
speakersCall && speakersCall.announcement && (speakersCall.privacy === 'public'));
21+
22+
this.checkSpeakers();
23+
this.checkSessions();
24+
}
25+
26+
async checkSpeakers() {
27+
this.showSpeakers = this.showSpeakers || (await this.loader.load(`/events/${this.event.id}/speakers?fields[speaker]=id&page[size]=1&filters=${JSON.stringify(SPEAKERS_FILTER)}`)).data.length;
28+
}
29+
30+
async checkSessions() {
31+
const filters = [{
32+
or: [
33+
{
34+
name : 'state',
35+
op : 'eq',
36+
val : 'confirmed'
37+
},
38+
{
39+
name : 'state',
40+
op : 'eq',
41+
val : 'accepted'
42+
}
43+
]
44+
}];
45+
this.showSessions = this.showSessions || (await this.loader.load(`/events/${this.event.id}/sessions?fields[session]=id&page[size]=1&filters=${JSON.stringify(filters)}`)).data.length;
1346
}
1447

1548
@action

app/routes/public/speakers.js

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,52 @@
11
import classic from 'ember-classic-decorator';
22
import Route from '@ember/routing/route';
33

4-
@classic
5-
export default class SpeakersRoute extends Route {
6-
async model() {
7-
const eventDetails = this.modelFor('public');
8-
const filterOptions = [
4+
export const SPEAKERS_FILTER = [
5+
{
6+
and: [
97
{
10-
and: [
8+
name : 'sessions',
9+
op : 'any',
10+
val : {
11+
name : 'deleted-at',
12+
op : 'eq',
13+
val : null
14+
}
15+
},
16+
{
17+
or: [
1118
{
1219
name : 'sessions',
1320
op : 'any',
1421
val : {
15-
name : 'deleted-at',
22+
name : 'state',
1623
op : 'eq',
17-
val : null
24+
val : 'accepted'
1825
}
1926
},
2027
{
21-
or: [
22-
{
23-
name : 'sessions',
24-
op : 'any',
25-
val : {
26-
name : 'state',
27-
op : 'eq',
28-
val : 'accepted'
29-
}
30-
},
31-
{
32-
name : 'sessions',
33-
op : 'any',
34-
val : {
35-
name : 'state',
36-
op : 'eq',
37-
val : 'confirmed'
38-
}
39-
}
40-
]
28+
name : 'sessions',
29+
op : 'any',
30+
val : {
31+
name : 'state',
32+
op : 'eq',
33+
val : 'confirmed'
34+
}
4135
}
4236
]
4337
}
44-
];
38+
]
39+
}
40+
];
41+
42+
@classic
43+
export default class SpeakersRoute extends Route {
44+
async model() {
45+
const eventDetails = this.modelFor('public');
4546
return {
4647
event : eventDetails,
4748
speakers : await this.infinity.model('speakers', {
48-
filter : filterOptions,
49+
filter : SPEAKERS_FILTER,
4950
perPage : 12,
5051
startingPage : 1,
5152
perPageParam : 'page[size]',

app/templates/components/public/side-menu.hbs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
{{t 'Tickets'}}
1010
</a>
1111
{{/if}}
12-
{{#if this.event.speakers.length}}
12+
{{#if this.showSpeakers}}
1313
<LinkTo @route="public.speakers" class="item">
1414
{{t 'Speakers'}}
1515
</LinkTo>
@@ -23,13 +23,13 @@
2323
{{t 'Tickets'}}
2424
</a>
2525
{{/if}}
26-
{{#if this.event.speakers.length}}
26+
{{#if this.showSpeakers}}
2727
<LinkTo @route="public.speakers" class="item">
2828
{{t 'Speakers'}}
2929
</LinkTo>
3030
{{/if}}
3131
{{/if}}
32-
{{#if this.event.sessions.length}}
32+
{{#if this.showSessions}}
3333
<LinkTo @route="public.sessions" class="item">
3434
{{t 'Sessions'}}
3535
</LinkTo>

0 commit comments

Comments
 (0)