From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 2DDE71FF173 for ; Thu, 1 Aug 2024 09:44:43 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 2274B305C7; Thu, 1 Aug 2024 09:44:35 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Thu, 1 Aug 2024 09:43:54 +0200 Message-Id: <20240801074403.36229-23-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240801074403.36229-1-c.ebner@proxmox.com> References: <20240801074403.36229-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.020 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: [pbs-devel] [PATCH v2 proxmox-backup 22/31] ui: add view with separate grids for pull and push sync jobs 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: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" Show sync jobs in pull and in push direction in two separate grids, visually separating them to limit possible misconfiguration. Signed-off-by: Christian Ebner --- changes since version 1: - not present in previous version www/Makefile | 1 + www/config/SyncPullPushView.js | 60 ++++++++++++++++++++++++++++++++++ www/config/SyncView.js | 11 ++++++- www/datastore/DataStoreList.js | 2 +- www/datastore/Panel.js | 2 +- 5 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 www/config/SyncPullPushView.js diff --git a/www/Makefile b/www/Makefile index 609a0ba67..d35e81283 100644 --- a/www/Makefile +++ b/www/Makefile @@ -61,6 +61,7 @@ JSSRC= \ config/TrafficControlView.js \ config/ACLView.js \ config/SyncView.js \ + config/SyncPullPushView.js \ config/VerifyView.js \ config/PruneView.js \ config/GCView.js \ diff --git a/www/config/SyncPullPushView.js b/www/config/SyncPullPushView.js new file mode 100644 index 000000000..1588207c9 --- /dev/null +++ b/www/config/SyncPullPushView.js @@ -0,0 +1,60 @@ +Ext.define('PBS.config.SyncPullPush', { + extend: 'Ext.panel.Panel', + alias: 'widget.pbsSyncJobPullPushView', + title: gettext('Sync Jobs'), + + mixins: ['Proxmox.Mixin.CBind'], + + layout: { + type: 'vbox', + align: 'stretch', + multi: true, + }, + defaults: { + collapsible: false, + margin: '7 10 3 10', + }, + scrollable: true, + items: [ + { + xtype: 'pbsSyncJobView', + itemId: 'syncJobsPull', + syncDirection: 'pull', + cbind: { + datastore: '{datastore}', + }, + minHeight: 125, // shows at least one line of content + }, + { + xtype: 'splitter', + performCollapse: false, + }, + { + xtype: 'pbsSyncJobView', + itemId: 'syncJobsPush', + syncDirection: 'push', + cbind: { + datastore: '{datastore}', + }, + flex: 1, + minHeight: 160, // shows at least one line of content + }, + ], + initComponent: function() { + let me = this; + + let subPanelIds = me.items.map(el => el.itemId).filter(id => !!id); + + me.callParent(); + + for (const itemId of subPanelIds) { + let component = me.getComponent(itemId); + component.relayEvents(me, ['activate', 'deactivate', 'destroy']); + } + }, + + cbindData: function(initialConfig) { + let me = this; + me.datastore = initialConfig.datastore ? initialConfig.datastore : undefined; + }, +}); diff --git a/www/config/SyncView.js b/www/config/SyncView.js index 4669a23e2..68a147615 100644 --- a/www/config/SyncView.js +++ b/www/config/SyncView.js @@ -29,7 +29,7 @@ Ext.define('PBS.config.SyncJobView', { stateful: true, stateId: 'grid-sync-jobs-v1', - title: gettext('Sync Jobs'), + title: gettext('Sync Jobs - Pull Direction'), controller: { xclass: 'Ext.app.ViewController', @@ -39,6 +39,7 @@ Ext.define('PBS.config.SyncJobView', { let view = me.getView(); Ext.create('PBS.window.SyncJobEdit', { datastore: view.datastore, + syncDirection: view.syncDirection, listeners: { destroy: function() { me.reload(); @@ -55,6 +56,7 @@ Ext.define('PBS.config.SyncJobView', { Ext.create('PBS.window.SyncJobEdit', { datastore: view.datastore, + syncDirection: view.syncDirection, id: selection[0].data.id, listeners: { destroy: function() { @@ -117,6 +119,9 @@ Ext.define('PBS.config.SyncJobView', { if (view.datastore !== undefined) { params.store = view.datastore; } + if (view.syncDirection !== undefined) { + params["sync-direction"] = view.syncDirection; + } view.getStore().rstore.getProxy().setExtraParams(params); Proxmox.Utils.monStoreErrors(view, view.getStore().rstore); }, @@ -303,6 +308,10 @@ Ext.define('PBS.config.SyncJobView', { } } + if (me.syncDirection === 'push') { + me.title = gettext('Sync Jobs - Push Direction'); + } + me.callParent(); }, }); diff --git a/www/datastore/DataStoreList.js b/www/datastore/DataStoreList.js index fc68cfc10..22ef18540 100644 --- a/www/datastore/DataStoreList.js +++ b/www/datastore/DataStoreList.js @@ -239,7 +239,7 @@ Ext.define('PBS.datastore.DataStores', { { iconCls: 'fa fa-refresh', itemId: 'syncjobs', - xtype: 'pbsSyncJobView', + xtype: 'pbsSyncJobPullPushView', }, { iconCls: 'fa fa-check-circle', diff --git a/www/datastore/Panel.js b/www/datastore/Panel.js index 0ee38a1bc..fc8b2f791 100644 --- a/www/datastore/Panel.js +++ b/www/datastore/Panel.js @@ -68,7 +68,7 @@ Ext.define('PBS.DataStorePanel', { { iconCls: 'fa fa-refresh', itemId: 'syncjobs', - xtype: 'pbsSyncJobView', + xtype: 'pbsSyncJobPullPushView', cbind: { datastore: '{datastore}', }, -- 2.39.2 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel