diff --git a/www/Utils.js b/www/Utils.js index ab48bdcf..775c03d7 100644 --- a/www/Utils.js +++ b/www/Utils.js @@ -161,6 +161,11 @@ Ext.define('PBS.Utils', { return `Datastore ${what} ${id}`; }, + // mimics Display trait in backend + renderKeyID: function(fingerprint) { + return fingerprint.substring(0, 23); + }, + parse_datastore_worker_id: function(type, id) { let result; let res; diff --git a/www/datastore/Content.js b/www/datastore/Content.js index acd4184b..12dacb89 100644 --- a/www/datastore/Content.js +++ b/www/datastore/Content.js @@ -12,6 +12,7 @@ Ext.define('pbs-data-store-snapshots', { 'files', 'owner', 'verification', + 'fingerprint', { name: 'size', type: 'int', allowNull: true }, { name: 'crypt-mode', @@ -182,6 +183,7 @@ Ext.define('PBS.DataStoreContent', { for (const file of data.files) { file.text = file.filename; file['crypt-mode'] = PBS.Utils.cryptmap.indexOf(file['crypt-mode']); + file.fingerprint = data.fingerprint; file.leaf = true; file.matchesFilter = true; @@ -699,7 +701,16 @@ Ext.define('PBS.DataStoreContent', { if (iconCls) { iconTxt = ` `; } - return (iconTxt + PBS.Utils.cryptText[v]) || Proxmox.Utils.unknownText; + let tip; + if (v !== PBS.Utils.cryptmap.indexOf('none') && record.data.fingerprint !== undefined) { + tip = "Key: " + PBS.Utils.renderKeyID(record.data.fingerprint); + } + let txt = (iconTxt + PBS.Utils.cryptText[v]) || Proxmox.Utils.unknownText; + if (record.parentNode.id === 'root' || tip === undefined) { + return txt; + } else { + return `${txt}`; + } }, }, {