[pve-devel] [PATCH pve-manager] fix #5936: ui: backup: add CT PBS change detection mode selector

Christian Ebner c.ebner at proxmox.com
Fri Nov 29 13:40:53 CET 2024


Allow to select the change detection mode when performing manual
backups of containers with Proxmox Backup Server as target, just like
for the advanced backup job options introduced by commit 3b21f19f
("www: advanced backup: add pbs change detection mode selector").

The selector is only shown in the backup window for containers and
only enabled when a Proxmox Backup Server is selected as target
storage.

Link to issue in bugtracker:
https://bugzilla.proxmox.com/show_bug.cgi?id=5936

Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
---
 www/manager6/window/Backup.js | 32 ++++++++++++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

diff --git a/www/manager6/window/Backup.js b/www/manager6/window/Backup.js
index 4418a9c7..82a2bd92 100644
--- a/www/manager6/window/Backup.js
+++ b/www/manager6/window/Backup.js
@@ -53,6 +53,19 @@ Ext.define('PVE.window.Backup', {
 	    },
 	});
 
+	let pbsChangeDetectionModeSelector = me.vmtype === 'lxc' ? Ext.create({
+	    xtype: 'proxmoxKVComboBox',
+	    fieldLabel: gettext('PBS change detection mode'),
+	    name: 'pbs-change-detection-mode',
+	    deleteEmpty: true,
+	    value: '__default__',
+	    comboItems: [
+		['__default__', "Default"],
+		['data', "Data"],
+		['metadata', "Metadata"],
+	    ],
+	}) : null;
+
 	const keepNames = [
 	    ['keep-last', gettext('Keep Last')],
 	    ['keep-hourly', gettext('Keep Hourly')],
@@ -110,10 +123,20 @@ Ext.define('PVE.window.Backup', {
 		    if (rec && rec.data && rec.data.type === 'pbs') {
 			compressionSelector.setValue('zstd');
 			compressionSelector.setDisabled(true);
-		    } else if (!compressionSelector.getEditable()) {
-			compressionSelector.setDisabled(false);
+			if (me.vmtype === 'lxc') {
+			    pbsChangeDetectionModeSelector.setValue('__default__');
+			    pbsChangeDetectionModeSelector.setDisabled(false);
+			}
+		    } else {
+			if (!compressionSelector.getEditable()) {
+			    compressionSelector.setDisabled(false);
+			}
+			if (me.vmtype === 'lxc') {
+			    pbsChangeDetectionModeSelector.setDisabled(true);
+			}
 		    }
 
+
 		    Proxmox.Utils.API2Request({
 			url: `/nodes/${me.nodename}/vzdump/defaults`,
 			method: 'GET',
@@ -193,6 +216,7 @@ Ext.define('PVE.window.Backup', {
 		storagesel,
 		modeSelector,
 		protectedCheckbox,
+		pbsChangeDetectionModeSelector,
 	    ],
 	    column2: [
 		compressionSelector,
@@ -289,6 +313,10 @@ Ext.define('PVE.window.Backup', {
 		    params.protected = values.protected;
 		}
 
+		if (values['pbs-change-detection-mode']) {
+		    params['pbs-change-detection-mode'] = values['pbs-change-detection-mode'];
+		}
+
 		if (values['notes-template']) {
 		    params['notes-template'] = PVE.Utils.escapeNotesTemplate(
 			values['notes-template']);
-- 
2.39.5





More information about the pve-devel mailing list