[pve-devel] [PATCH pve-manager 4/7] fabrics: add FabricEdit components
Gabriel Goller
g.goller at proxmox.com
Fri Mar 28 18:13:36 CET 2025
Add FabricEdit components for openfabric and ospf. These are used to
create and edit fabrics. When editing, everything is disabled except the
hello_interval property, mostly because making the area/router_id and
the loopback_prefix editable would be kinda hard (i.e. we'd need to
force the user to delete the fabrics, or revalidate stuff).
Signed-off-by: Gabriel Goller <g.goller at proxmox.com>
Co-authored-by: Stefan Hanreich <s.hanreich at proxmox.com>
---
www/manager6/Makefile | 2 +
.../sdn/fabrics/openfabric/FabricEdit.js | 71 +++++++++++++++++++
www/manager6/sdn/fabrics/ospf/FabricEdit.js | 64 +++++++++++++++++
3 files changed, 137 insertions(+)
create mode 100644 www/manager6/sdn/fabrics/openfabric/FabricEdit.js
create mode 100644 www/manager6/sdn/fabrics/ospf/FabricEdit.js
diff --git a/www/manager6/Makefile b/www/manager6/Makefile
index b75a455d70e6..04f00b270fba 100644
--- a/www/manager6/Makefile
+++ b/www/manager6/Makefile
@@ -304,7 +304,9 @@ JSSRC= \
sdn/zones/VlanEdit.js \
sdn/zones/VxlanEdit.js \
sdn/fabrics/Common.js \
+ sdn/fabrics/openfabric/FabricEdit.js \
sdn/fabrics/openfabric/InterfaceEdit.js \
+ sdn/fabrics/ospf/FabricEdit.js \
sdn/fabrics/ospf/InterfaceEdit.js \
storage/ContentView.js \
storage/BackupView.js \
diff --git a/www/manager6/sdn/fabrics/openfabric/FabricEdit.js b/www/manager6/sdn/fabrics/openfabric/FabricEdit.js
new file mode 100644
index 000000000000..672adf45581f
--- /dev/null
+++ b/www/manager6/sdn/fabrics/openfabric/FabricEdit.js
@@ -0,0 +1,71 @@
+Ext.define('PVE.sdn.Fabric.OpenFabric.Fabric.Edit', {
+ extend: 'Proxmox.window.Edit',
+ xtype: 'pveSDNOpenFabricRouteEdit',
+
+ subject: gettext('Add OpenFabric'),
+
+ onlineHelp: 'pvesdn_openfabric_fabric',
+
+ url: '/cluster/sdn/fabrics/openfabric',
+
+ isCreate: undefined,
+
+ viewModel: {
+ data: {
+ isCreate: true,
+ },
+ },
+
+ items: [
+ {
+ xtype: 'textfield',
+ fieldLabel: gettext('Name'),
+ labelWidth: 120,
+ name: 'fabric_id',
+ allowBlank: false,
+ bind: {
+ disabled: '{!isCreate}',
+ },
+ },
+ {
+ xtype: 'textfield',
+ fieldLabel: gettext('Loopback IP Prefix'),
+ labelWidth: 120,
+ name: 'loopback_prefix',
+ allowBlank: false,
+ bind: {
+ disabled: '{!isCreate}',
+ },
+ },
+ {
+ xtype: 'proxmoxintegerfield',
+ fieldLabel: gettext('Hello Interval'),
+ labelWidth: 120,
+ name: 'hello_interval',
+ allowBlank: true,
+ },
+ ],
+
+ submitUrl: function(url, values) {
+ let me = this;
+ return `${me.url}`;
+ },
+
+ initComponent: function() {
+ let me = this;
+
+ let view = me.getViewModel();
+ view.set('isCreate', me.isCreate);
+
+ me.method = me.isCreate ? 'POST' : 'PUT';
+ me.callParent();
+
+ if (!me.isCreate) {
+ me.load({
+ success: function(response, opts) {
+ me.setValues(response.result.data);
+ },
+ });
+ }
+ },
+});
diff --git a/www/manager6/sdn/fabrics/ospf/FabricEdit.js b/www/manager6/sdn/fabrics/ospf/FabricEdit.js
new file mode 100644
index 000000000000..a229e688c9e6
--- /dev/null
+++ b/www/manager6/sdn/fabrics/ospf/FabricEdit.js
@@ -0,0 +1,64 @@
+Ext.define('PVE.sdn.Fabric.Ospf.Fabric.Edit', {
+ extend: 'Proxmox.window.Edit',
+ xtype: 'pveSDNOpenFabricRouteEdit',
+
+ subject: gettext('Add OSPF'),
+
+ onlineHelp: 'pvesdn_ospf_fabric',
+
+ url: '/cluster/sdn/fabrics/ospf',
+
+ isCreate: undefined,
+
+ viewModel: {
+ data: {
+ isCreate: true,
+ },
+ },
+
+ items: [
+ {
+ xtype: 'textfield',
+ fieldLabel: gettext('Area'),
+ labelWidth: 120,
+ name: 'area',
+ allowBlank: false,
+ bind: {
+ disabled: '{!isCreate}',
+ },
+ },
+ {
+ xtype: 'textfield',
+ fieldLabel: gettext('Loopback IP Prefix'),
+ labelWidth: 120,
+ name: 'loopback_prefix',
+ allowBlank: false,
+ bind: {
+ disabled: '{!isCreate}',
+ },
+ },
+ ],
+
+ submitUrl: function(url, values) {
+ let me = this;
+ return `${me.url}`;
+ },
+
+ initComponent: function() {
+ let me = this;
+
+ let view = me.getViewModel();
+ view.set('isCreate', me.isCreate);
+
+ me.method = me.isCreate ? 'POST' : 'PUT';
+
+ me.callParent();
+ if (!me.isCreate) {
+ me.load({
+ success: function(response, opts) {
+ me.setValues(response.result.data);
+ },
+ });
+ }
+ },
+});
--
2.39.5
More information about the pve-devel
mailing list