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 D43841FF173 for ; Mon, 25 Nov 2024 12:16:12 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 1CC4D10CC1; Mon, 25 Nov 2024 12:16:12 +0100 (CET) From: Dominik Csapak To: pbs-devel@lists.proxmox.com Date: Mon, 25 Nov 2024 12:15:35 +0100 Message-Id: <20241125111537.1504618-5-d.csapak@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241125111537.1504618-1-d.csapak@proxmox.com> References: <20241125111537.1504618-1-d.csapak@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.016 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 proxmox-backup 4/6] ui: sync jobs: revert to single list for pull/push 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" but add a separate column for the direction so one still sees the separate jobs. change the 'local owner/user' to a single column, but add a tooltip in the header to explain when it does what. This makes the 'SyncJobsPullPushView' unnecessary, so delete it. Signed-off-by: Dominik Csapak --- not really sure about the tooltip helptext for the owner/user, but did not come up with something better for now... www/Makefile | 1 - www/config/SyncPullPushView.js | 61 ----------------------------- www/config/SyncView.js | 70 +++++++++++++++++++++++----------- www/datastore/DataStoreList.js | 2 +- www/datastore/Panel.js | 2 +- 5 files changed, 50 insertions(+), 86 deletions(-) delete mode 100644 www/config/SyncPullPushView.js diff --git a/www/Makefile b/www/Makefile index d35e81283..609a0ba67 100644 --- a/www/Makefile +++ b/www/Makefile @@ -61,7 +61,6 @@ 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 deleted file mode 100644 index 3460bc662..000000000 --- a/www/config/SyncPullPushView.js +++ /dev/null @@ -1,61 +0,0 @@ -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 c8b2181c4..7f68bf7cc 100644 --- a/www/config/SyncView.js +++ b/www/config/SyncView.js @@ -26,26 +26,25 @@ Ext.define('PBS.config.SyncJobView', { stateful: true, stateId: 'grid-sync-jobs-v1', - title: gettext('Sync Jobs - Pull Direction'), - ownerHeader: gettext('Owner'), - - cbindData: function(initialConfig) { - let me = this; - if (me.syncDirection === 'push') { - me.title = gettext('Sync Jobs - Push Direction'); - me.ownerHeader = gettext('Local User'); - } - }, + title: gettext('Sync Jobs'), controller: { xclass: 'Ext.app.ViewController', - addSyncJob: function() { + addPullSyncJob: function() { + this.addSyncJob('pull'); + }, + + addPushSyncJob: function() { + this.addSyncJob('push'); + }, + + addSyncJob: function(syncDirection) { let me = this; let view = me.getView(); Ext.create('PBS.window.SyncJobEdit', { datastore: view.datastore, - syncDirection: view.syncDirection, + syncDirection, listeners: { destroy: function() { me.reload(); @@ -63,7 +62,7 @@ Ext.define('PBS.config.SyncJobView', { Ext.create('PBS.window.SyncJobEdit', { datastore: view.datastore, id: selection[0].data.id, - syncDirection: view.syncDirection, + syncDirection: selection[0].data.direction, listeners: { destroy: function() { me.reload(); @@ -125,9 +124,7 @@ Ext.define('PBS.config.SyncJobView', { if (view.datastore !== undefined) { params.store = view.datastore; } - if (view.syncDirection !== undefined) { - params["sync-direction"] = view.syncDirection; - } + params['sync-direction'] = 'all'; view.getStore().rstore.getProxy().setExtraParams(params); Proxmox.Utils.monStoreErrors(view, view.getStore().rstore); }, @@ -158,10 +155,21 @@ Ext.define('PBS.config.SyncJobView', { tbar: [ { - xtype: 'proxmoxButton', text: gettext('Add'), - handler: 'addSyncJob', - selModel: false, + menu: [ + { + text: gettext('Add Pull Sync Job'), + iconCls: "fa fa-fw fa-download", + handler: 'addPullSyncJob', + selModel: false, + }, + { + text: gettext('Add Push Sync Job'), + iconCls: "fa fa-fw fa-upload", + handler: 'addPushSyncJob', + selModel: false, + }, + ], }, { xtype: 'proxmoxButton', @@ -205,6 +213,23 @@ Ext.define('PBS.config.SyncJobView', { flex: 1, sortable: true, }, + { + header: gettext('Direction'), + dataIndex: 'direction', + renderer: function(value) { + let iconCls, text; + if (value === 'pull') { + iconCls = 'download'; + text = gettext('Pull'); + } else { + iconCls = 'upload'; + text = gettext('Push'); + } + return ` ${text}`; + }, + width: 100, + sortable: true, + }, { header: gettext('Local Store'), dataIndex: 'store', @@ -245,9 +270,10 @@ Ext.define('PBS.config.SyncJobView', { sortable: true, }, { - cbind: { - header: '{ownerHeader}', - }, + header: `${gettext('Local Owner/User')} + ${gettext("Push: The local user used for access control.")} + ">`, dataIndex: 'owner', renderer: 'render_optional_owner', flex: 2, diff --git a/www/datastore/DataStoreList.js b/www/datastore/DataStoreList.js index 22ef18540..fc68cfc10 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: 'pbsSyncJobPullPushView', + xtype: 'pbsSyncJobView', }, { iconCls: 'fa fa-check-circle', diff --git a/www/datastore/Panel.js b/www/datastore/Panel.js index e1da7cfac..ad9fc10fe 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: 'pbsSyncJobPullPushView', + xtype: 'pbsSyncJobView', 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