]>
Commit | Line | Data |
---|---|---|
6527f429 DM |
1 | Ext.define('Oreilly.util.Proxy', {\r |
2 | \r | |
3 | singleton: true,\r | |
4 | \r | |
5 | requires: ['Ext.data.proxy.JsonP'],\r | |
6 | \r | |
7 | process: function(url, callback) {\r | |
8 | \r | |
9 | var sessionStore = Ext.getStore('Sessions'),\r | |
10 | speakerStore = Ext.getStore('Speakers'),\r | |
11 | sessionSpeakerStore = Ext.getStore('SessionSpeakers'),\r | |
12 | speakerSessionStore = Ext.getStore('SpeakerSessions'),\r | |
13 | sessionIds, proposalModel, speakerModel, speakerSessions = {}, sessionId, speaker, sessionDays = {};\r | |
14 | \r | |
15 | Ext.data.JsonP.request({\r | |
16 | url: url,\r | |
17 | callbackName: 'feedCb',\r | |
18 | \r | |
19 | success: function(data) {\r | |
20 | \r | |
21 | Ext.Array.each(data.proposals, function(proposal) {\r | |
22 | \r | |
23 | proposal.speakerIds = [];\r | |
24 | proposalModel = Ext.create('Oreilly.model.Session', proposal);\r | |
25 | \r | |
26 | Ext.Array.each(proposal.speakers, function(speaker) {\r | |
27 | proposal.speakerIds.push(speaker.id);\r | |
28 | \r | |
29 | speakerModel = Ext.create('Oreilly.model.Speaker', speaker);\r | |
30 | speakerStore.add(speakerModel);\r | |
31 | sessionSpeakerStore.add(speakerModel);\r | |
32 | \r | |
33 | speakerSessions[speaker.id] = speakerSessions[speaker.id] || [];\r | |
34 | speakerSessions[speaker.id].push(proposal.id);\r | |
35 | });\r | |
36 | \r | |
37 | if (proposal.date) {\r | |
38 | sessionDays[proposal.date] = {\r | |
39 | day: proposalModel.get('time').getDate(),\r | |
40 | text: Ext.Date.format(proposalModel.get('time'), 'm/d'),\r | |
41 | time: proposalModel.get('time')\r | |
42 | };\r | |
43 | }\r | |
44 | \r | |
45 | sessionStore.add(proposalModel);\r | |
46 | speakerSessionStore.add(proposalModel);\r | |
47 | });\r | |
48 | \r | |
49 | for (var speakerId in speakerSessions) {\r | |
50 | speaker = speakerStore.findRecord('id', speakerId);\r | |
51 | if (speaker) {\r | |
52 | speaker.set('sessionIds', speakerSessions[speakerId]);\r | |
53 | }\r | |
54 | }\r | |
55 | \r | |
56 | Oreilly.sessionDays = Ext.Array.sort(Ext.Object.getValues(sessionDays), function(a, b) {\r | |
57 | return a.time < b.time ? -1 : 1;\r | |
58 | });\r | |
59 | \r | |
60 | callback();\r | |
61 | }\r | |
62 | });\r | |
63 | \r | |
64 | }\r | |
65 | });\r |