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

Thomas Lamprecht t.lamprecht at proxmox.com
Tue Jun 16 11:19:44 CEST 2020


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.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;

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,
> 





More information about the pve-devel mailing list