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