public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Dominik Csapak <d.csapak@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH manager v3 09/13] ui: qemu: introduce hardware net grid
Date: Fri, 15 May 2026 10:44:27 +0200	[thread overview]
Message-ID: <20260515085349.1123127-10-d.csapak@proxmox.com> (raw)
In-Reply-To: <20260515085349.1123127-1-d.csapak@proxmox.com>

intended to be used inside the hardware view.

Same as the hardware disk grid, the toolbar buttons will be added in the
hardware view itself.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 www/manager6/Makefile                |  1 +
 www/manager6/qemu/HardwareNetGrid.js | 81 ++++++++++++++++++++++++++++
 2 files changed, 82 insertions(+)
 create mode 100644 www/manager6/qemu/HardwareNetGrid.js

diff --git a/www/manager6/Makefile b/www/manager6/Makefile
index edef39eb..a53a9946 100644
--- a/www/manager6/Makefile
+++ b/www/manager6/Makefile
@@ -266,6 +266,7 @@ JSSRC= 							\
 	qemu/HDMove.js					\
 	qemu/HDResize.js				\
 	qemu/HardwareDiskGrid.js			\
+	qemu/HardwareNetGrid.js				\
 	qemu/HardwareView.js				\
 	qemu/IPConfigEdit.js				\
 	qemu/KeyboardEdit.js				\
diff --git a/www/manager6/qemu/HardwareNetGrid.js b/www/manager6/qemu/HardwareNetGrid.js
new file mode 100644
index 00000000..22814b28
--- /dev/null
+++ b/www/manager6/qemu/HardwareNetGrid.js
@@ -0,0 +1,81 @@
+Ext.define('PVE.qemu.HardwareNetGrid', {
+    extend: 'PVE.grid.PendingGrid',
+    alias: 'widget.pveHardwareNetGrid',
+
+    title: gettext('Network Interfaces'),
+
+    stateful: true,
+    stateId: 'pve-qemu-hardware-net',
+
+    border: false,
+    expandable: false,
+
+    emptyText: gettext('No network interfaces configured'),
+
+    storeFilter: (rec) => PVE.Utils.keyIsNic(rec.data.key),
+    recordParser: PVE.Parser.parseQemuNetwork,
+
+    renderKey: Ext.htmlEncode,
+
+    columns: [
+        {
+            header: gettext('ID'),
+            dataIndex: 'id',
+            width: 200,
+            renderer: 'renderKey',
+        },
+        {
+            header: gettext('Model'),
+            dataIndex: 'model',
+            width: 100,
+        },
+        {
+            header: gettext('MAC address'),
+            dataIndex: 'macaddr',
+            minWidth: 200,
+            flex: 1,
+        },
+        {
+            header: gettext('Bridge'),
+            dataIndex: 'bridge',
+            width: 100,
+        },
+        {
+            header: gettext('Firewall enabled'),
+            dataIndex: 'firewall',
+            width: 150,
+            renderer: PVE.Utils.renderBooleanProperty,
+        },
+        {
+            header: gettext('VLAN tag'),
+            dataIndex: 'tag',
+            width: 80,
+        },
+        {
+            header: gettext('MTU'),
+            dataIndex: 'mtu',
+            width: 100,
+        },
+        {
+            header: gettext('Multiqueue'),
+            dataIndex: 'queues',
+            width: 100,
+        },
+        {
+            header: gettext('Rate limit (MB/s)'),
+            dataIndex: 'rate',
+            width: 200,
+        },
+        {
+            header: gettext('Disconnected'),
+            dataIndex: 'link_down',
+            width: 100,
+            renderer: PVE.Utils.renderBooleanProperty,
+        },
+        {
+            header: gettext('Trunks'),
+            dataIndex: 'trunks',
+            width: 100,
+        },
+    ],
+});
-- 
2.47.3





  parent reply	other threads:[~2026-05-15  8:55 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-15  8:44 [PATCH manager v3 00/13] ui: split out disks and nics into grids Dominik Csapak
2026-05-15  8:44 ` [PATCH manager v3 01/13] ui: utils: factor out 'media=cdrom' check Dominik Csapak
2026-05-15  8:44 ` [PATCH manager v3 02/13] ui: factor out the guest key nic regex check Dominik Csapak
2026-05-15  8:44 ` [PATCH manager v3 03/13] ui: parser: qemu drive: allow '-' in key names Dominik Csapak
2026-05-15  8:44 ` [PATCH manager v3 04/13] ui: add pending grid Dominik Csapak
2026-05-15  8:44 ` [PATCH manager v3 05/13] ui: revert button: add parentXType and reloadCallback Dominik Csapak
2026-05-15  8:44 ` [PATCH manager v3 06/13] ui: button: add config remove button Dominik Csapak
2026-05-15  8:44 ` [PATCH manager v3 07/13] ui: qemu: hardware: wrap in container Dominik Csapak
2026-05-15  8:44 ` [PATCH manager v3 08/13] ui: qemu: introduce hardware disk grid Dominik Csapak
2026-05-15  8:44 ` Dominik Csapak [this message]
2026-05-15  8:44 ` [PATCH manager v3 10/13] ui: qemu: hardware view: separate disks into own grid Dominik Csapak
2026-05-15  8:44 ` [PATCH manager v3 11/13] ui: qemu: hardware view: separate nics " Dominik Csapak
2026-05-15  8:44 ` [PATCH manager v3 12/13] ui: qemu: hardware view: inline edit/remove/revert button in general grid Dominik Csapak
2026-05-15  8:44 ` [PATCH manager v3 13/13] ui: qemu: hardware view: inline 'add efi' menuitem Dominik Csapak
2026-05-15  9:18 ` [PATCH manager v3 00/13] ui: split out disks and nics into grids Dominik Csapak
2026-05-15  9:20   ` Dominik Csapak

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=20260515085349.1123127-10-d.csapak@proxmox.com \
    --to=d.csapak@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
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal