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 <l.wag...@proxmox.com> --- 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