]>
git.proxmox.com Git - proxmox-widget-toolkit.git/blob - src/node/Tasks.js
1 Ext
.define('Proxmox.node.Tasks', {
2 extend
: 'Ext.grid.GridPanel',
4 alias
: ['widget.proxmoxNodeTasks'],
6 stateId
: 'grid-node-tasks',
8 sortableColumns
: false,
11 initComponent: function() {
15 throw "no node name specified";
18 let store
= Ext
.create('Ext.data.BufferedStore', {
22 model
: 'proxmox-tasks',
27 url
: "/api2/json/nodes/" + me
.nodename
+ "/tasks",
32 let filter_errors
= 0;
34 let updateProxyParams = function() {
36 errors
: filter_errors
,
39 params
.userfilter
= userfilter
;
42 params
.vmid
= me
.vmidFilter
;
44 store
.proxy
.extraParams
= params
;
49 let reload_task
= Ext
.create('Ext.util.DelayedTask', function() {
54 let run_task_viewer = function() {
55 let sm
= me
.getSelectionModel();
56 let rec
= sm
.getSelection()[0];
61 let win
= Ext
.create('Proxmox.window.TaskViewer', {
63 endtime
: rec
.data
.endtime
,
68 let view_btn
= new Ext
.Button({
69 text
: gettext('View'),
71 handler
: run_task_viewer
,
74 Proxmox
.Utils
.monStoreErrors(me
, store
, true);
80 stripeRows
: false, // does not work with getRowClass()
82 getRowClass: function(record
, index
) {
83 let status
= record
.get('status');
86 let parsed
= Proxmox
.Utils
.parse_task_status(status
);
87 if (parsed
=== 'error') {
88 return "proxmox-invalid-row";
89 } else if (parsed
=== 'warning') {
90 return "proxmox-warning-row";
99 text
: gettext('Refresh'), // FIXME: smart-auto-refresh store
100 handler
: () => store
.reload(),
103 gettext('User name') +':',
109 enableKeyEvents
: true,
111 keyup: function(field
, e
) {
112 userfilter
= field
.getValue();
113 reload_task
.delay(500);
116 }, ' ', gettext('Only Errors') + ':', ' ',
120 checked
: filter_errors
,
122 change: function(field
, checked
) {
123 filter_errors
= checked
? 1 : 0;
124 reload_task
.delay(10);
131 header
: gettext("Start Time"),
132 dataIndex
: 'starttime',
134 renderer: function(value
) {
135 return Ext
.Date
.format(value
, "M d H:i:s");
139 header
: gettext("End Time"),
140 dataIndex
: 'endtime',
142 renderer: function(value
, metaData
, record
) {
144 metaData
.tdCls
= "x-grid-row-loading";
147 return Ext
.Date
.format(value
, "M d H:i:s");
151 header
: gettext("Node"),
156 header
: gettext("User name"),
161 header
: gettext("Description"),
164 renderer
: Proxmox
.Utils
.render_upid
,
167 header
: gettext("Status"),
170 renderer: function(value
, metaData
, record
) {
171 if (value
=== undefined && !record
.data
.endtime
) {
172 metaData
.tdCls
= "x-grid-row-loading";
176 let parsed
= Proxmox
.Utils
.parse_task_status(value
);
178 case 'unknown': return Proxmox
.Utils
.unknownText
;
179 case 'error': return Proxmox
.Utils
.errorText
+ ': ' + value
;
180 case 'ok': // fall-through
181 case 'warning': // fall-through
182 default: return value
;
188 itemdblclick
: run_task_viewer
,
189 selectionchange: function(v
, selections
) {
190 view_btn
.setDisabled(!(selections
&& selections
[0]));
192 show: function() { reload_task
.delay(10); },
193 destroy: function() { reload_task
.cancel(); },