[pbs-devel] [PATCH proxmox-backup 2/2] ui: add fingerprint also to the 'show repository information' window

Dominik Csapak d.csapak at proxmox.com
Wed Nov 29 12:03:09 CET 2023


by globally calling the 'status' api once and saving the fingerprint
into the global Proxmox variable.

since not all users might have that permission, ignore errors for that,
and don't show the fingerprint in this case

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
sending this seperately because i'm not sure if we want to have the
fingerprint here too, and if i handled the permission in an ok way

sadly there is no way to get that info from the browser itself
(at least i could not find it..)

 www/MainView.js                 | 11 +++++++++++
 www/window/DatastoreRepoInfo.js | 25 +++++++++++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/www/MainView.js b/www/MainView.js
index d35162e4..4dbfe9bf 100644
--- a/www/MainView.js
+++ b/www/MainView.js
@@ -184,6 +184,17 @@ Ext.define('PBS.MainView', {
 		interval: 15*60*1000,
 	    });
 
+	    Proxmox.Utils.API2Request({
+		url: `/api2/extjs/nodes/localhost/status`,
+		success: function({ result }) {
+		    if (result?.data?.info?.fingerprint) {
+			Proxmox.Fingerprint = result.data.info.fingerprint;
+		    }
+		},
+		failure: function() {
+		    // silently ignore errors
+		},
+	    });
 
 	    // select treeitem and load page from url fragment, if set
 	    let token = Ext.util.History.getToken() || 'pbsDashboard';
diff --git a/www/window/DatastoreRepoInfo.js b/www/window/DatastoreRepoInfo.js
index 9d2df9aa..eb704f81 100644
--- a/www/window/DatastoreRepoInfo.js
+++ b/www/window/DatastoreRepoInfo.js
@@ -13,6 +13,7 @@ Ext.define('PBS.window.DatastoreRepoInfo', {
 
     cbindData: function() {
 	let me = this;
+	let fingerprint = Proxmox.Fingerprint;
 	let host = window.location.hostname;
 	if (window.location.port.toString() !== "8007") {
 	    host += `:${window.location.port}`;
@@ -24,6 +25,7 @@ Ext.define('PBS.window.DatastoreRepoInfo', {
 
 	return {
 	    datastore,
+	    fingerprint,
 	    repository,
 	    repositoryWithUser,
 	};
@@ -43,6 +45,29 @@ Ext.define('PBS.window.DatastoreRepoInfo', {
 		value: '{datastore}',
 	    },
 	},
+	{
+	    fieldLabel: gettext('Fingerprint'),
+	    cbind: {
+		hidden: '{!fingerprint}',
+	    },
+	    items: [
+		{
+		    xtype: 'textfield',
+		    inputId: 'fingerprintField',
+		    editable: false,
+		    flex: 1,
+		    cbind: {
+			value: '{fingerprint}',
+		    },
+		},
+		{
+		    xtype: 'button',
+		    iconCls: 'fa fa-clipboard',
+		    handler: () => PBS.Utils.copyInputContent('fingerprintField'),
+		    text: gettext('Copy'),
+		},
+	    ],
+	},
 	{
 	    fieldLabel: gettext('Repository'),
 	    cbind: {},
-- 
2.30.2





More information about the pbs-devel mailing list