]>
Commit | Line | Data |
---|---|---|
5289a1b8 EK |
1 | /* This class defines the "Cluster log" tab of the bottom status panel |
2 | * A log entry is a timestamp associated with an action on a cluster | |
3 | */ | |
4 | ||
d457e903 DM |
5 | Ext.define('PVE.dc.Log', { |
6 | extend: 'Ext.grid.GridPanel', | |
7 | ||
8 | alias: ['widget.pveClusterLog'], | |
9 | ||
8058410f | 10 | initComponent: function() { |
03153d55 | 11 | let me = this; |
d457e903 | 12 | |
03153d55 | 13 | let logstore = Ext.create('Proxmox.data.UpdateStore', { |
d457e903 | 14 | storeid: 'pve-cluster-log', |
56a353b9 | 15 | model: 'proxmox-cluster-log', |
d457e903 | 16 | proxy: { |
56a353b9 | 17 | type: 'proxmox', |
f6710aac TL |
18 | url: '/api2/json/cluster/log', |
19 | }, | |
d457e903 | 20 | }); |
03153d55 | 21 | let store = Ext.create('Proxmox.data.DiffStore', { |
d457e903 | 22 | rstore: logstore, |
f6710aac | 23 | appendAtStart: true, |
d457e903 DM |
24 | }); |
25 | ||
26 | Ext.apply(me, { | |
27 | store: store, | |
28 | stateful: false, | |
29 | ||
30 | viewConfig: { | |
31 | trackOver: false, | |
8c1c7742 | 32 | stripeRows: true, |
d457e903 | 33 | getRowClass: function(record, index) { |
03153d55 | 34 | let pri = record.get('pri'); |
d457e903 | 35 | if (pri && pri <= 3) { |
3ab7e0ec | 36 | return "proxmox-invalid-row"; |
d457e903 | 37 | } |
03153d55 | 38 | return undefined; |
f6710aac | 39 | }, |
d457e903 DM |
40 | }, |
41 | sortableColumns: false, | |
42 | columns: [ | |
2a4971d8 TL |
43 | { |
44 | header: gettext("Time"), | |
d457e903 | 45 | dataIndex: 'time', |
a26b2cb9 | 46 | width: 150, |
2a4971d8 TL |
47 | renderer: function(value) { |
48 | return Ext.Date.format(value, "M d H:i:s"); | |
f6710aac | 49 | }, |
d457e903 | 50 | }, |
2a4971d8 TL |
51 | { |
52 | header: gettext("Node"), | |
d457e903 | 53 | dataIndex: 'node', |
f6710aac | 54 | width: 150, |
d457e903 | 55 | }, |
2a4971d8 TL |
56 | { |
57 | header: gettext("Service"), | |
d457e903 | 58 | dataIndex: 'tag', |
f6710aac | 59 | width: 100, |
d457e903 | 60 | }, |
2a4971d8 TL |
61 | { |
62 | header: "PID", | |
d457e903 | 63 | dataIndex: 'pid', |
f6710aac | 64 | width: 100, |
d457e903 | 65 | }, |
2a4971d8 TL |
66 | { |
67 | header: gettext("User name"), | |
d457e903 | 68 | dataIndex: 'user', |
1011b569 | 69 | renderer: Ext.String.htmlEncode, |
f6710aac | 70 | width: 150, |
d457e903 | 71 | }, |
2a4971d8 TL |
72 | { |
73 | header: gettext("Severity"), | |
d457e903 DM |
74 | dataIndex: 'pri', |
75 | renderer: PVE.Utils.render_serverity, | |
f6710aac | 76 | width: 100, |
d457e903 | 77 | }, |
2a4971d8 TL |
78 | { |
79 | header: gettext("Message"), | |
d457e903 | 80 | dataIndex: 'msg', |
1011b569 | 81 | renderer: Ext.String.htmlEncode, |
f6710aac TL |
82 | flex: 1, |
83 | }, | |
d457e903 DM |
84 | ], |
85 | listeners: { | |
6386068d TL |
86 | activate: () => logstore.startUpdate(), |
87 | deactivate: () => logstore.stopUpdate(), | |
88 | destroy: () => logstore.stopUpdate(), | |
f6710aac | 89 | }, |
d457e903 DM |
90 | }); |
91 | ||
92 | me.callParent(); | |
f6710aac | 93 | }, |
eaa018d7 | 94 | }); |