From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pbs-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id D7FFF1FF16B for <inbox@lore.proxmox.com>; Thu, 3 Apr 2025 10:31:28 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 0348C3A1AD; Thu, 3 Apr 2025 10:31:18 +0200 (CEST) Message-ID: <8824f44e-0753-4fa3-b39f-52a5ff416e71@proxmox.com> Date: Thu, 3 Apr 2025 10:31:14 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta To: pbs-devel@lists.proxmox.com References: <20250318094756.204368-1-c.ebner@proxmox.com> Content-Language: en-US From: Dominik Csapak <d.csapak@proxmox.com> In-Reply-To: <20250318094756.204368-1-c.ebner@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.022 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy 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 Subject: Re: [pbs-devel] [PATCH v2 proxmox-backup 1/2] fix: ui: sync job: edit rate limit based on sync direction X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion <pbs-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/> List-Post: <mailto:pbs-devel@lists.proxmox.com> List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com> Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com> Looks good to me now, if we want to have a unified parameter here, we can still add it later too. Reviewed-by: Dominik Csapak <d.csapak@proxmox.com> Tested-by: Dominik Csapak <d.csapak@proxmox.com> On 3/18/25 10:47, Christian Ebner wrote: > Commit 9aa213b8 ("ui: sync job: adapt edit window to be used for pull > and push") adapted the sync job edit so jobs in both, push and pull > can be edited using the same window. This however did not include the > switching of the direction to which the http client rate limit is > applied to. > > Fix this by further adding the edit field for `rate-out` and > conditionally hide the less useful rate limit direction (rate-out for > pull and rate-in for push). This allows to preserve the values if > explicitly set via the sync job config. > > Reported in the community forum: > https://forum.proxmox.com/threads/163414/ > > Fixes: 9aa213b8 ("ui: sync job: adapt edit window to be used for pull and push") > Signed-off-by: Christian Ebner <c.ebner@proxmox.com> > --- > changes since version 1 (thanks at Dominik for feedback): > - add additional rate limit field, but hide less useful one based on > sync direction > - preserve values of unchanged rate limit for less useful direction if > set via config. > > www/window/SyncJobEdit.js | 39 +++++++++++++++++++++++++++++++++------ > 1 file changed, 33 insertions(+), 6 deletions(-) > > diff --git a/www/window/SyncJobEdit.js b/www/window/SyncJobEdit.js > index bcd2f2fb2..683babaf2 100644 > --- a/www/window/SyncJobEdit.js > +++ b/www/window/SyncJobEdit.js > @@ -72,9 +72,16 @@ Ext.define('PBS.window.SyncJobEdit', { > > init: function() { > let view = this.getView(); > - if (view.syncDirectionPush && view.datastore !== undefined) { > - let localNs = view.down('pbsNamespaceSelector[name=ns]').getValue(); > - view.down('pbsGroupFilter').setLocalNamespace(view.datastore, localNs); > + // Cannot use cbind to hide rate limit field depending on sync direction, > + // set it in init as workaround. > + if (view.syncDirectionPush) { > + view.down('pmxBandwidthField[name=rate-in]').setHidden(true); > + if (view.datastore !== undefined) { > + let localNs = view.down('pbsNamespaceSelector[name=ns]').getValue(); > + view.down('pbsGroupFilter').setLocalNamespace(view.datastore, localNs); > + } > + } else { > + view.down('pmxBandwidthField[name=rate-out]').setHidden(true); > } > }, > }, > @@ -89,6 +96,15 @@ Ext.define('PBS.window.SyncJobEdit', { > me.callParent([values]); > }, > > + getVisibleRateLimitField: function() { > + let me = this; > + if (me.syncDirectionPush) { > + return me.down('field[name=rate-out]'); > + } else { > + return me.down('field[name=rate-in]'); > + } > + }, > + > items: { > xtype: 'tabpanel', > bodyPadding: 10, > @@ -105,6 +121,7 @@ Ext.define('PBS.window.SyncJobEdit', { > } > if (!me.isCreate) { > PBS.Utils.delete_if_default(values, 'rate-in'); > + PBS.Utils.delete_if_default(values, 'rate-out'); > PBS.Utils.delete_if_default(values, 'remote'); > if (typeof values.delete === 'string') { > values.delete = values.delete.split(','); > @@ -189,7 +206,17 @@ Ext.define('PBS.window.SyncJobEdit', { > fieldLabel: gettext('Rate Limit'), > emptyText: gettext('Unlimited'), > submitAutoScaledSizeUnit: true, > - // NOTE: handle deleteEmpty in onGetValues due to bandwidth field having a cbind too > + // NOTE: handle deleteEmpty in onGetValues due to bandwidth field having a cbind too, > + // further hide rate limit field depending on sync direction in controller init. > + }, > + { > + xtype: 'pmxBandwidthField', > + name: 'rate-out', > + fieldLabel: gettext('Rate Limit'), > + emptyText: gettext('Unlimited'), > + submitAutoScaledSizeUnit: true, > + // NOTE: handle deleteEmpty in onGetValues due to bandwidth field having a cbind too, > + // further hide rate limit field depending on sync direction in controller init. > }, > ], > > @@ -221,7 +248,7 @@ Ext.define('PBS.window.SyncJobEdit', { > let me = this; > let form = me.up('pbsSyncJobEdit'); > let nsField = form.down('field[name=remote-ns]'); > - let rateLimitField = form.down('field[name=rate-in]'); > + let rateLimitField = form.getVisibleRateLimitField(); > let remoteField = form.down('field[name=remote]'); > let storeField = form.down('field[name=remote-store]'); > > @@ -263,7 +290,7 @@ Ext.define('PBS.window.SyncJobEdit', { > let me = this; > let remoteStoreField = me.up('pbsSyncJobEdit').down('field[name=remote-store]'); > remoteStoreField.setRemote(value); > - let rateLimitField = me.up('pbsSyncJobEdit').down('field[name=rate-in]'); > + let rateLimitField = me.up('pbsSyncJobEdit').getVisibleRateLimitField(); > rateLimitField.setDisabled(!value); > if (!value) { > rateLimitField.setValue(null); _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel