6 Ext.onReady(function(){
8 extend: 'Ext.data.Model',
11 {name: 'projectId', type: 'int'},
12 {name: 'project', type: 'string'},
13 {name: 'taskId', type: 'int'},
14 {name: 'description', type: 'string'},
15 {name: 'estimate', type: 'float'},
16 {name: 'rate', type: 'float'},
17 {name: 'cost', type: 'float'},
18 {name: 'due', type: 'date', dateFormat:'m/d/Y'}
22 var store = Ext.create('Ext.data.Store', {
27 url: 'remote-group-summary-grid.json',
33 sorters: {property: 'due', direction: 'ASC'},
37 var grid = Ext.create('Ext.grid.Panel', {
40 title: 'Sponsored Projects',
41 renderTo: Ext.getBody(),
53 toggleHandler: function(btn, pressed){
54 var view = grid.getView();
55 view.getFeature('group').toggleSummaryRow(pressed);
62 ftype: 'groupingsummary',
63 groupHeaderTpl: '{name}',
64 hideGroupedHeader: true,
65 remoteRoot: 'summaryData'
71 dataIndex: 'description',
73 summaryRenderer: function(v, params, data){
74 return ((v === 0 || v > 1) ? '(' + v + ' Tasks)' : '(1 Task)');
86 renderer: Ext.util.Format.dateRenderer('m/d/Y')
91 dataIndex: 'estimate',
92 renderer: function(v){
99 renderer: Ext.util.Format.usMoney,
101 summaryType: 'average'
108 renderer: function(v, params, record){
109 return Ext.util.Format.usMoney(record.get('estimate') * record.get('rate'));
112 summaryRenderer: Ext.util.Format.usMoney