public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Christian Ebner <c.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH v2 pve-manager] fix #5936: ui: backup: add CT PBS change detection mode selector
Date: Fri, 29 Nov 2024 16:00:13 +0100	[thread overview]
Message-ID: <20241129150013.323432-1-c.ebner@proxmox.com> (raw)

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 shown for virtual machine and container backup in
order to maintain the same layout for both, but only enabled for
container backup with a Proxmox Backup Server 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@proxmox.com>
---
Changes since version 1 (thanks @Shannon for feedback):
- show selector for both, vm and ct to maintain layout, with the side
  effect of requiring less conditional checks
- show a tooltip icon above the selector, in order to explain under
  which circumstances the mode takes effect. Note: This was placed above
  as otherwise the text will not be shown on hover if the selector is in
  disabled state.

 www/manager6/window/Backup.js | 36 +++++++++++++++++++++++++++++++++--
 1 file changed, 34 insertions(+), 2 deletions(-)

diff --git a/www/manager6/window/Backup.js b/www/manager6/window/Backup.js
index 4418a9c7..24f7bbae 100644
--- a/www/manager6/window/Backup.js
+++ b/www/manager6/window/Backup.js
@@ -53,6 +53,19 @@ Ext.define('PVE.window.Backup', {
 	    },
 	});
 
+	let pbsChangeDetectionModeSelector = 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"],
+	    ],
+	});
+
 	const keepNames = [
 	    ['keep-last', gettext('Keep Last')],
 	    ['keep-hourly', gettext('Keep Hourly')],
@@ -110,10 +123,18 @@ 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);
+			}
+			pbsChangeDetectionModeSelector.setDisabled(true);
 		    }
 
+
 		    Proxmox.Utils.API2Request({
 			url: `/nodes/${me.nodename}/vzdump/defaults`,
 			method: 'GET',
@@ -193,6 +214,13 @@ Ext.define('PVE.window.Backup', {
 		storagesel,
 		modeSelector,
 		protectedCheckbox,
+		{
+		    xtype: 'box',
+		    html: `<i class="fa fa-question-circle" data-qtip="
+			${gettext("Mode to detect file changes and switch archive encoding format for container backups to Proxmox Backup Server. Not available for VM backups.")}
+		    "></i>`,
+		},
+		pbsChangeDetectionModeSelector,
 	    ],
 	    column2: [
 		compressionSelector,
@@ -289,6 +317,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



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


                 reply	other threads:[~2024-11-29 15:01 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241129150013.323432-1-c.ebner@proxmox.com \
    --to=c.ebner@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal