X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/examples/form/custom-form.js diff --git a/examples/form/custom-form.js b/examples/form/custom-form.js new file mode 100644 index 00000000..ec2b9663 --- /dev/null +++ b/examples/form/custom-form.js @@ -0,0 +1,103 @@ +Ext.Loader.setConfig({enabled: true}); +Ext.Loader.setPath('Ext.ux', '../ux'); +Ext.require([ + 'Ext.data.*', + 'Ext.panel.Panel', + 'Ext.view.View', + 'Ext.layout.container.Fit', + 'Ext.toolbar.Paging', + 'Ext.ux.form.SearchField' +]); + +Ext.define('Post', { + extend: 'Ext.data.Model', + idProperty: 'post_id', + fields: [ + {name: 'postId', mapping: 'post_id'}, + {name: 'title', mapping: 'topic_title'}, + {name: 'topicId', mapping: 'topic_id'}, + {name: 'author', mapping: 'author'}, + {name: 'lastPost', mapping: 'post_time', type: 'date', dateFormat: 'timestamp'}, + {name: 'excerpt', mapping: 'post_text'} + ] +}); + +Ext.onReady(function(){ + + var forumId = 4; + + var store = Ext.create('Ext.data.Store', { + model: 'Post', + proxy: { + type: 'jsonp', + url: 'http://sencha.com/forum/topics-remote.php', + extraParams: { + forumId: forumId + }, + reader: { + type: 'json', + root: 'topics', + totalProperty: 'totalCount' + } + }, + listeners: { + beforeload: function(){ + var params = store.getProxy().extraParams; + if (params.query) { + delete params.forumId; + } else { + params.forumId = forumId; + } + } + } + }); + store.loadPage(1); + + var resultTpl = Ext.create('Ext.XTemplate', + '', + '
', + '

{lastPost:this.formatDate}
by {author}
', + '{title}

', + '

{excerpt}

', + '
', + { + formatDate: function(value){ + return Ext.Date.format(value, 'M j, Y'); + } + }); + + var panel = Ext.create('Ext.panel.Panel', { + title: 'Forum Search', + height: 300, + width: 600, + renderTo: 'search-panel', + id: 'search-results', + layout: 'fit', + items: { + autoScroll: true, + xtype: 'dataview', + tpl: resultTpl, + store: store, + itemSelector: 'div.search-item' + }, + dockedItems: [{ + dock: 'top', + xtype: 'toolbar', + items: { + width: 400, + fieldLabel: 'Search', + labelWidth: 50, + xtype: 'searchfield', + store: store + } + }, { + dock: 'bottom', + xtype: 'pagingtoolbar', + store: store, + pageSize: 25, + displayInfo: true, + displayMsg: 'Topics {0} - {1} of {2}', + emptyMsg: 'No topics to display' + }] + }); +});