If the freeze-fs-on-backup key is not explicitly set on the config file or if it is explicitly enabled (which matches its default) we hide the corresponding checkbox and hint.
Note that when the checkbox is unchecked we delete the value from the config. A consequence of this is that if the deprecated key is explicitly set `freeze-fs-on-backup=1`, we open the dialog, change some unrelated setting (so that the OK button becomes sensitive), press OK to save the settings, then the deprecated key freeze-fs-on-backup key would be gone from the config. Signed-off-by: Maximiliano Sandoval <[email protected]> --- www/manager6/form/AgentFeatureSelector.js | 27 ++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/www/manager6/form/AgentFeatureSelector.js b/www/manager6/form/AgentFeatureSelector.js index 39ee211a..51d9d94e 100644 --- a/www/manager6/form/AgentFeatureSelector.js +++ b/www/manager6/form/AgentFeatureSelector.js @@ -2,7 +2,18 @@ Ext.define('PVE.form.AgentFeatureSelector', { extend: 'Proxmox.panel.InputPanel', alias: ['widget.pveAgentFeatureSelector'], - viewModel: {}, + viewModel: { + data: { + hideFreezeFsOnBackup: true, + freezeFsOnBackupChecked: true, + }, + + formulas: { + hideFreezeFsOnBackupNotes: function (get) { + return get('freezeFsOnBackupChecked') || get('hideFreezeFsOnBackup'); + }, + }, + }, items: [ { @@ -75,9 +86,10 @@ Ext.define('PVE.form.AgentFeatureSelector', { 'Freeze/thaw guest filesystems on backup for consistency. Deprecated in favor of the more general setting.', ), name: 'freeze-fs-on-backup', - reference: 'freeze_fs_on_backup', bind: { disabled: '{!enabled.checked}', + value: '{freezeFsOnBackupChecked}', + hidden: '{hideFreezeFsOnBackup}', }, disabled: true, uncheckedValue: '0', @@ -90,7 +102,7 @@ Ext.define('PVE.form.AgentFeatureSelector', { 'Freeze/thaw for guest filesystems disabled. This can lead to inconsistent disk backups.', ), bind: { - hidden: '{freeze_fs_on_backup.checked}', + hidden: '{hideFreezeFsOnBackupNotes}', }, }, ], @@ -109,8 +121,17 @@ Ext.define('PVE.form.AgentFeatureSelector', { setValues: function (values) { let me = this; + let vm = me.getViewModel(); let res = PVE.Parser.parsePropertyString(values.agent, 'enabled'); + + // We hide the switch for the deprecated freeze-fs-on-backup if the setting was not + // explicitly set by the user or if was explicitly enabled. + vm.set( + 'hideFreezeFsOnBackup', + !Ext.isDefined(res['freeze-fs-on-backup']) || res['freeze-fs-on-backup'] === '1', + ); + if (!Ext.isDefined(res['freeze-fs-on-backup'])) { res['freeze-fs-on-backup'] = 1; } -- 2.47.3
