Advertisement
Guest User

Untitled

a guest
Aug 1st, 2012
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function(){
  2.     var tempStorageProvider;
  3.     try{
  4.         tempStorageProvider=Ext.create("Ext.state.LocalStorageProvider");
  5.     } catch (err) {
  6.         tempStorageProvider=new Ext.state.CookieProvider();
  7.     }
  8.     Ext.state.Manager.setProvider(tempStorageProvider);
  9. })();
  10.  
  11. Ext.Loader.setConfig({enabled: true});
  12.  
  13. Ext.Loader.setPath('Ext.ux', '../ux/');
  14. Ext.require([
  15.     'Ext.grid.*',
  16.     'Ext.data.*',
  17.     'Ext.util.*',
  18.     'Ext.grid.PagingScroller'
  19. ]);
  20.  
  21. Ext.onReady(function(){
  22.     Ext.define('ForumThread', {
  23.         extend: 'Ext.data.Model',
  24.         fields: [
  25.             'title', 'forumtitle', 'forumid', 'username', {
  26.                 name: 'replycount',
  27.                 type: 'int'
  28.             }, {
  29.                 name: 'lastpost',
  30.                 mapping: 'lastpost',
  31.                 type: 'date',
  32.                 dateFormat: 'timestamp'
  33.             },
  34.             'lastposter', 'excerpt', 'threadid'
  35.         ],
  36.         idProperty: 'threadid'
  37.     });
  38.  
  39.     // create the Data Store
  40.     var store = Ext.create('Ext.data.Store', {
  41.         id: 'store',
  42.         model: 'ForumThread',
  43.         remoteSort: true,
  44.         // allow the grid to interact with the paging scroller by buffering
  45.         buffered: true,
  46.         pageSize: 100,
  47.         proxy: {
  48.             // load using script tags for cross domain, if the data in on the same domain as
  49.             // this page, an HttpProxy would be better
  50.             type: 'jsonp',
  51.             url: 'http://www.sencha.com/forum/remote_topics/index.php',
  52.             reader: {
  53.                 root: 'topics',
  54.                 totalProperty: 'totalCount'
  55.             },
  56.             // sends single sort as multi parameter
  57.             simpleSortMode: true
  58.         },
  59.         sorters: [{
  60.             property: 'lastpost',
  61.             direction: 'DESC'
  62.         }],
  63.         autoLoad: true
  64.     });
  65.  
  66.     function renderTopic(value, p, record) {
  67.         return Ext.String.format(
  68.             '<a href="http://sencha.com/forum/showthread.php?t={2}" target="_blank">{0}</a>',
  69.             value,
  70.             record.data.forumtitle,
  71.             record.getId(),
  72.             record.data.forumid
  73.         );
  74.     }
  75.  
  76.     var grid = Ext.create('Ext.grid.Panel', {
  77.         width: 700,
  78.         height: 500,
  79.         stateful:true,
  80.         id: 'test',
  81.         collapsible: true,
  82.         title: 'ExtJS.com - Browse Forums',
  83.         store: store,
  84.         loadMask: true,
  85.         selModel: {
  86.             pruneRemoved: false
  87.         },
  88.         multiSelect: true,
  89.         viewConfig: {
  90.             trackOver: false
  91.         },
  92.         // grid columns
  93.         columns:[{
  94.             xtype: 'rownumberer',
  95.             width: 50,
  96.             sortable: false
  97.         },{
  98.             tdCls: 'x-grid-cell-topic',
  99.             text: "Topic",
  100.             dataIndex: 'title',
  101.             flex: 1,
  102.             renderer: renderTopic,
  103.             sortable: false,
  104.             locked:true
  105.         },{
  106.             text: "Author",
  107.             dataIndex: 'username',
  108.             width: 100,
  109.             hidden: true,
  110.             sortable: true
  111.         },{
  112.             text: "Replies",
  113.             dataIndex: 'replycount',
  114.             align: 'center',
  115.             width: 70,
  116.             sortable: false
  117.         },{
  118.             id: 'last',
  119.             text: "Last Post",
  120.             dataIndex: 'lastpost',
  121.             width: 130,
  122.             renderer: Ext.util.Format.dateRenderer('n/j/Y g:i A'),
  123.             sortable: true
  124.         }],
  125.         renderTo: Ext.getBody()
  126.     });
  127. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement