[pve-devel] [PATCH v2 pve-manager 35/42] ui: backup: allow to set notification-{channel, mode} for one-off backups
Lukas Wagner
l.wagner at proxmox.com
Wed May 24 15:56:42 CEST 2023
Signed-off-by: Lukas Wagner <l.wagner at proxmox.com>
---
www/manager6/window/Backup.js | 35 ++++++++++++++++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/www/manager6/window/Backup.js b/www/manager6/window/Backup.js
index 4b21c746..8c8cd7d8 100644
--- a/www/manager6/window/Backup.js
+++ b/www/manager6/window/Backup.js
@@ -30,12 +30,33 @@ Ext.define('PVE.window.Backup', {
name: 'mode',
});
+ let notificationChannelSelector = Ext.create('PVE.form.NotificationChannelSelector', {
+ fieldLabel: gettext('Notification channel'),
+ name: 'notification-channel',
+ emptyText: Proxmox.Utils.noneText,
+ hidden: true,
+ });
+
let mailtoField = Ext.create('Ext.form.field.Text', {
fieldLabel: gettext('Send email to'),
name: 'mailto',
emptyText: Proxmox.Utils.noneText,
});
+ let notificationModeSelector = Ext.create('PVE.form.NotificationModeSelector', {
+ fieldLabel: gettext('Notify via'),
+ value: 'mail',
+ name: 'notification-mode',
+ listeners: {
+ change: function(f, v) {
+ let mailSelected = v === 'mail';
+ notificationChannelSelector.setHidden(mailSelected);
+ mailtoField.setHidden(!mailSelected);
+ }
+ }
+
+ });
+
const keepNames = [
['keep-last', gettext('Keep Last')],
['keep-hourly', gettext('Keep Hourly')],
@@ -107,6 +128,12 @@ Ext.define('PVE.window.Backup', {
success: function(response, opts) {
const data = response.result.data;
+ if (!initialDefaults && data['notification-mode'] !== undefined) {
+ notificationModeSelector.setValue(data['notification-mode']);
+ }
+ if (!initialDefaults && data['notification-channel'] !== undefined) {
+ notificationChannelSelector.setValue(data['notification-channel']);
+ }
if (!initialDefaults && data.mailto !== undefined) {
mailtoField.setValue(data.mailto);
}
@@ -176,6 +203,8 @@ Ext.define('PVE.window.Backup', {
],
column2: [
compressionSelector,
+ notificationModeSelector,
+ notificationChannelSelector,
mailtoField,
removeCheckbox,
],
@@ -252,10 +281,14 @@ Ext.define('PVE.window.Backup', {
remove: values.remove,
};
- if (values.mailto) {
+ if (values.mailto && values['notification-mode'] === 'mail') {
params.mailto = values.mailto;
}
+ if (values['notification-channel'] && values['notification-mode'] === 'channel') {
+ params['notification-channel'] = values['notification-channel'];
+ }
+
if (values.compress) {
params.compress = values.compress;
}
--
2.30.2
More information about the pve-devel
mailing list