From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id E6C141FF0AB for ; Wed, 07 Oct 2026 15:45:32 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id B6BAE21353; Wed, 07 Oct 2026 15:45:32 +0200 (CEST) From: Jonas Theisen To: pbs-devel@lists.proxmox.com Subject: [PATCH proxmox-backup v2 5/6] ui: Improve visibility of disabled {sync,verify,tape,GC,prune} jobs on the overview page Date: Wed, 7 Oct 2026 15:43:53 +0200 Message-ID: <20261007134500.323872-6-j.theisen@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261007134500.323872-1-j.theisen@proxmox.com> References: <20261007134500.323872-1-j.theisen@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1791380725342 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.180 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: AJD3BLCME3ADKVVASI7CLYFBDMWSZGGI X-Message-ID-Hash: AJD3BLCME3ADKVVASI7CLYFBDMWSZGGI X-MailFrom: j.theisen@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: This commit adds additional logic to prominently display if a job was disabled on the respective overview page by introducing a new renderer. If the job is disabled the text "Disabled" is shown instead of the schedule which is still present in the config file. For backwords compatibility if no schedule is defined the fallback is still None. Signed-off-by: Jonas Theisen --- www/Utils.js | 10 ++++++++++ www/config/GCView.js | 2 +- www/config/PruneView.js | 1 + www/config/SyncView.js | 2 ++ www/config/VerifyView.js | 2 ++ www/tape/BackupJobs.js | 2 ++ 6 files changed, 18 insertions(+), 1 deletion(-) diff --git a/www/Utils.js b/www/Utils.js index d6bfd459e..aa2f19832 100644 --- a/www/Utils.js +++ b/www/Utils.js @@ -335,6 +335,16 @@ Ext.define('PBS.Utils', { ); }, + render_schedule: function (val, metadat, record) { + if(record.data.enable === false || record.data.disable === true) { + return gettext('Disabled'); + } + if(val) { + return val; + } + return Proxmox.Utils.NoneText; + }, + get_help_tool: function (blockid) { let info = Proxmox.Utils.get_help_info(blockid); if (info === undefined) { diff --git a/www/config/GCView.js b/www/config/GCView.js index 5077f0566..2ac931cd8 100644 --- a/www/config/GCView.js +++ b/www/config/GCView.js @@ -183,7 +183,7 @@ Ext.define('PBS.config.GCJobView', { header: gettext('Schedule'), dataIndex: 'schedule', hideable: false, - renderer: (value) => (value ? value : Proxmox.Utils.NoneText), + renderer: PBS.Utils.render_schedule, minWidth: 85, flex: 1, }, diff --git a/www/config/PruneView.js b/www/config/PruneView.js index f38724687..c6fb750c7 100644 --- a/www/config/PruneView.js +++ b/www/config/PruneView.js @@ -234,6 +234,7 @@ Ext.define('PBS.config.PruneJobView', { minWidth: 80, flex: 1, sortable: true, + renderer: PBS.Utils.render_schedule, }, { text: gettext('Keep'), diff --git a/www/config/SyncView.js b/www/config/SyncView.js index 386489120..494cad65a 100644 --- a/www/config/SyncView.js +++ b/www/config/SyncView.js @@ -8,6 +8,7 @@ Ext.define('pbs-sync-jobs-status', { 'remote-ns', 'store', 'ns', + 'enable', 'schedule', 'group-filter', 'next-run', @@ -395,6 +396,7 @@ Ext.define('PBS.config.SyncJobView', { minWidth: 80, flex: 1, sortable: true, + renderer: PBS.Utils.render_schedule, }, { header: gettext('Last Sync'), diff --git a/www/config/VerifyView.js b/www/config/VerifyView.js index 2c63f0d79..29da0773c 100644 --- a/www/config/VerifyView.js +++ b/www/config/VerifyView.js @@ -5,6 +5,7 @@ Ext.define('pbs-verify-jobs-status', { 'store', 'outdated-after', 'ignore-verified', + 'enable', 'schedule', 'next-run', 'last-run-upid', @@ -253,6 +254,7 @@ Ext.define('PBS.config.VerifyJobView', { maxWidth: 220, minWidth: 80, flex: 1, + renderer: PBS.Utils.render_schedule, }, { header: gettext('Last Verification'), diff --git a/www/tape/BackupJobs.js b/www/tape/BackupJobs.js index 68d808af5..8cefb2dae 100644 --- a/www/tape/BackupJobs.js +++ b/www/tape/BackupJobs.js @@ -7,6 +7,7 @@ Ext.define('pbs-tape-backup-job-status', { 'drive', 'store', 'schedule', + 'enable', 'comment', 'group-filter', { name: 'eject-media', type: 'boolean' }, @@ -259,6 +260,7 @@ Ext.define('PBS.config.TapeBackupJobView', { minWidth: 80, flex: 1, sortable: true, + renderer: PBS.Utils.render_schedule, }, { header: gettext('Last Backup'), -- 2.47.3