depending on the other retention settings and as long as it isn't
dirty (other than from the updating itself). Allow an unlimited number
when keep-all=1 and use the default fall-back to 5 when pruning or
fall-back for retention is configured.

Signed-off-by: Fabian Ebner <f.eb...@proxmox.com>
---

Might be too much automagic, maybe just setting -1 in afterrender and
the never-rendered scenario is also enough? That is, if we even want
the GUI default for creation to be unlimited. Just thought that it
would better fit the keep-all default.

 www/manager6/panel/BackupJobPrune.js | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/www/manager6/panel/BackupJobPrune.js 
b/www/manager6/panel/BackupJobPrune.js
index 555bccf2..880f0234 100644
--- a/www/manager6/panel/BackupJobPrune.js
+++ b/www/manager6/panel/BackupJobPrune.js
@@ -13,7 +13,14 @@ Ext.define('PVE.panel.BackupJobPrune', {
        if (this.needMask) { // isMasked() may not yet be true if not rendered 
once
            return {};
        } else if (this.isCreate && !this.rendered) {
-           return this.keepAllDefaultForCreate ? { 'prune-backups': 
'keep-all=1' } : {};
+           let options = {};
+           if (this.keepAllDefaultForCreate) {
+               options['prune-backups'] = 'keep-all=1';
+               if (this.hasMaxProtected) {
+                   options['max-protected-backups'] = -1;
+               }
+           }
+           return options;
        }
 
        let options = { 'delete': [] };
@@ -54,6 +61,17 @@ Ext.define('PVE.panel.BackupJobPrune', {
            field.setDisabled(keepAll);
        });
        me.down('component[name=no-keeps-hint]').setHidden(anyValue || keepAll);
+
+       let maxProtected = 
me.down('proxmoxintegerfield[name=max-protected-backups]');
+       if (me.isCreate && me.hasMaxProtected && !maxProtected.isDirty()) {
+           if (keepAll) {
+               maxProtected.setValue(-1);
+               maxProtected.resetOriginalValue();
+           } else {
+               maxProtected.setValue('');
+               maxProtected.resetOriginalValue();
+           }
+       }
     },
 
     listeners: {
@@ -71,6 +89,10 @@ Ext.define('PVE.panel.BackupJobPrune', {
            let maxProtected = 
panel.down('proxmoxintegerfield[name=max-protected-backups]');
            maxProtected.setDisabled(!panel.hasMaxProtected);
            maxProtected.setHidden(!panel.hasMaxProtected);
+           if (panel.isCreate && panel.hasMaxProtected) {
+               maxProtected.setValue(-1);
+               maxProtected.resetOriginalValue();
+           }
 
            panel.query('pmxPruneKeepField').forEach(field => {
                field.on('change', panel.updateComponents, panel);
-- 
2.30.2



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

Reply via email to