From: Lukas Wagner <l.wagner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH v2 pve-manager 26/52] ui: dc: remove unneeded notification events panel
Date: Tue, 14 Nov 2023 13:59:34 +0100 [thread overview]
Message-ID: <20231114130000.565122-27-l.wagner@proxmox.com> (raw)
In-Reply-To: <20231114130000.565122-1-l.wagner@proxmox.com>
The notification event settings are replaced by notification matchers,
which will combine the notification routing and filtering into a
single concept.
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
---
www/manager6/Makefile | 4 -
www/manager6/dc/Config.js | 17 +-
www/manager6/dc/NotificationEvents.js | 276 --------------------------
3 files changed, 2 insertions(+), 295 deletions(-)
delete mode 100644 www/manager6/dc/NotificationEvents.js
diff --git a/www/manager6/Makefile b/www/manager6/Makefile
index 57e1b48f..18baa024 100644
--- a/www/manager6/Makefile
+++ b/www/manager6/Makefile
@@ -159,7 +159,6 @@ JSSRC= \
dc/Health.js \
dc/Log.js \
dc/NodeView.js \
- dc/NotificationEvents.js \
dc/OptionView.js \
dc/PermissionView.js \
dc/PoolEdit.js \
@@ -346,6 +345,3 @@ install: pvemanagerlib.js
.PHONY: clean
clean:
rm -rf pvemanagerlib.js OnlineHelpInfo.js .lint-incremental
-
-
-
diff --git a/www/manager6/dc/Config.js b/www/manager6/dc/Config.js
index 7d01da5f..0dea1c67 100644
--- a/www/manager6/dc/Config.js
+++ b/www/manager6/dc/Config.js
@@ -319,18 +319,6 @@ Ext.define('PVE.dc.Config', {
// this is being reworked, but we need to release newer manager versions already..
let notification_enabled = false;
- if (notification_enabled && caps.dc['Sys.Audit']) {
- me.items.push(
- {
- xtype: 'pveNotificationEvents',
- title: gettext('Notifications'),
- onlineHelp: 'notification_events',
- iconCls: 'fa fa-bell-o',
- itemId: 'notifications',
- },
- );
- }
-
if (notification_enabled && (
caps.mapping['Mapping.Audit'] ||
caps.mapping['Mapping.Use'] ||
@@ -340,12 +328,11 @@ Ext.define('PVE.dc.Config', {
me.items.push(
{
xtype: 'pmxNotificationConfigView',
- title: gettext('Notification Targets'),
+ title: gettext('Notifications'),
onlineHelp: 'notification_targets',
itemId: 'notification-targets',
- iconCls: 'fa fa-dot-circle-o',
+ iconCls: 'fa fa-bell-o',
baseUrl: '/cluster/notifications',
- groups: ['notifications'],
},
);
}
diff --git a/www/manager6/dc/NotificationEvents.js b/www/manager6/dc/NotificationEvents.js
deleted file mode 100644
index 18816290..00000000
--- a/www/manager6/dc/NotificationEvents.js
+++ /dev/null
@@ -1,276 +0,0 @@
-Ext.define('PVE.dc.NotificationEventsPolicySelector', {
- alias: ['widget.pveNotificationEventsPolicySelector'],
- extend: 'Proxmox.form.KVComboBox',
- deleteEmpty: false,
- value: '__default__',
-
- config: {
- warningRef: null,
- warnIfValIs: null,
- },
-
- listeners: {
- change: function(field, newValue) {
- let me = this;
- if (!me.warningRef && !me.warnIfValIs) {
- return;
- }
-
- let warningField = field.nextSibling(
- `displayfield[reference=${me.warningRef}]`,
- );
- warningField.setVisible(newValue === me.warnIfValIs);
- },
- },
-});
-
-Ext.define('PVE.dc.NotificationEventDisabledWarning', {
- alias: ['widget.pveNotificationEventDisabledWarning'],
- extend: 'Ext.form.field.Display',
- userCls: 'pmx-hint',
- hidden: true,
- value: gettext('Disabling notifications is not recommended for production systems!'),
-});
-
-Ext.define('PVE.dc.NotificationEventsTargetSelector', {
- alias: ['widget.pveNotificationEventsTargetSelector'],
- extend: 'PVE.form.NotificationTargetSelector',
- fieldLabel: gettext('Notification Target'),
- allowBlank: true,
- editable: true,
- autoSelect: false,
- deleteEmpty: false,
- emptyText: `${Proxmox.Utils.defaultText} (mail-to-root)`,
-});
-
-Ext.define('PVE.dc.NotificationEvents', {
- extend: 'Proxmox.grid.ObjectGrid',
- alias: ['widget.pveNotificationEvents'],
-
- // Taken from OptionView.js, but adapted slightly.
- // The modified version allows us to have multiple rows in the ObjectGrid
- // for the same underlying property (notify).
- // Every setting is eventually stored as a property string in the
- // notify key of datacenter.cfg.
- // When updating 'notify', all properties that were already set
- // also have to be submitted, even if they were not modified.
- // This means that we need to save the old value somewhere.
- addInputPanelRow: function(name, propertyName, text, opts) {
- let me = this;
-
- opts = opts || {};
- me.rows = me.rows || {};
-
- me.rows[name] = {
- required: true,
- defaultValue: opts.defaultValue,
- header: text,
- renderer: opts.renderer,
- name: propertyName,
- editor: {
- xtype: 'proxmoxWindowEdit',
- width: opts.width || 400,
- subject: text,
- onlineHelp: opts.onlineHelp,
- fieldDefaults: {
- labelWidth: opts.labelWidth || 150,
- },
- setValues: function(values) {
- let value = values[propertyName];
-
- if (opts.parseBeforeSet) {
- value = PVE.Parser.parsePropertyString(value);
- }
-
- Ext.Array.each(this.query('inputpanel'), function(panel) {
- panel.setValues(value);
-
- // Save the original value
- panel.originalValue = {
- ...value,
- };
- });
- },
- url: opts.url,
- items: [{
- xtype: 'inputpanel',
- onGetValues: function(values) {
- let fields = this.config.items.map(field => field.name).filter(n => n);
-
- // Restore old, unchanged values
- for (const [key, value] of Object.entries(this.originalValue)) {
- if (!fields.includes(key)) {
- values[key] = value;
- }
- }
-
- let value = {};
- if (Object.keys(values).length > 0) {
- value[propertyName] = PVE.Parser.printPropertyString(values);
- } else {
- Proxmox.Utils.assemble_field_data(value, { 'delete': propertyName });
- }
-
- return value;
- },
- items: opts.items,
- }],
- },
- };
- },
-
- initComponent: function() {
- let me = this;
-
- // Helper function for rendering the property
- // Needed since the actual value is always stored in the 'notify' property
- let render_value = (store, target_key, mode_key, default_val) => {
- let value = store.getById('notify')?.get('value') ?? {};
- let target = value[target_key] ?? 'mail-to-root';
- let template;
-
- switch (value[mode_key]) {
- case 'always':
- template = gettext('Always, notify via target \'{0}\'');
- break;
- case 'never':
- template = gettext('Never');
- break;
- case 'auto':
- template = gettext('Automatically, notify via target \'{0}\'');
- break;
- default:
- template = gettext('{1} ({2}), notify via target \'{0}\'');
- break;
- }
-
- return Ext.String.format(template, target, Proxmox.Utils.defaultText, default_val);
- };
-
- me.addInputPanelRow('fencing', 'notify', gettext('Node Fencing'), {
- renderer: (value, metaData, record, rowIndex, colIndex, store) =>
- render_value(store, 'target-fencing', 'fencing', gettext('Always')),
- url: "/api2/extjs/cluster/options",
- items: [
- {
- xtype: 'pveNotificationEventsPolicySelector',
- name: 'fencing',
- fieldLabel: gettext('Notify'),
- comboItems: [
- ['__default__', `${Proxmox.Utils.defaultText} (${gettext('Always')})`],
- ['always', gettext('Always')],
- ['never', gettext('Never')],
- ],
- warningRef: 'warning',
- warnIfValIs: 'never',
- },
- {
- xtype: 'pveNotificationEventsTargetSelector',
- name: 'target-fencing',
- },
- {
- xtype: 'pveNotificationEventDisabledWarning',
- reference: 'warning',
- },
- ],
- });
-
- me.addInputPanelRow('replication', 'notify', gettext('Replication'), {
- renderer: (value, metaData, record, rowIndex, colIndex, store) =>
- render_value(store, 'target-replication', 'replication', gettext('Always')),
- url: "/api2/extjs/cluster/options",
- items: [
- {
- xtype: 'pveNotificationEventsPolicySelector',
- name: 'replication',
- fieldLabel: gettext('Notify'),
- comboItems: [
- ['__default__', `${Proxmox.Utils.defaultText} (${gettext('Always')})`],
- ['always', gettext('Always')],
- ['never', gettext('Never')],
- ],
- warningRef: 'warning',
- warnIfValIs: 'never',
- },
- {
- xtype: 'pveNotificationEventsTargetSelector',
- name: 'target-replication',
- },
- {
- xtype: 'pveNotificationEventDisabledWarning',
- reference: 'warning',
- },
- ],
- });
-
- me.addInputPanelRow('updates', 'notify', gettext('Package Updates'), {
- renderer: (value, metaData, record, rowIndex, colIndex, store) =>
- render_value(
- store,
- 'target-package-updates',
- 'package-updates',
- gettext('Automatically'),
- ),
- url: "/api2/extjs/cluster/options",
- items: [
- {
- xtype: 'pveNotificationEventsPolicySelector',
- name: 'package-updates',
- fieldLabel: gettext('Notify'),
- comboItems: [
- [
- '__default__',
- `${Proxmox.Utils.defaultText} (${gettext('Automatically')})`,
- ],
- ['auto', gettext('Automatically')],
- ['always', gettext('Always')],
- ['never', gettext('Never')],
- ],
- warningRef: 'warning',
- warnIfValIs: 'never',
- },
- {
- xtype: 'pveNotificationEventsTargetSelector',
- name: 'target-package-updates',
- },
- {
- xtype: 'pveNotificationEventDisabledWarning',
- reference: 'warning',
- },
- ],
- });
-
- // Hack: Also load the notify property to make it accessible
- // for our render functions.
- me.rows.notify = {
- visible: false,
- };
-
- me.selModel = Ext.create('Ext.selection.RowModel', {});
-
- Ext.apply(me, {
- tbar: [{
- text: gettext('Edit'),
- xtype: 'proxmoxButton',
- disabled: true,
- handler: () => me.run_editor(),
- selModel: me.selModel,
- }],
- url: "/api2/json/cluster/options",
- editorConfig: {
- url: "/api2/extjs/cluster/options",
- },
- interval: 5000,
- cwidth1: 200,
- listeners: {
- itemdblclick: me.run_editor,
- },
- });
-
- me.callParent();
-
- me.on('activate', me.rstore.startUpdate);
- me.on('destroy', me.rstore.stopUpdate);
- me.on('deactivate', me.rstore.stopUpdate);
- },
-});
--
2.39.2
next prev parent reply other threads:[~2023-11-14 13:01 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-14 12:59 [pve-devel] [PATCH v2 many 00/52] revamp notifications; smtp endpoints; system mail Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 debcargo-conf 01/52] cherry-pick chumsky 0.9.2 from debian unstable Lukas Wagner
2023-11-14 16:15 ` [pve-devel] applied: " Thomas Lamprecht
2023-11-14 12:59 ` [pve-devel] [PATCH v2 debcargo-conf 02/52] update lettre to 0.11.1 Lukas Wagner
2023-11-14 16:15 ` [pve-devel] applied: " Thomas Lamprecht
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 03/52] notify: introduce Error::Generic Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 04/52] notify: factor out notification content into its own type Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 05/52] notify: replace filters and groups with matcher-based system Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 06/52] notify: add calendar matcher Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 07/52] notify: matcher: introduce common trait for match directives Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 08/52] notify: let a matcher always match if it has no matching directives Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 09/52] sys: email: add `forward` Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 10/52] notify: add mechanisms for email message forwarding Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 11/52] notify: add PVE/PBS context Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 12/52] notify: add 'smtp' endpoint Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 13/52] notify: add api for smtp endpoints Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 14/52] notify: add 'disable' parameter for matchers and targets Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox 15/52] notify: add built-in config and 'origin' parameter Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-perl-rs 16/52] notify: adapt to new matcher-based notification routing Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-perl-rs 17/52] notify: add bindings for smtp API calls Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-perl-rs 18/52] pve-rs: notify: remove notify_context for PVE Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-perl-rs 19/52] notify: add 'disable' parameter Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-perl-rs 20/52] notify: support 'origin' paramter Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-cluster 21/52] notify: adapt to matcher based notification system Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-guest-common 22/52] vzdump: deprecate mailto/mailnotification/notification-{target, policy} Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-ha-manager 23/52] env: switch to matcher-based notification system Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-manager 24/52] api: notification: remove notification groups Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-manager 25/52] api: notification: add new matcher-based notification API Lukas Wagner
2023-11-14 12:59 ` Lukas Wagner [this message]
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-manager 27/52] vzdump: adapt to new matcher based notification system Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-manager 28/52] api: apt: adapt to matcher-based notifications Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-manager 29/52] api: replication: adapt to matcher-based notification system Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-manager 30/52] test: fix vzdump notification test Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-manager 31/52] ui: vzdump: remove left-overs from target/policy based notifications Lukas Wagner
2023-11-16 11:52 ` [pve-devel] [PATCH manager] ui: fix backup job create Dominik Csapak
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-manager 32/52] ui: dc: config: show notification panel again Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-manager 33/52] notify: add API routes for smtp endpoints Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-manager 34/52] api: notification: add disable and origin params Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-manager 35/52] api: notification: simplify ACLs for notification Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 36/52] notification ui: add target selector for matcher Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 37/52] notification ui: remove filter setting for targets Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 38/52] notification ui: remove notification groups Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 39/52] notification ui: rename filter to matcher Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 40/52] notification: matcher: add UI for matcher editing Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 41/52] notification ui: unprotected mailto-root target Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 42/52] noficiation: matcher edit: make 'field' an editable combobox Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 43/52] panel: notification: add gui for SMTP endpoints Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 44/52] notification ui: add enable checkbox for targets/matchers Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 45/52] notification ui: add column for 'origin' Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-docs 46/52] notifications: update docs to for matcher-based notifications Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-docs 47/52] notifications: document SMTP endpoints Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-docs 48/52] notifications: document 'comment' option for targets/matchers Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-docs 49/52] notifications: add documentation for system mail forwarding Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 pve-docs 50/52] notifications: change to simplified ACL structure Lukas Wagner
2023-11-14 12:59 ` [pve-devel] [PATCH v2 proxmox-mail-forward 51/52] feed forwarded mails into proxmox_notify Lukas Wagner
2023-11-14 13:00 ` [pve-devel] [PATCH v2 proxmox-mail-forward 52/52] update d/control Lukas Wagner
2023-11-16 11:57 ` [pve-devel] [PATCH widget-toolkit 0/2] follow-ups for notification series Dominik Csapak
2023-11-16 11:57 ` [pve-devel] [PATCH widget-toolkit 1/2] notification matcher: improve handling empty and invalid values Dominik Csapak
2023-11-16 11:57 ` [pve-devel] [PATCH widget-toolkit 2/2] notification matcher: improve wording for mode Dominik Csapak
2023-11-17 8:41 ` [pve-devel] [PATCH v2 many 00/52] revamp notifications; smtp endpoints; system mail Dominik Csapak
2023-11-20 9:03 ` Lukas Wagner
2023-11-20 9:11 ` Dominik Csapak
2023-11-20 9:49 ` Lukas Wagner
2023-11-20 9:11 ` Thomas Lamprecht
2023-11-17 15:31 ` [pve-devel] applied-series: " Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231114130000.565122-27-l.wagner@proxmox.com \
--to=l.wagner@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox