]> git.proxmox.com Git - extjs.git/blame - extjs/examples/kitchensink/modern/src/view/YQL.js
add extjs 6.0.1 sources
[extjs.git] / extjs / examples / kitchensink / modern / src / view / YQL.js
CommitLineData
6527f429
DM
1/**\r
2 * Demonstrates using YQL to fetch data from remote sources (in this case loading from the Sencha blog)\r
3 */\r
4\r
5Ext.require('Ext.data.JsonP', function() {\r
6 Ext.YQL = {\r
7 useAllPublicTables: true,\r
8 yqlUrl: 'http://query.yahooapis.com/v1/public/yql',\r
9 request: function(cfg) {\r
10 var p = cfg.params || {};\r
11 p.q = cfg.query;\r
12 p.format = 'json';\r
13 if (this.useAllPublicTables) {\r
14 p.env = 'store://datatables.org/alltableswithkeys';\r
15 }\r
16\r
17 Ext.data.JsonP.request({\r
18 url: this.yqlUrl,\r
19 callbackKey: 'callback',\r
20 params: p,\r
21 callback: cfg.callback,\r
22 scope: cfg.scope || window\r
23 });\r
24 }\r
25 };\r
26\r
27 Ext.define('KitchenSink.view.YQL', {\r
28 extend: 'Ext.Container',\r
29 config: {\r
30 scrollable: true,\r
31 items: [\r
32 {\r
33 xtype: 'panel',\r
34 id : 'YQL',\r
35 styleHtmlContent: true\r
36 },\r
37 {\r
38 docked: 'top',\r
39 xtype: 'toolbar',\r
40 items: [{\r
41 text: 'Load using YQL',\r
42 handler: function() {\r
43 var panel = Ext.getCmp('YQL'),\r
44 tpl = new Ext.XTemplate([\r
45 '<tpl for="item">',\r
46 '<div class="blog-post">',\r
47 '<h3><a href="{link}" target="_blank">{title}</a></h3>',\r
48 '<p>{description}</p>',\r
49 '</div>',\r
50 '</tpl>'\r
51 ]);\r
52\r
53 panel.getParent().setMasked({\r
54 xtype: 'loadmask',\r
55 message: 'Loading...'\r
56 });\r
57\r
58 Ext.YQL.request({\r
59 query: "select * from rss where url='http://feeds.feedburner.com/sencha' limit 5",\r
60 callback: function(success, response) {\r
61 if (success && response.query && response.query.results) {\r
62 panel.setHtml(tpl.apply(response.query.results));\r
63 }\r
64 else {\r
65 Ext.Msg.alert('Error', 'There was an error retrieving the YQL request.', Ext.emptyFn);\r
66 }\r
67\r
68 panel.getParent().unmask();\r
69 }\r
70 });\r
71 }\r
72 }\r
73 ]\r
74 }]\r
75 }\r
76 });\r
77});\r