]>
Commit | Line | Data |
---|---|---|
6527f429 DM |
1 | Ext.define('KitchenSink.view.grid.BigData', {\r |
2 | extend: 'Ext.grid.Grid',\r | |
3 | requires: [\r | |
4 | 'Ext.grid.plugin.Editable',\r | |
5 | 'Ext.grid.plugin.ViewOptions',\r | |
6 | 'Ext.grid.plugin.PagingToolbar',\r | |
7 | 'Ext.grid.plugin.SummaryRow',\r | |
8 | 'Ext.grid.plugin.ColumnResizing',\r | |
9 | 'Ext.grid.plugin.MultiSelection',\r | |
10 | 'KitchenSink.view.grid.BigDataRowModel',\r | |
11 | 'KitchenSink.view.grid.BigDataController'\r | |
12 | ],\r | |
13 | \r | |
14 | controller: 'grid-bigdata',\r | |
15 | \r | |
16 | grouped: true,\r | |
17 | store: {\r | |
18 | model: 'Contact',\r | |
19 | autoLoad: true,\r | |
20 | groupField: 'company',\r | |
21 | proxy: {\r | |
22 | type: 'ajax',\r | |
23 | url: 'data/bigdata.json',\r | |
24 | reader: {\r | |
25 | rootProperty: 'results'\r | |
26 | }\r | |
27 | }\r | |
28 | },\r | |
29 | \r | |
30 | plugins: [{\r | |
31 | type: 'grideditable'\r | |
32 | }, {\r | |
33 | type: 'gridviewoptions'\r | |
34 | }, {\r | |
35 | type: 'gridpagingtoolbar'\r | |
36 | }, {\r | |
37 | type: 'gridsummaryrow'\r | |
38 | }, {\r | |
39 | type: 'gridcolumnresizing'\r | |
40 | }],\r | |
41 | \r | |
42 | // Instruct rows to create view models so we can use data binding\r | |
43 | itemConfig: {\r | |
44 | viewModel: {\r | |
45 | type: 'grid-bigdata-row'\r | |
46 | }\r | |
47 | },\r | |
48 | \r | |
49 | columns: [{\r | |
50 | text: 'Name',\r | |
51 | dataIndex: 'fullName',\r | |
52 | flex: 1,\r | |
53 | minWidth: 100,\r | |
54 | editable: true,\r | |
55 | summaryType: 'count',\r | |
56 | summaryRenderer: 'nameSummaryRenderer'\r | |
57 | }, {\r | |
58 | text: 'Identifiers',\r | |
59 | xtype: 'gridheadergroup',\r | |
60 | columns: [{\r | |
61 | text: 'Email',\r | |
62 | dataIndex: 'email',\r | |
63 | width: 300,\r | |
64 | editable: true,\r | |
65 | editor: {\r | |
66 | xtype: 'emailfield'\r | |
67 | }\r | |
68 | }, {\r | |
69 | text: 'Id',\r | |
70 | dataIndex: 'guid',\r | |
71 | width: 100\r | |
72 | }, {\r | |
73 | text: '',\r | |
74 | width: 200,\r | |
75 | cell: {\r | |
76 | xtype: 'widgetcell',\r | |
77 | widget: {\r | |
78 | xtype: 'button',\r | |
79 | ui: 'action',\r | |
80 | bind: 'Verify {record.firstName}',\r | |
81 | handler: 'onVerifyTap'\r | |
82 | }\r | |
83 | }\r | |
84 | }]\r | |
85 | }, {\r | |
86 | text: 'Miscellaneous',\r | |
87 | xtype: 'gridheadergroup',\r | |
88 | columns: [{\r | |
89 | text: 'Age',\r | |
90 | tpl: '{age} years',\r | |
91 | align: 'center',\r | |
92 | width: 110,\r | |
93 | dataIndex: 'age',\r | |
94 | summaryType: 'average',\r | |
95 | cell: {\r | |
96 | bind: {\r | |
97 | innerCls: '{ageGroup:pick("under25","under30","under35","over35")}'\r | |
98 | }\r | |
99 | },\r | |
100 | \r | |
101 | summaryRenderer: 'ageSummaryRenderer'\r | |
102 | }, {\r | |
103 | text: 'Gender',\r | |
104 | dataIndex: 'gender',\r | |
105 | width: 120,\r | |
106 | align: 'center',\r | |
107 | editable: true,\r | |
108 | editor: {\r | |
109 | xtype: 'selectfield',\r | |
110 | options: [{\r | |
111 | text: 'Male',\r | |
112 | value: 'Male'\r | |
113 | }, {\r | |
114 | text: 'Female',\r | |
115 | value: 'Female'\r | |
116 | }]\r | |
117 | },\r | |
118 | \r | |
119 | summaryType: 'genderSummaryType'\r | |
120 | }]\r | |
121 | }, {\r | |
122 | text: 'Company',\r | |
123 | dataIndex: 'company',\r | |
124 | width: 200,\r | |
125 | cell: {\r | |
126 | xtype: 'textcell',\r | |
127 | bind: '{record.company}'\r | |
128 | }\r | |
129 | }, {\r | |
130 | text: 'Registered',\r | |
131 | dataIndex: 'registered',\r | |
132 | width: 120,\r | |
133 | xtype: 'datecolumn',\r | |
134 | format: 'd-m-Y'\r | |
135 | }]\r | |
136 | });\r |