[pve-devel] [PATCH widget-toolkit v2 3/4] TaskViewer: show endtime and duration in status

Dominik Csapak d.csapak at proxmox.com
Mon Jun 15 16:07:10 CEST 2020


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.csapak at 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;
+		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.20.1





More information about the pve-devel mailing list