Am 6/15/20 um 4:07 PM schrieb Dominik Csapak: > but only when the caller gives us the endtime, since the status > api call does not give us the endtime > > Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> > --- > changes from v1: > * always show duration and calculate the endtime from 'now' > > src/node/Tasks.js | 1 + > src/window/TaskViewer.js | 25 +++++++++++++++++++++++++ > 2 files changed, 26 insertions(+) > > diff --git a/src/node/Tasks.js b/src/node/Tasks.js > index 5aff06d..c41f0b5 100644 > --- a/src/node/Tasks.js > +++ b/src/node/Tasks.js > @@ -60,6 +60,7 @@ Ext.define('Proxmox.node.Tasks', { > > let win = Ext.create('Proxmox.window.TaskViewer', { > upid: rec.data.upid, > + endtime: rec.data.endtime, > }); > win.show(); > }; > diff --git a/src/window/TaskViewer.js b/src/window/TaskViewer.js > index 2f31023..51715f8 100644 > --- a/src/window/TaskViewer.js > +++ b/src/window/TaskViewer.js > @@ -152,6 +152,31 @@ Ext.define('Proxmox.window.TaskViewer', { > }, > }; > > + if (me.endtime) { > + if (typeof me.endtime === 'object') { > + // convert to epoch > + me.endtime = parseInt(me.endtime.getTime()/1000, 10); > + } > + rows.endtime = { > + header: gettext('End Time'), > + required: true, > + renderer: function() { > + return Proxmox.Utils.render_timestamp(me.endtime); > + }, > + }; > + } > + > + rows.duration = { > + header: gettext('Duration'), > + required: true, > + renderer: function() { > + let starttime = statgrid.getObjectValue('starttime'); > + let endtime = me.endtime || Date.now()/1000;
We'd need to check also the status (running or not) to know if we can still fallback to the current time, or? As else, if a running task gets opened we never will get supplied the endtime (as we only pass that once on window creation) even if the task ends after a bit. We could solve this by remembering the last duration and then fallback to that one if we have no endtime and the task status switches from running to something else? > + let duration = endtime - starttime; > + return Proxmox.Utils.format_duration_human(duration); > + }, > + }; > + > let statstore = Ext.create('Proxmox.data.ObjectStore', { > url: "/api2/json/nodes/" + task.node + "/tasks/" + me.upid + > "/status", > interval: 1000, > _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel