From: Jonas Theisen <j.theisen@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [PATCH proxmox-backup v3 10/10] ui: create datastore: add enable checkboxes for {GC, prune}
Date: Fri, 9 Oct 2026 16:54:41 +0200 [thread overview]
Message-ID: <20261009145445.282494-8-j.theisen@proxmox.com> (raw)
In-Reply-To: <20261009145445.282494-1-j.theisen@proxmox.com>
To allow users to disable GC and prune jobs at creation of
a datastore without setting the schedule to none, this patch
adds the necessary checkboxes and logic.
This patch depends on a changed API endpoint to allow
a creation of the datastore without the prune job.
Signed-off-by: Jonas Theisen <j.theisen@proxmox.com>
---
www/window/DataStoreEdit.js | 77 +++++++++++++++++++++++++++++++++++--
1 file changed, 73 insertions(+), 4 deletions(-)
diff --git a/www/window/DataStoreEdit.js b/www/window/DataStoreEdit.js
index 911bf47d6..2a59d33ed 100644
--- a/www/window/DataStoreEdit.js
+++ b/www/window/DataStoreEdit.js
@@ -26,6 +26,19 @@ Ext.define('PBS.DataStoreEdit', {
return {};
},
+ setValues: function (values) {
+ let me = this;
+
+ if (!values['gc-schedule'] || values['gc-schedule'] === '') {
+ values['gc-disable'] = true;
+ }
+ if (!values['prune-schedule'] || values['prune-schedule'] === '') {
+ values['prune-disable'] = true;
+ }
+
+ me.callParent([values]);
+ },
+
items: {
xtype: 'tabpanel',
bodyPadding: 10,
@@ -142,24 +155,62 @@ Ext.define('PBS.DataStoreEdit', {
},
],
column2: [
+ {
+ xtype: 'proxmoxcheckbox',
+ fieldLabel: gettext('Enable GC'),
+ name: 'gc-enable',
+ autoEl: {
+ tag: 'div',
+ 'data-qtip': gettext('Enable scheduled execution of garbage collection.'),
+ },
+ listeners: {
+ change: function (field, enabled) {
+ let me = this;
+ let view = me.up('pbsDataStoreEdit');
+ let schedule = view.down('field[name=gc-schedule]');
+ schedule.setDisabled(!enabled);
+ },
+ },
+ uncheckedValue: false,
+ value: true,
+ },
{
xtype: 'pbsCalendarEvent',
name: 'gc-schedule',
fieldLabel: gettext('GC Schedule'),
- emptyText: gettext('none'),
+ allowBlank: false,
cbind: {
- deleteEmpty: '{!isCreate}',
value: '{scheduleValue}',
},
},
+ {
+ xtype: 'proxmoxcheckbox',
+ fieldLabel: gettext('Enable Prune'),
+ name: 'prune-enable',
+ autoEl: {
+ tag: 'div',
+ 'data-qtip': gettext('Create a prune job for this datastore.'),
+ },
+ listeners: {
+ change: function (field, enabled) {
+ let me = this;
+ let view = me.up('pbsDataStoreEdit');
+ let schedule = view.down('field[name=prune-schedule]');
+ let pruneOptions = view.down('pbsPruneInputPanel');
+ schedule.setDisabled(!enabled);
+ pruneOptions.setDisabled(!enabled);
+ },
+ },
+ uncheckedValue: false,
+ value: true,
+ },
{
xtype: 'pbsCalendarEvent',
name: 'prune-schedule',
fieldLabel: gettext('Prune Schedule'),
value: 'daily',
- emptyText: gettext('none'),
+ allowBlank: false,
cbind: {
- deleteEmpty: '{!isCreate}',
value: '{scheduleValue}',
},
},
@@ -238,6 +289,24 @@ Ext.define('PBS.DataStoreEdit', {
delete values.s3client;
delete values.bucket;
+ values['gc-disable'] = !values['gc-enable'];
+ if (me.isCreate) {
+ values['prune-disable'] = !values['prune-enable'];
+ }
+ delete values['gc-enable'];
+ delete values['prune-enable'];
+
+ return values;
+ },
+
+ onSetValues: function (values) {
+ let _me = this;
+
+ values['gc-enable'] = !values['gc-disable'];
+ values['prune-enable'] = !values['prune-disable'];
+ delete values['gc-disable'];
+ delete values['prune-disable'];
+
return values;
},
},
--
2.47.3
prev parent reply other threads:[~2026-10-09 14:55 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-09 14:54 [PATCH proxmox-backup v3 03/10] ui: prune job: align prune edit window to other "Enable" checkboxes Jonas Theisen
2026-10-09 14:54 ` [PATCH proxmox-backup v3 04/10] api: prune job: align prune job schedule to other jobs Jonas Theisen
2026-10-09 14:54 ` [PATCH proxmox-backup v3 05/10] fix #7904: api: implement "disable" for {sync,verify,tape,GC} jobs Jonas Theisen
2026-10-09 14:54 ` [PATCH proxmox-backup v3 06/10] fix #7904: ui: job edit: introduce "Enable" checkbox " Jonas Theisen
2026-10-09 14:54 ` [PATCH proxmox-backup v3 07/10] ui: improve visibility of disabled {sync,verify,tape,GC,prune} jobs on the overview page Jonas Theisen
2026-10-09 14:54 ` [PATCH proxmox-backup v3 08/10] ui: calendar-event: remove clear button from calendar selector Jonas Theisen
2026-10-09 14:54 ` [PATCH proxmox-backup v3 09/10] api: create datastore: allow creation without prune job Jonas Theisen
2026-10-09 14:54 ` Jonas Theisen [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261009145445.282494-8-j.theisen@proxmox.com \
--to=j.theisen@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox