]> git.proxmox.com Git - extjs.git/blame - extjs/examples/modern/oreilly/app/controller/Sessions.js
add extjs 6.0.1 sources
[extjs.git] / extjs / examples / modern / oreilly / app / controller / Sessions.js
CommitLineData
6527f429
DM
1Ext.define('Oreilly.controller.Sessions', {\r
2 extend: 'Ext.app.Controller',\r
3 stores: [\r
4 'Sessions',\r
5 'SpeakerSessions'\r
6 ],\r
7\r
8 config: {\r
9 refs: {\r
10 sessions: 'sessions',\r
11 session: 'session',\r
12 sessionInfo: 'sessionContainer sessionInfo',\r
13 sessionSpeakers: 'sessionContainer list',\r
14 sessionContainer: 'sessionContainer',\r
15 sessionDayPicker: 'sessions segmentedbutton',\r
16\r
17 speakers: 'sessionContainer speakers',\r
18 speakerInfo: 'sessionContainer speakerInfo'\r
19 },\r
20 control: {\r
21 sessions: {\r
22 initialize: 'initSessions',\r
23 itemtap: 'onSessionTap',\r
24 activate: 'onSessionsActivate'\r
25 },\r
26 sessionDayPicker: {\r
27 toggle: 'onSessionDateChange'\r
28 },\r
29 speakers: {\r
30 itemtap: 'onSpeakerTap'\r
31 }\r
32 }\r
33 },\r
34\r
35 initSessions: function() {\r
36 var firstButton = this.getSessionDayPicker().getItems().items[0];\r
37 this.getSessionDayPicker().setPressedButtons(firstButton);\r
38 this.filterByButton(firstButton);\r
39 },\r
40\r
41 onSessionDateChange: function(seg, btn, toggle) {\r
42 if (toggle) {\r
43 this.filterByButton(btn);\r
44 }\r
45 },\r
46\r
47 filterByButton: function(btn) {\r
48 if (this.getSessionSpeakers()) {\r
49 this.getSessionSpeakers().deselectAll();\r
50 }\r
51 Ext.getStore('Sessions').clearFilter(true);\r
52 Ext.getStore('Sessions').filter(function(record) {\r
53 return record.get('time').getDate() == btn.config.day;\r
54 });\r
55 },\r
56\r
57 onSessionTap: function(list, idx, el, record) {\r
58 var speakerStore = Ext.getStore('SessionSpeakers'),\r
59 speakerIds = record.get('speakerIds');\r
60\r
61 speakerStore.clearFilter(true);\r
62 speakerStore.filterBy(function(speaker) {\r
63 return Ext.Array.contains(speakerIds, speaker.get('id'));\r
64 });\r
65\r
66 if (!this.session) {\r
67 this.session = Ext.widget('session');\r
68 }\r
69\r
70 this.session.setTitle(record.get('title'));\r
71 this.getSessionContainer().push(this.session);\r
72 this.getSessionInfo().setRecord(record);\r
73 },\r
74\r
75 onSpeakerTap: function(list, idx, el, record) {\r
76 if (!this.speakerInfo) {\r
77 this.speakerInfo = Ext.widget('speakerInfo', {\r
78 scrollable: 'vertical'\r
79 });\r
80 }\r
81\r
82 this.speakerInfo.config.title = record.getFullName();\r
83 this.speakerInfo.setRecord(record);\r
84 this.getSessionContainer().push(this.speakerInfo);\r
85 },\r
86\r
87 onSessionsActivate: function() {\r
88 if (this.session) {\r
89 this.session.down('speakers').deselectAll();\r
90 }\r
91 }\r
92});\r