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