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