all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Christian Ebner <c.ebner@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [PATCH proxmox-backup v8 10/17] ui: add notification thresholds edit window
Date: Thu,  2 Apr 2026 12:53:26 +0200	[thread overview]
Message-ID: <20260402105333.463088-11-c.ebner@proxmox.com> (raw)
In-Reply-To: <20260402105333.463088-1-c.ebner@proxmox.com>

Allows setting the notification thresholds via the datastore options.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
changes since version 7:
- inline and simplify notification rendering, assuring to show `None` if
  not set

 www/Makefile                         |   1 +
 www/datastore/OptionView.js          |   8 ++
 www/window/NotificationThresholds.js | 113 +++++++++++++++++++++++++++
 3 files changed, 122 insertions(+)
 create mode 100644 www/window/NotificationThresholds.js

diff --git a/www/Makefile b/www/Makefile
index 9ebf0445f..5002bae90 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -81,6 +81,7 @@ JSSRC=							\
 	window/NamespaceEdit.js				\
 	window/MaintenanceOptions.js			\
 	window/NotesEdit.js				\
+	window/NotificationThresholds.js		\
 	window/RemoteEdit.js				\
 	window/TrafficControlEdit.js			\
 	window/NotifyOptions.js				\
diff --git a/www/datastore/OptionView.js b/www/datastore/OptionView.js
index 7854e64d7..238fbbf34 100644
--- a/www/datastore/OptionView.js
+++ b/www/datastore/OptionView.js
@@ -334,5 +334,13 @@ Ext.define('PBS.Datastore.Options', {
                 },
             },
         },
+        'notification-thresholds': {
+            required: true,
+            header: gettext('Notification Thresholds'),
+            renderer: (notificationThresholds) => notificationThresholds ?? gettext('None'),
+            editor: {
+                xtype: 'pbsNotificationThresholdsEdit',
+            },
+        },
     },
 });
diff --git a/www/window/NotificationThresholds.js b/www/window/NotificationThresholds.js
new file mode 100644
index 000000000..19b3598e6
--- /dev/null
+++ b/www/window/NotificationThresholds.js
@@ -0,0 +1,113 @@
+Ext.define('PBS.window.NotificationThresholds', {
+    extend: 'Proxmox.window.Edit',
+    xtype: 'pbsNotificationThresholdsEdit',
+    mixins: ['Proxmox.Mixin.CBind'],
+
+    subject: gettext('Notification Thresholds'),
+
+    width: 500,
+    fieldDefaults: {
+        labelWidth: 120,
+    },
+
+    items: {
+        xtype: 'inputpanel',
+        onGetValues: function (values) {
+            if (!Ext.isArray(values.delete ?? [])) {
+                values.delete = [values.delete];
+            }
+            for (const k of values.delete ?? []) {
+                delete values[k];
+            }
+            delete values.delete;
+            let notificationThresholds = PBS.Utils.printPropertyString(values);
+            if (!notificationThresholds) {
+                return { delete: 'notification-thresholds' };
+            }
+            return { 'notification-thresholds': notificationThresholds };
+        },
+        onSetValues: function (values) {
+            if (values['notification-thresholds']) {
+                return PBS.Utils.parsePropertyString(values['notification-thresholds']);
+            }
+        },
+        items: [
+            {
+                xtype: 'box',
+                html: `<b>${gettext('S3 requests count:')}</b>`,
+                padding: '10 0 5 0',
+            },
+            {
+                xtype: 'proxmoxintegerfield',
+                name: 's3-get',
+                fieldLabel: gettext('GET'),
+                emptyText: gettext('none'),
+                fieldStyle: 'text-align: right',
+                minValue: 0,
+                deleteEmpty: true,
+            },
+            {
+                xtype: 'proxmoxintegerfield',
+                name: 's3-put',
+                fieldLabel: gettext('PUT'),
+                emptyText: gettext('none'),
+                fieldStyle: 'text-align: right',
+                minValue: 0,
+                deleteEmpty: true,
+            },
+            {
+                xtype: 'proxmoxintegerfield',
+                name: 's3-post',
+                fieldLabel: gettext('POST'),
+                emptyText: gettext('none'),
+                fieldStyle: 'text-align: right',
+                minValue: 0,
+                deleteEmpty: true,
+            },
+            {
+                xtype: 'proxmoxintegerfield',
+                name: 's3-head',
+                fieldLabel: gettext('HEAD'),
+                emptyText: gettext('none'),
+                fieldStyle: 'text-align: right',
+                minValue: 0,
+                deleteEmpty: true,
+            },
+            {
+                xtype: 'proxmoxintegerfield',
+                name: 's3-delete',
+                fieldLabel: gettext('DELETE'),
+                emptyText: gettext('none'),
+                fieldStyle: 'text-align: right',
+                minValue: 0,
+                deleteEmpty: true,
+            },
+            {
+                xtype: 'menuseparator',
+            },
+            {
+                xtype: 'box',
+                html: `<b>${gettext('S3 traffic volume:')}</b>`,
+                padding: '10 0 5 0',
+            },
+            {
+                xtype: 'pmxSizeField',
+                name: 's3-upload',
+                fieldLabel: gettext('Upload'),
+                unit: 'GiB',
+                submitAutoScaledSizeUnit: true,
+                allowZero: false,
+                emptyText: gettext('none'),
+            },
+            {
+                xtype: 'pmxSizeField',
+                name: 's3-download',
+                fieldLabel: gettext('Download'),
+                unit: 'GiB',
+                submitAutoScaledSizeUnit: true,
+                allowZero: false,
+                emptyText: gettext('none'),
+            },
+        ],
+    },
+});
-- 
2.47.3





  parent reply	other threads:[~2026-04-02 10:53 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-02 10:53 [PATCH proxmox-backup v8 00/17] partially fix #6563: add s3 counter for statistics and notifications Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 01/17] api: s3: add endpoint to reset s3 request counters Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 02/17] bin: s3: expose request counter reset method as cli command Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 03/17] ui: datastore summary: move store to be part of summary panel Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 04/17] ui: expose s3 request counter statistics in the datastore summary Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 05/17] metrics: collect s3 datastore statistics as rrd metrics Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 06/17] api: admin: expose s3 statistics in datastore rrd data Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 07/17] partially fix #6563: ui: expose s3 rrd charts in datastore summary Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 08/17] datastore: refactor datastore lookup parameters into dedicated type Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 09/17] api: config: update notification thresholds for config and counters Christian Ebner
2026-04-02 10:53 ` Christian Ebner [this message]
2026-04-02 10:53 ` [PATCH proxmox-backup v8 11/17] notification: define templates and template data for thresholds Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 12/17] datastore: add thresholds notification callback on datastore lookup Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 13/17] api/ui: notifications: add 'thresholds' as notification type value Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 14/17] api: config: allow counter reset schedule editing Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 15/17] ui: expose counter reset schedule edit window Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 16/17] bin: proxy: periodically schedule counter reset task Christian Ebner
2026-04-02 10:53 ` [PATCH proxmox-backup v8 17/17] ui: add task description for scheduled counter reset Christian Ebner

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=20260402105333.463088-11-c.ebner@proxmox.com \
    --to=c.ebner@proxmox.com \
    --cc=pbs-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal