-
Notifications
You must be signed in to change notification settings - Fork 1.8k
/
scheduler.js
67 lines (60 loc) · 1.76 KB
/
scheduler.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import Route from '@ember/routing/route';
import { patchFullCalendar } from 'open-event-frontend/utils/patches/fullcalendar';
export default Route.extend({
titleToken() {
return this.l10n.t('Scheduler');
},
actions: {
refresh() {
this.refresh();
}
},
async model() {
patchFullCalendar();
const filterOptions = [
{
or: [
{
name : 'state',
op : 'eq',
val : 'accepted'
},
{
name : 'state',
op : 'eq',
val : 'confirmed'
}
]
}
];
const eventDetails = this.modelFor('events.view');
const { timezone } = eventDetails;
const sessions = await eventDetails.query('sessions', {
include : 'speakers,microlocation,track',
filter : filterOptions,
'page[size]' : 0
});
const scheduled = sessions.toArray().filter(session => session.startsAt && session.endsAt);
const unscheduled = sessions.toArray().filter(session => !session.startsAt || !session.endsAt);
sessions.forEach(session => {
session.speakers.forEach(() => {
// Nothing to see here, just avoiding a stupid ember bug
// https://github.com/emberjs/ember.js/issues/18613#issuecomment-674454524
});
});
const microlocations = await eventDetails.query('microlocations', { 'page[size]': 0 });
/*
The start hour of the start day is considered the start hour for remaining days as well.
The end hour of the last day is considered the end hour for remaining days as well.
*/
return {
event : eventDetails,
sessions,
scheduled,
unscheduled,
microlocations,
timezone,
defaultDuration : '01:00'
};
}
});