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




Reply via email to