ui: datastore content: show last verify result from a snapshot

Double-click on the verify grid-cell of a specific snapshot (not the
group) opens the relevant task log.

The date of the last verify is shown as tool-tip.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht 2020-08-25 17:30:28 +02:00 committed by Dietmar Maurer
parent 3b2046d263
commit 7b212c1f79
1 changed files with 40 additions and 0 deletions

View File

@ -10,6 +10,7 @@ Ext.define('pbs-data-store-snapshots', {
}, },
'files', 'files',
'owner', 'owner',
'verification',
{ name: 'size', type: 'int', allowNull: true, }, { name: 'size', type: 'int', allowNull: true, },
{ {
name: 'crypt-mode', name: 'crypt-mode',
@ -209,6 +210,10 @@ Ext.define('PBS.DataStoreContent', {
group.size = item.size; group.size = item.size;
group.owner = item.owner; group.owner = item.owner;
} }
if (item.verification &&
(!group.verification || group.verification.state !== 'failed')) {
group.verification = item.verification;
}
} }
group.count = group.children.length; group.count = group.children.length;
@ -563,6 +568,41 @@ Ext.define('PBS.DataStoreContent', {
return (iconTxt + PBS.Utils.cryptText[v]) || Proxmox.Utils.unknownText return (iconTxt + PBS.Utils.cryptText[v]) || Proxmox.Utils.unknownText
} }
}, },
{
header: gettext('Verify State'),
sortable: true,
dataIndex: 'verification',
renderer: (v, meta, record) => {
if (v === undefined || v === null || !v.state) {
//meta.tdCls = "x-grid-row-loading";
return record.data.leaf ? '' : gettext('None');
}
let task = Proxmox.Utils.parse_task_upid(v.upid);
let verify_time = Proxmox.Utils.render_timestamp(task.starttime);
let iconCls = v.state === 'ok' ? 'check good' : 'times critical';
let tip = `Verify task started on ${verify_time}`;
if (record.parentNode.id === 'root') {
tip = v.state === 'ok'
? 'All verification OK in backup group'
: 'At least one failed verification in backup group!';
}
return `<span data-qtip="${tip}">
<i class="fa fa-fw fa-${iconCls}"></i> ${v.state}
</span>`;
},
listeners: {
dblclick: function(view, el, row, col, ev, rec) {
let data = rec.data || {};
let verify = data.verification;
if (verify && verify.upid && rec.parentNode.id !== 'root') {
let win = Ext.create('Proxmox.window.TaskViewer', {
upid: verify.upid,
});
win.show();
}
},
},
},
], ],
tbar: [ tbar: [