]>
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', {
67 let view_btn
= new Ext
.Button({
68 text
: gettext('View'),
70 handler
: run_task_viewer
,
73 Proxmox
.Utils
.monStoreErrors(me
, store
, true);
79 stripeRows
: false, // does not work with getRowClass()
81 getRowClass: function(record
, index
) {
82 let status
= record
.get('status');
85 let parsed
= Proxmox
.Utils
.parse_task_status(status
);
86 if (parsed
=== 'error') {
87 return "proxmox-invalid-row";
88 } else if (parsed
=== 'warning') {
89 return "proxmox-warning-row";
98 text
: gettext('Refresh'), // FIXME: smart-auto-refresh store
99 handler
: () => store
.reload(),
102 gettext('User name') +':',
108 enableKeyEvents
: true,
110 keyup: function(field
, e
) {
111 userfilter
= field
.getValue();
112 reload_task
.delay(500);
115 }, ' ', gettext('Only Errors') + ':', ' ',
119 checked
: filter_errors
,
121 change: function(field
, checked
) {
122 filter_errors
= checked
? 1 : 0;
123 reload_task
.delay(10);
130 header
: gettext("Start Time"),
131 dataIndex
: 'starttime',
133 renderer: function(value
) {
134 return Ext
.Date
.format(value
, "M d H:i:s");
138 header
: gettext("End Time"),
139 dataIndex
: 'endtime',
141 renderer: function(value
, metaData
, record
) {
143 metaData
.tdCls
= "x-grid-row-loading";
146 return Ext
.Date
.format(value
, "M d H:i:s");
150 header
: gettext("Node"),
155 header
: gettext("User name"),
160 header
: gettext("Description"),
163 renderer
: Proxmox
.Utils
.render_upid
,
166 header
: gettext("Status"),
169 renderer: function(value
, metaData
, record
) {
170 if (value
=== undefined && !record
.data
.endtime
) {
171 metaData
.tdCls
= "x-grid-row-loading";
175 let parsed
= Proxmox
.Utils
.parse_task_status(value
);
177 case 'unknown': return Proxmox
.Utils
.unknownText
;
178 case 'error': return Proxmox
.Utils
.errorText
+ ': ' + value
;
179 case 'ok': // fall-through
180 case 'warning': // fall-through
181 default: return value
;
187 itemdblclick
: run_task_viewer
,
188 selectionchange: function(v
, selections
) {
189 view_btn
.setDisabled(!(selections
&& selections
[0]));
191 show: function() { reload_task
.delay(10); },
192 destroy: function() { reload_task
.cancel(); },