]>
Commit | Line | Data |
---|---|---|
6f3146c0 DC |
1 | Ext.define('PBS.RunningTasks', { |
2 | extend: 'Ext.grid.Panel', | |
3 | alias: 'widget.pbsRunningTasks', | |
4 | ||
5 | title: gettext('Running Tasks'), | |
6 | emptyText: gettext('No running tasks'), | |
7 | ||
8 | hideHeaders: true, | |
9 | rowLines: false, | |
10 | ||
486ed272 DC |
11 | scrollable: true, |
12 | maxHeight: 500, | |
13 | ||
14 | viewConfig: { | |
15 | deferEmptyText: false, | |
16 | }, | |
17 | ||
6f3146c0 DC |
18 | controller: { |
19 | xclass: 'Ext.app.ViewController', | |
20 | ||
21 | openTask: function(record) { | |
22 | let me = this; | |
23 | let view = me.getView(); | |
24 | Ext.create('Proxmox.window.TaskViewer', { | |
25 | upid: record.data.upid, | |
26 | endtime: record.data.endtime, | |
27 | }).show(); | |
a3970d6c DC |
28 | |
29 | view.fireEvent('taskopened', view, record.data.upid); | |
6f3146c0 DC |
30 | }, |
31 | ||
32 | openTaskItemDblClick: function(grid, record) { | |
33 | this.openTask(record); | |
34 | }, | |
35 | ||
36 | openTaskActionColumn: function(grid, rowIndex) { | |
37 | this.openTask(grid.getStore().getAt(rowIndex)); | |
38 | }, | |
39 | ||
40 | render_status: function(value) { | |
41 | let cls = 'times-circle critical'; | |
42 | if (value === 'OK') { | |
43 | cls = 'check-circle good'; | |
44 | } else if (value.startsWith('WARNINGS:')) { | |
45 | cls = 'exclamation-circle warning'; | |
46 | } else if (value === 'unknown') { | |
47 | cls = 'question-circle faded'; | |
48 | } | |
49 | ||
50 | return `<i class="fa fa-${cls}"></i>`; | |
51 | }, | |
52 | }, | |
53 | ||
54 | updateTasks: function(data) { | |
55 | let me = this; | |
56 | me.getStore().setData(data); | |
57 | }, | |
58 | ||
59 | listeners: { | |
60 | itemdblclick: 'openTaskItemDblClick', | |
61 | }, | |
62 | ||
63 | store: { | |
64 | type: 'diff', | |
65 | autoDestroy: true, | |
6f3146c0 | 66 | sorters: 'starttime', |
cc83c136 | 67 | rstore: PBS.data.RunningTasksStore, |
6f3146c0 DC |
68 | }, |
69 | ||
70 | columns: [ | |
71 | { | |
72 | text: 'Task', | |
73 | dataIndex: 'upid', | |
74 | renderer: Proxmox.Utils.render_upid, | |
75 | flex: 2, | |
76 | }, | |
77 | { | |
78 | text: 'Starttime', | |
79 | dataIndex: 'starttime', | |
80 | renderer: function(value) { | |
81 | return Ext.Date.format(value, "Y-m-d H:i:s"); | |
82 | }, | |
83 | flex: 1, | |
84 | }, | |
85 | { | |
86 | text: 'Duration', | |
87 | dataIndex: 'duration', | |
88 | renderer: function(value, md, record) { | |
89 | return Proxmox.Utils.format_duration_human((Date.now() - record.data.starttime)/1000); | |
6ab77df3 | 90 | }, |
6f3146c0 DC |
91 | }, |
92 | { | |
93 | xtype: 'actioncolumn', | |
94 | width: 40, | |
95 | items: [ | |
96 | { | |
97 | iconCls: 'fa fa-chevron-right', | |
98 | tooltip: gettext('Open Task'), | |
99 | handler: 'openTaskActionColumn', | |
100 | }, | |
101 | ], | |
102 | }, | |
103 | ], | |
104 | }); | |
105 |