From c9d603afff59e295542ae41e37ca7b49283bb7dd Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Mon, 15 Jun 2020 16:07:10 +0200 Subject: [PATCH] task viewer: show task endtime and duration in status But only when the caller gives us the endtime, since the status API call does not give us the endtime. As we stop updating the store once a task isn't running anymore the fallback to current unix utc timestamp doesn't needs an additional check, the last one is shown static then. Signed-off-by: Dominik Csapak [ Thomas: improve commit message ] Signed-off-by: Thomas Lamprecht --- 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; + 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, -- 2.39.2