]>
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');
84 if (status
&& status
!== 'OK') {
85 return "proxmox-invalid-row";
93 text
: gettext('Refresh'), // FIXME: smart-auto-refresh store
94 handler
: () => store
.reload(),
97 gettext('User name') +':',
103 enableKeyEvents
: true,
105 keyup: function(field
, e
) {
106 userfilter
= field
.getValue();
107 reload_task
.delay(500);
110 }, ' ', gettext('Only Errors') + ':', ' ',
114 checked
: filter_errors
,
116 change: function(field
, checked
) {
117 filter_errors
= checked
? 1 : 0;
118 reload_task
.delay(10);
125 header
: gettext("Start Time"),
126 dataIndex
: 'starttime',
128 renderer: function(value
) {
129 return Ext
.Date
.format(value
, "M d H:i:s");
133 header
: gettext("End Time"),
134 dataIndex
: 'endtime',
136 renderer: function(value
, metaData
, record
) {
138 metaData
.tdCls
= "x-grid-row-loading";
141 return Ext
.Date
.format(value
, "M d H:i:s");
145 header
: gettext("Node"),
150 header
: gettext("User name"),
155 header
: gettext("Description"),
158 renderer
: Proxmox
.Utils
.render_upid
,
161 header
: gettext("Status"),
164 renderer: function(value
, metaData
, record
) {
165 if (value
=== 'OK') {
168 if (value
=== undefined && !record
.data
.endtime
) {
169 metaData
.tdCls
= "x-grid-row-loading";
172 return "ERROR: " + value
;
177 itemdblclick
: run_task_viewer
,
178 selectionchange: function(v
, selections
) {
179 view_btn
.setDisabled(!(selections
&& selections
[0]));
181 show: function() { reload_task
.delay(10); },
182 destroy: function() { reload_task
.cancel(); },