From 168e2f2967609c9e0f27330a9dee536b6a0ea250 Mon Sep 17 00:00:00 2001 From: Lukas Wagner Date: Tue, 23 Apr 2024 13:52:15 +0200 Subject: [PATCH] ui: tape backup: add selector for 'notification-mode' Signed-off-by: Lukas Wagner Tested-by: Gabriel Goller Reviewed-by: Gabriel Goller Tested-by: Maximiliano Sandoval Signed-off-by: Thomas Lamprecht --- www/tape/window/TapeBackup.js | 25 +++++++++++++++++++++++++ www/tape/window/TapeBackupJob.js | 11 ++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/www/tape/window/TapeBackup.js b/www/tape/window/TapeBackup.js index 941b6b83..a8385339 100644 --- a/www/tape/window/TapeBackup.js +++ b/www/tape/window/TapeBackup.js @@ -8,6 +8,15 @@ Ext.define('PBS.TapeManagement.TapeBackupWindow', { showTaskViewer: true, isCreate: true, + viewModel: { + data: { + notificationMode: 'notification-system', + }, + formulas: { + notificationSystemSelected: (get) => get('notificationMode') === 'notification-system', + }, + }, + items: [ { xtype: 'inputpanel', @@ -81,6 +90,19 @@ Ext.define('PBS.TapeManagement.TapeBackupWindow', { name: 'eject-media', fieldLabel: gettext('Eject Media'), }, + { + xtype: 'proxmoxKVComboBox', + labelWidth: 150, + comboItems: [ + ['legacy-sendmail', gettext('Email (legacy)')], + ['notification-system', gettext('Notification system')], + ], + fieldLabel: gettext('Notification mode'), + name: 'notification-mode', + bind: { + value: '{notificationMode}', + }, + }, { xtype: 'pmxUserSelector', labelWidth: 150, @@ -90,6 +112,9 @@ Ext.define('PBS.TapeManagement.TapeBackupWindow', { value: null, allowBlank: true, skipEmptyText: true, + bind: { + disabled: "{notificationSystemSelected}", + }, renderer: Ext.String.htmlEncode, }, ], diff --git a/www/tape/window/TapeBackupJob.js b/www/tape/window/TapeBackupJob.js index 309dda0b..12623712 100644 --- a/www/tape/window/TapeBackupJob.js +++ b/www/tape/window/TapeBackupJob.js @@ -48,13 +48,21 @@ Ext.define('PBS.TapeManagement.BackupJobEdit', { viewModel: { data: { - notificationMode: 'notification-system', + notificationMode: '__default__', }, formulas: { notificationSystemSelected: (get) => get('notificationMode') === 'notification-system', }, }, + initComponent: function() { + let me = this; + // Automatically select the new system for new jobs + let mode = me.isCreate ? "notification-system" : "__default__"; + me.getViewModel().set('notificationMode', mode); + me.callParent(); + }, + items: { xtype: 'tabpanel', bodyPadding: 10, @@ -121,6 +129,7 @@ Ext.define('PBS.TapeManagement.BackupJobEdit', { { xtype: 'proxmoxKVComboBox', comboItems: [ + ['__default__', `${Proxmox.Utils.defaultText} (Email)`], ['legacy-sendmail', gettext('Email (legacy)')], ['notification-system', gettext('Notification system')], ],