From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 86F2792BC0 for ; Wed, 14 Sep 2022 12:56:49 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7B50A2B1CA for ; Wed, 14 Sep 2022 12:56:19 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 14 Sep 2022 12:56:18 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 6FAA64410D for ; Wed, 14 Sep 2022 12:50:53 +0200 (CEST) From: Matthias Heiserer To: pbs-devel@lists.proxmox.com Date: Wed, 14 Sep 2022 12:50:38 +0200 Message-Id: <20220914105039.186907-1-m.heiserer@proxmox.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.164 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox.com] Subject: [pbs-devel] [PATCH proxmox-backup 1/2] prune-simulator: allow setting a date on which prune happens X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Sep 2022 10:56:49 -0000 With this applied, the prune simulator will be more flexible, which might clear up questions such as these: https://forum.proxmox.com/threads/pbs-prune-simulator-monthly-backups.115081 In order to have the configuration window not take up too much space, I added another column and moved the border slightly to the left, so the options part looks off-centered. Signed-off-by: Matthias Heiserer --- .../prune-simulator/prune-simulator_source.js | 92 ++++++++++++------- 1 file changed, 58 insertions(+), 34 deletions(-) diff --git a/docs/prune-simulator/prune-simulator_source.js b/docs/prune-simulator/prune-simulator_source.js index 84d3461c..137cf1b3 100644 --- a/docs/prune-simulator/prune-simulator_source.js +++ b/docs/prune-simulator/prune-simulator_source.js @@ -330,6 +330,8 @@ Ext.onReady(function() { let params = view.getValues(); + NOW.setTime(Date.parse(params.currentDate)); + let [hourSpec, minuteSpec] = params['schedule-time'].split(':'); if (!hourSpec || !minuteSpec) { @@ -661,48 +663,70 @@ Ext.onReady(function() { { xtype: "panel", width: 1, border: 1 }, { xtype: 'form', - layout: 'anchor', - flex: 1, + layout: 'hbox', + flex: 1.2, border: false, title: 'Simulated Backup Schedule', defaults: { - labelWidth: 120, + defaults: { + labelWidth: 120, + }, }, bodyPadding: 10, items: [ { - xtype: 'prunesimulatorDayOfWeekSelector', - name: 'schedule-weekdays', - fieldLabel: 'Day of week', - value: ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'], - allowBlank: false, - multiSelect: true, - padding: '0 0 0 10', + xtype: 'container', + layout: 'anchor', + items: [ + { + xtype: 'prunesimulatorDayOfWeekSelector', + name: 'schedule-weekdays', + fieldLabel: 'Day of week', + value: ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'], + allowBlank: false, + multiSelect: true, + padding: '0 0 0 10', + }, + { + xtype: 'prunesimulatorCalendarEvent', + name: 'schedule-time', + allowBlank: false, + value: '0/6:00', + fieldLabel: 'Backup schedule', + padding: '0 0 0 10', + }, + { + xtype: 'numberfield', + name: 'numberOfWeeks', + allowBlank: false, + fieldLabel: 'Number of weeks', + minValue: 1, + value: 15, + maxValue: 260, // five years + padding: '0 0 0 10', + }, + { + xtype: 'button', + name: 'schedule-button', + text: 'Update Schedule', + formBind: true, + handler: 'reloadFull', + }, + ], }, { - xtype: 'prunesimulatorCalendarEvent', - name: 'schedule-time', - allowBlank: false, - value: '0/6:00', - fieldLabel: 'Backup schedule', - padding: '0 0 0 10', - }, - { - xtype: 'numberfield', - name: 'numberOfWeeks', - allowBlank: false, - fieldLabel: 'Number of weeks', - minValue: 1, - value: 15, - maxValue: 260, // five years - padding: '0 0 0 10', - }, - { - xtype: 'button', - name: 'schedule-button', - text: 'Update Schedule', - formBind: true, - handler: 'reloadFull', + xtype: 'container', + layout: 'anchor', + items: [ + { + xtype: 'datefield', + name: 'currentDate', + fieldLabel: 'Today', + allowBlank: false, + padding: '0 0 0 10', + value: new Date(), + }, + ], }, ], }, @@ -734,7 +758,7 @@ Ext.onReady(function() { xtype: 'prunesimulatorPruneList', store: me.pruneStore, reference: 'pruneList', - flex: 1, + flex: 1.2, }, ], }, -- 2.30.2