]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/Tasks.js
ui: eslint: fix various spacing related issues
[pve-manager.git] / www / manager6 / dc / Tasks.js
1 /* This class defines the "Tasks" tab of the bottom status panel
2 * Tasks are jobs with a start, end and log output
3 */
4
5 Ext.define('PVE.dc.Tasks', {
6 extend: 'Ext.grid.GridPanel',
7
8 alias: ['widget.pveClusterTasks'],
9
10 initComponent: function() {
11 var me = this;
12
13 var taskstore = Ext.create('Proxmox.data.UpdateStore', {
14 storeid: 'pve-cluster-tasks',
15 model: 'proxmox-tasks',
16 proxy: {
17 type: 'proxmox',
18 url: '/api2/json/cluster/tasks',
19 },
20 });
21
22 var store = Ext.create('Proxmox.data.DiffStore', {
23 rstore: taskstore,
24 sortAfterUpdate: true,
25 appendAtStart: true,
26 sorters: [
27 {
28 property: 'pid',
29 direction: 'DESC',
30 },
31 {
32 property: 'starttime',
33 direction: 'DESC',
34 },
35 ],
36
37 });
38
39 var run_task_viewer = function() {
40 var sm = me.getSelectionModel();
41 var rec = sm.getSelection()[0];
42 if (!rec) {
43 return;
44 }
45
46 var win = Ext.create('Proxmox.window.TaskViewer', {
47 upid: rec.data.upid,
48 endtime: rec.data.endtime,
49 });
50 win.show();
51 };
52
53 Ext.apply(me, {
54 store: store,
55 stateful: false,
56
57 viewConfig: {
58 trackOver: false,
59 stripeRows: true, // does not work with getRowClass()
60
61 getRowClass: function(record, index) {
62 var status = record.get('status');
63
64 if (status && status != 'OK') {
65 return "proxmox-invalid-row";
66 }
67 },
68 },
69 sortableColumns: false,
70 columns: [
71 {
72 header: gettext("Start Time"),
73 dataIndex: 'starttime',
74 width: 150,
75 renderer: function(value) {
76 return Ext.Date.format(value, "M d H:i:s");
77 },
78 },
79 {
80 header: gettext("End Time"),
81 dataIndex: 'endtime',
82 width: 150,
83 renderer: function(value, metaData, record) {
84 if (record.data.pid) {
85 if (record.data.type == "vncproxy" ||
86 record.data.type == "vncshell" ||
87 record.data.type == "spiceproxy") {
88 metaData.tdCls = "x-grid-row-console";
89 } else {
90 metaData.tdCls = "x-grid-row-loading";
91 }
92 return "";
93 }
94 return Ext.Date.format(value, "M d H:i:s");
95 },
96 },
97 {
98 header: gettext("Node"),
99 dataIndex: 'node',
100 width: 100,
101 },
102 {
103 header: gettext("User name"),
104 dataIndex: 'user',
105 renderer: Ext.String.htmlEncode,
106 width: 150,
107 },
108 {
109 header: gettext("Description"),
110 dataIndex: 'upid',
111 flex: 1,
112 renderer: Proxmox.Utils.render_upid,
113 },
114 {
115 header: gettext("Status"),
116 dataIndex: 'status',
117 width: 200,
118 renderer: function(value, metaData, record) {
119 if (record.data.pid) {
120 if (record.data.type != "vncproxy") {
121 metaData.tdCls = "x-grid-row-loading";
122 }
123 return "";
124 }
125 if (value == 'OK') {
126 return 'OK';
127 }
128 // metaData.attr = 'style="color:red;"';
129 return Proxmox.Utils.errorText + ': ' + value;
130 },
131 },
132 ],
133 listeners: {
134 itemdblclick: run_task_viewer,
135 show: () => taskstore.startUpdate(),
136 destroy: () => taskstore.stopUpdate(),
137 },
138 });
139
140 me.callParent();
141 },
142 });