]> git.proxmox.com Git - proxmox-backup.git/blame - www/dashboard/RunningTasks.js
tools/logrotate: fix compression logic
[proxmox-backup.git] / www / dashboard / RunningTasks.js
CommitLineData
6f3146c0
DC
1Ext.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