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 C2AF91FF16B for ; Thu, 31 Oct 2024 13:25:44 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8CF86905E; Thu, 31 Oct 2024 13:25:50 +0100 (CET) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Thu, 31 Oct 2024 13:15:14 +0100 Message-Id: <20241031121519.434337-25-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241031121519.434337-1-c.ebner@proxmox.com> References: <20241031121519.434337-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.030 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 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [params.store] Subject: [pbs-devel] [PATCH v6 proxmox-backup 24/29] 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 5: - adapted minHeight, both grids are equal www/Makefile | 1 + www/config/SyncPullPushView.js | 61 ++++++++++++++++++++++++++++++++++ www/config/SyncView.js | 10 +++++- 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..3460bc662 --- /dev/null +++ b/www/config/SyncPullPushView.js @@ -0,0 +1,61 @@ +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, + bodyPadding: 5, + }, + defaults: { + collapsible: false, + margin: 5, + }, + 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: 125, // 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..ef17e4315 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(); @@ -117,6 +118,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 +307,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 ad9fc10fe..e1da7cfac 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.5 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel