public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH pve-manager] fix #5936: ui: backup: add CT PBS change detection mode selector
@ 2024-11-29 12:40 Christian Ebner
  2024-11-29 13:09 ` Shannon Sterz
  2024-11-29 15:01 ` Christian Ebner
  0 siblings, 2 replies; 6+ messages in thread
From: Christian Ebner @ 2024-11-29 12:40 UTC (permalink / raw)
  To: pve-devel

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@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



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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [pve-devel] [PATCH pve-manager] fix #5936: ui: backup: add CT PBS change detection mode selector
  2024-11-29 12:40 [pve-devel] [PATCH pve-manager] fix #5936: ui: backup: add CT PBS change detection mode selector Christian Ebner
@ 2024-11-29 13:09 ` Shannon Sterz
  2024-11-29 13:18   ` Christian Ebner
  2024-11-29 15:01 ` Christian Ebner
  1 sibling, 1 reply; 6+ messages in thread
From: Shannon Sterz @ 2024-11-29 13:09 UTC (permalink / raw)
  To: Proxmox VE development discussion

On Fri Nov 29, 2024 at 1:40 PM CET, Christian Ebner wrote:
> 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@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;

nit: i think legibility of this would be improved by doing this instead:

let pbsChangeDetectionModeSelector = null;
if (me.vmtype === 'lxc') {
    pbsChangeDetectionModeSelector = Ext.create({
        ...
    })
}

it shouldn't be too much longer, but having a ternary operate span ten
lines of code is a bit much :)

> +
>  	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']);



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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [pve-devel] [PATCH pve-manager] fix #5936: ui: backup: add CT PBS change detection mode selector
  2024-11-29 13:09 ` Shannon Sterz
@ 2024-11-29 13:18   ` Christian Ebner
  2024-11-29 13:25     ` Shannon Sterz
  0 siblings, 1 reply; 6+ messages in thread
From: Christian Ebner @ 2024-11-29 13:18 UTC (permalink / raw)
  To: Proxmox VE development discussion, Shannon Sterz

On 11/29/24 14:09, Shannon Sterz wrote:
> On Fri Nov 29, 2024 at 1:40 PM CET, Christian Ebner wrote:
>> 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@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;
> 
> nit: i think legibility of this would be improved by doing this instead:
> 
> let pbsChangeDetectionModeSelector = null;
> if (me.vmtype === 'lxc') {
>      pbsChangeDetectionModeSelector = Ext.create({
>          ...
>      })
> }
> 
> it shouldn't be too much longer, but having a ternary operate span ten
> lines of code is a bit much :)

Okay, another option would be to show the selector unconditionally for 
both VMs and CTs, but only ever enable it for the CTs.
That way one could also get rid of the `vmtype` check when disabling the 
selector below, and the window layout would remain the same for both 
types, making it less messy and error prone for future adaptions.

Opinions on that?


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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [pve-devel] [PATCH pve-manager] fix #5936: ui: backup: add CT PBS change detection mode selector
  2024-11-29 13:18   ` Christian Ebner
@ 2024-11-29 13:25     ` Shannon Sterz
  2024-11-29 13:43       ` Christian Ebner
  0 siblings, 1 reply; 6+ messages in thread
From: Shannon Sterz @ 2024-11-29 13:25 UTC (permalink / raw)
  To: Christian Ebner, Proxmox VE development discussion

On Fri Nov 29, 2024 at 2:18 PM CET, Christian Ebner wrote:
> On 11/29/24 14:09, Shannon Sterz wrote:
> > On Fri Nov 29, 2024 at 1:40 PM CET, Christian Ebner wrote:
> >> 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@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;
> >
> > nit: i think legibility of this would be improved by doing this instead:
> >
> > let pbsChangeDetectionModeSelector = null;
> > if (me.vmtype === 'lxc') {
> >      pbsChangeDetectionModeSelector = Ext.create({
> >          ...
> >      })
> > }
> >
> > it shouldn't be too much longer, but having a ternary operate span ten
> > lines of code is a bit much :)
>
> Okay, another option would be to show the selector unconditionally for
> both VMs and CTs, but only ever enable it for the CTs.
> That way one could also get rid of the `vmtype` check when disabling the
> selector below, and the window layout would remain the same for both
> types, making it less messy and error prone for future adaptions.
>
> Opinions on that?

i think that could be fine, as long as users have a way of knowing why
the option is disabled. since it is never there for VMs regardless of
the storage, it might be a little confusing. most other cases where we
disable stuff like this it purely comes down to the storage's support
for a feature afaict.

maybe add "(Container Only)" to the field label? not sure if that works
out layouting-wise though. "PBS change detection mode" is already pretty
long (in the backup job's advanced section there is an extra explainer
next to the field, which makes this clear).


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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [pve-devel] [PATCH pve-manager] fix #5936: ui: backup: add CT PBS change detection mode selector
  2024-11-29 13:25     ` Shannon Sterz
@ 2024-11-29 13:43       ` Christian Ebner
  0 siblings, 0 replies; 6+ messages in thread
From: Christian Ebner @ 2024-11-29 13:43 UTC (permalink / raw)
  To: Shannon Sterz, Proxmox VE development discussion

On 11/29/24 14:25, Shannon Sterz wrote:
> On Fri Nov 29, 2024 at 2:18 PM CET, Christian Ebner wrote:
>> On 11/29/24 14:09, Shannon Sterz wrote:
>>> On Fri Nov 29, 2024 at 1:40 PM CET, Christian Ebner wrote:
>>>> 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@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;
>>>
>>> nit: i think legibility of this would be improved by doing this instead:
>>>
>>> let pbsChangeDetectionModeSelector = null;
>>> if (me.vmtype === 'lxc') {
>>>       pbsChangeDetectionModeSelector = Ext.create({
>>>           ...
>>>       })
>>> }
>>>
>>> it shouldn't be too much longer, but having a ternary operate span ten
>>> lines of code is a bit much :)
>>
>> Okay, another option would be to show the selector unconditionally for
>> both VMs and CTs, but only ever enable it for the CTs.
>> That way one could also get rid of the `vmtype` check when disabling the
>> selector below, and the window layout would remain the same for both
>> types, making it less messy and error prone for future adaptions.
>>
>> Opinions on that?
> 
> i think that could be fine, as long as users have a way of knowing why
> the option is disabled. since it is never there for VMs regardless of
> the storage, it might be a little confusing. most other cases where we
> disable stuff like this it purely comes down to the storage's support
> for a feature afaict.
> 
> maybe add "(Container Only)" to the field label? not sure if that works
> out layouting-wise though. "PBS change detection mode" is already pretty
> long (in the backup job's advanced section there is an extra explainer
> next to the field, which makes this clear).

I think rather than adding more text to the label, it would be more 
ergonomic to additionally show a tooltip.
For example like it is shown now for the listing of sync jobs, 
explaining local user vs. owner in the header.

Thanks for feedback, will make the selector unconditional and add the 
tooltip to the label in an upcoming version 2 of the patch.


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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [pve-devel] [PATCH pve-manager] fix #5936: ui: backup: add CT PBS change detection mode selector
  2024-11-29 12:40 [pve-devel] [PATCH pve-manager] fix #5936: ui: backup: add CT PBS change detection mode selector Christian Ebner
  2024-11-29 13:09 ` Shannon Sterz
@ 2024-11-29 15:01 ` Christian Ebner
  1 sibling, 0 replies; 6+ messages in thread
From: Christian Ebner @ 2024-11-29 15:01 UTC (permalink / raw)
  To: pve-devel

superseded-by version 2:
https://lore.proxmox.com/pve-devel/20241129150013.323432-1-c.ebner@proxmox.com/T/


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


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-11-29 15:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-29 12:40 [pve-devel] [PATCH pve-manager] fix #5936: ui: backup: add CT PBS change detection mode selector Christian Ebner
2024-11-29 13:09 ` Shannon Sterz
2024-11-29 13:18   ` Christian Ebner
2024-11-29 13:25     ` Shannon Sterz
2024-11-29 13:43       ` Christian Ebner
2024-11-29 15:01 ` Christian Ebner

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