1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
| Ext.define('FV.view.article.Grid', {
| extend: 'Ext.grid.Panel',
| alias: 'widget.articlegrid',
|
| cls: 'feed-grid',
| disabled: true,
|
| requires: ['Ext.ux.PreviewPlugin', 'Ext.toolbar.Toolbar'],
|
| border: false,
|
| initComponent: function() {
| Ext.apply(this, {
| store: 'Articles',
|
| viewConfig: {
| plugins: [{
| pluginId: 'preview',
| ptype: 'preview',
| bodyField: 'description',
| previewExpanded: true
| }]
| },
|
| columns: [{
| text: 'Title',
| dataIndex: 'title',
| flex: 1,
| renderer: this.formatTitle
| }, {
| text: 'Author',
| dataIndex: 'author',
| hidden: true,
| width: 200
| }, {
| text: 'Date',
| dataIndex: 'pubDate',
| renderer: this.formatDate,
| width: 200
| }],
| dockedItems:[{
| xtype: 'toolbar',
| dock: 'top',
| items: [{
| iconCls: 'open-all',
| text: 'Open All',
| action: 'openall'
| }]
| }]
| });
|
| this.callParent(arguments);
| },
|
| /**
| * Title renderer
| * @private
| */
| formatTitle: function(value, p, record) {
| return Ext.String.format('<div class="topic"><b>{0}</b><span class="author">{1}</span></div>', value, record.get('author') || "Unknown");
| },
|
| /**
| * Date renderer
| * @private
| */
| formatDate: function(date) {
| if (!date) {
| return '';
| }
|
| var now = new Date(),
| d = Ext.Date.clearTime(now, true),
| notime = Ext.Date.clearTime(date, true).getTime();
|
| if (notime === d.getTime()) {
| return 'Today ' + Ext.Date.format(date, 'g:i a');
| }
|
| d = Ext.Date.add(d, 'd', -6);
| if (d.getTime() <= notime) {
| return Ext.Date.format(date, 'D g:i a');
| }
| return Ext.Date.format(date, 'Y/m/d g:i a');
| }
| });
|
|