[pve-devel] [PATCH pve-manager v3 09/18] fabric: add generic fabric edit panel
Stefan Hanreich
s.hanreich at proxmox.com
Thu May 22 18:17:20 CEST 2025
Add generic base component to add and edit Fabrics, which contains the
fields required for every protocol. The properties for every protocol
are stored in different components and each extend this one.
Co-authored-by: Stefan Hanreich <s.hanreich at proxmox.com>
Signed-off-by: Gabriel Goller <g.goller at proxmox.com>
---
www/manager6/Makefile | 1 +
www/manager6/sdn/fabrics/FabricEdit.js | 57 ++++++++++++++++++++++++++
2 files changed, 58 insertions(+)
create mode 100644 www/manager6/sdn/fabrics/FabricEdit.js
diff --git a/www/manager6/Makefile b/www/manager6/Makefile
index fd5c0cfc9..6075f3289 100644
--- a/www/manager6/Makefile
+++ b/www/manager6/Makefile
@@ -310,6 +310,7 @@ JSSRC= \
sdn/fabrics/Common.js \
sdn/fabrics/InterfacePanel.js \
sdn/fabrics/NodeEdit.js \
+ sdn/fabrics/FabricEdit.js \
sdn/fabrics/openfabric/InterfacePanel.js \
sdn/fabrics/openfabric/NodeEdit.js \
sdn/fabrics/ospf/InterfacePanel.js \
diff --git a/www/manager6/sdn/fabrics/FabricEdit.js b/www/manager6/sdn/fabrics/FabricEdit.js
new file mode 100644
index 000000000..10f7aa2b2
--- /dev/null
+++ b/www/manager6/sdn/fabrics/FabricEdit.js
@@ -0,0 +1,57 @@
+Ext.define('PVE.sdn.Fabric.Fabric.Edit', {
+ extend: 'Proxmox.window.Edit',
+ mixins: ['Proxmox.Mixin.CBind'],
+
+ fabricId: undefined,
+ baseUrl: "/cluster/sdn/fabrics/fabric",
+
+ items: [
+ {
+ xtype: 'textfield',
+ name: 'digest',
+ hidden: true,
+ allowBlank: true,
+ },
+ {
+ xtype: 'proxmoxtextfield',
+ fieldLabel: gettext('Name'),
+ labelWidth: 120,
+ name: 'id',
+ cbind: {
+ disabled: '{!isCreate}',
+ },
+ },
+ {
+ xtype: 'proxmoxtextfield',
+ fieldLabel: gettext('IPv4 Prefix'),
+ labelWidth: 120,
+ name: 'ip_prefix',
+ allowBlank: true,
+ skipEmptyText: true,
+ cbind: {
+ disabled: '{!isCreate}',
+ deleteEmpty: '{!isCreate}',
+ },
+ },
+ ],
+
+ additionalItems: [],
+
+ initComponent: function() {
+ let me = this;
+
+ me.isCreate = me.fabricId === undefined;
+ me.autoLoad = !me.isCreate;
+ me.method = me.isCreate ? 'POST' : 'PUT';
+
+ if (!me.isCreate) {
+ me.url = `${me.baseUrl}/${me.fabricId}`;
+ } else {
+ me.url = me.baseUrl;
+ }
+
+ me.items.push(...me.additionalItems);
+
+ me.callParent();
+ },
+});
--
2.39.5
More information about the pve-devel
mailing list