From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id CDB501FF17C for ; Wed, 9 Jul 2025 10:14:24 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 219A935829; Wed, 9 Jul 2025 10:15:10 +0200 (CEST) From: Lukas Wagner To: pve-devel@lists.proxmox.com Date: Wed, 9 Jul 2025 10:14:32 +0200 Message-Id: <20250709081432.91868-3-l.wagner@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250709081432.91868-1-l.wagner@proxmox.com> References: <20250709081432.91868-1-l.wagner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.019 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH manager v3 2/2] ui: backup job details: show notification-mode instead of legacy keys X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" The backup job details view was never updated after the overhaul of the notification system. In this commit we remove the left-over notification-policy/target handling and change the view so that we display the current configuration based on notification-mode, mailto and mailnotification. Signed-off-by: Lukas Wagner --- Notes: Changes since v2: - Instead of rendering the recipient email addresses in the 'Notification' field, use a separate 'Recipients' display field. The field is only displayed if the legacy-mode (or auto with mailto set) is configured. - Rephrase some strings to make the more concise. While the previous ones fitted within the width of the dialog, they were indeed quite long. Some translations might exceed the width of the dialog, leading to bad UX. Changes since v1: - Rebased onto latest master (PVE 9) www/manager6/dc/BackupJobDetail.js | 48 ++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/www/manager6/dc/BackupJobDetail.js b/www/manager6/dc/BackupJobDetail.js index 58cb7bef..464bb558 100644 --- a/www/manager6/dc/BackupJobDetail.js +++ b/www/manager6/dc/BackupJobDetail.js @@ -165,6 +165,7 @@ Ext.define('PVE.dc.BackupInfo', { viewModel: { data: { retentionType: 'none', + hideRecipients: true, }, formulas: { hasRetention: (get) => get('retentionType') !== 'none', @@ -206,28 +207,37 @@ Ext.define('PVE.dc.BackupInfo', { column2: [ { xtype: 'displayfield', - name: 'notification-policy', + name: 'notification-mode', fieldLabel: gettext('Notification'), renderer: function (value) { + value = value ?? 'auto'; let record = this.up('pveBackupInfo')?.record; + let mailto = record?.mailto; + let mailnotification = record?.mailnotification ?? 'always'; - // Fall back to old value, in case this option is not migrated yet. - let policy = value || record?.mailnotification || 'always'; - - let when = gettext('Always'); - if (policy === 'failure') { - when = gettext('On failure only'); - } else if (policy === 'never') { - when = gettext('Never'); + if ((value === 'auto' && mailto === undefined) || (value === 'notification-system')) { + return gettext('Use global notification settings'); + } else if (mailnotification === 'always') { + return gettext('Always send email'); + } else { + return gettext('Send email on failure'); + } + }, + }, + { + xtype: 'displayfield', + name: 'mailto', + fieldLabel: gettext('Recipients'), + hidden: true, + bind: { + hidden: '{hideRecipients}', + }, + renderer: function (value) { + if (!value) { + return gettext('No recipients configured'); } - // Notification-target takes precedence - let target = - record?.['notification-target'] || - record?.mailto || - gettext('No target configured'); - - return `${when} (${target})`; + return value; }, }, { @@ -382,6 +392,12 @@ Ext.define('PVE.dc.BackupInfo', { vm.set('retentionType', 'none'); } + let notificationMode = values['notification-mode'] ?? 'auto'; + let mailto = values.mailto; + + let hideRecipients = (notificationMode === 'auto' && mailto === undefined) || (notificationMode === 'notification-system'); + vm.set('hideRecipients', hideRecipients); + // selection Mode depends on the presence/absence of several keys let selModeField = me.query('[isFormField][name=selMode]')[0]; let selMode = 'none'; -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel