commit extjs-2.2.1
[extjs.git] / examples / form / forum-search.js
1 /*\r
2  * Ext JS Library 2.2.1\r
3  * Copyright(c) 2006-2009, Ext JS, LLC.\r
4  * licensing@extjs.com\r
5  * \r
6  * http://extjs.com/license\r
7  */\r
8 \r
9 Ext.onReady(function(){\r
10 \r
11     var ds = new Ext.data.Store({\r
12         proxy: new Ext.data.ScriptTagProxy({\r
13             url: 'http://extjs.com/forum/topics-remote.php'\r
14         }),\r
15         reader: new Ext.data.JsonReader({\r
16             root: 'topics',\r
17             totalProperty: 'totalCount',\r
18             id: 'post_id'\r
19         }, [\r
20             {name: 'title', mapping: 'topic_title'},\r
21             {name: 'topicId', mapping: 'topic_id'},\r
22             {name: 'author', mapping: 'author'},\r
23             {name: 'lastPost', mapping: 'post_time', type: 'date', dateFormat: 'timestamp'},\r
24             {name: 'excerpt', mapping: 'post_text'}\r
25         ])\r
26     });\r
27 \r
28     // Custom rendering Template\r
29     var resultTpl = new Ext.XTemplate(\r
30         '<tpl for="."><div class="search-item">',\r
31             '<h3><span>{lastPost:date("M j, Y")}<br />by {author}</span>{title}</h3>',\r
32             '{excerpt}',\r
33         '</div></tpl>'\r
34     );\r
35     \r
36     var search = new Ext.form.ComboBox({\r
37         store: ds,\r
38         displayField:'title',\r
39         typeAhead: false,\r
40         loadingText: 'Searching...',\r
41         width: 570,\r
42         pageSize:10,\r
43         hideTrigger:true,\r
44         tpl: resultTpl,\r
45         applyTo: 'search',\r
46         itemSelector: 'div.search-item',\r
47         onSelect: function(record){ // override default onSelect to do redirect\r
48             window.location =\r
49                 String.format('http://extjs.com/forum/showthread.php?t={0}&p={1}', record.data.topicId, record.id);\r
50         }\r
51     });\r
52 });