File tree Expand file tree Collapse file tree 3 files changed +67
-33
lines changed
templates/components/public Expand file tree Collapse file tree 3 files changed +67
-33
lines changed Original file line number Diff line number Diff line change @@ -2,14 +2,47 @@ import classic from 'ember-classic-decorator';
2
2
import { action , computed } from '@ember/object' ;
3
3
import Component from '@ember/component' ;
4
4
import moment from 'moment' ;
5
+ import { SPEAKERS_FILTER } from 'open-event-frontend/routes/public/speakers' ;
6
+ import { tracked } from '@glimmer/tracking' ;
5
7
6
8
@classic
7
9
export default class SideMenu extends Component {
10
+ @tracked
11
+ showSpeakers = false ;
12
+
13
+ @tracked
14
+ showSessions = false ;
15
+
8
16
async didInsertElement ( ) {
9
17
super . didInsertElement ( ...arguments ) ;
10
18
const speakersCall = await this . event . speakersCall ;
11
19
this . set ( 'shouldShowCallforSpeakers' ,
12
20
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 ;
13
46
}
14
47
15
48
@action
Original file line number Diff line number Diff line change 1
1
import classic from 'ember-classic-decorator' ;
2
2
import Route from '@ember/routing/route' ;
3
3
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 : [
9
7
{
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 : [
11
18
{
12
19
name : 'sessions' ,
13
20
op : 'any' ,
14
21
val : {
15
- name : 'deleted-at ' ,
22
+ name : 'state ' ,
16
23
op : 'eq' ,
17
- val : null
24
+ val : 'accepted'
18
25
}
19
26
} ,
20
27
{
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
+ }
41
35
}
42
36
]
43
37
}
44
- ] ;
38
+ ]
39
+ }
40
+ ] ;
41
+
42
+ @classic
43
+ export default class SpeakersRoute extends Route {
44
+ async model ( ) {
45
+ const eventDetails = this . modelFor ( 'public' ) ;
45
46
return {
46
47
event : eventDetails ,
47
48
speakers : await this . infinity . model ( 'speakers' , {
48
- filter : filterOptions ,
49
+ filter : SPEAKERS_FILTER ,
49
50
perPage : 12 ,
50
51
startingPage : 1 ,
51
52
perPageParam : 'page[size]' ,
Original file line number Diff line number Diff line change 9
9
{{ t ' Tickets' }}
10
10
</a >
11
11
{{ /if }}
12
- {{ #if this.event.speakers.length }}
12
+ {{ #if this.showSpeakers }}
13
13
<LinkTo @route =" public.speakers" class =" item" >
14
14
{{ t ' Speakers' }}
15
15
</LinkTo >
23
23
{{ t ' Tickets' }}
24
24
</a >
25
25
{{ /if }}
26
- {{ #if this.event.speakers.length }}
26
+ {{ #if this.showSpeakers }}
27
27
<LinkTo @route =" public.speakers" class =" item" >
28
28
{{ t ' Speakers' }}
29
29
</LinkTo >
30
30
{{ /if }}
31
31
{{ /if }}
32
- {{ #if this.event.sessions.length }}
32
+ {{ #if this.showSessions }}
33
33
<LinkTo @route =" public.sessions" class =" item" >
34
34
{{ t ' Sessions' }}
35
35
</LinkTo >
You can’t perform that action at this time.
0 commit comments