[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