The IS-IS panels have the same properties as OpenFabric both on the FabricEdit and the NodeEdit.
Signed-off-by: Gabriel Goller <g.gol...@proxmox.com> --- www/manager6/Makefile | 19 ++--- www/manager6/sdn/FabricsView.js | 12 ++++ www/manager6/sdn/fabrics/NodeEdit.js | 1 + www/manager6/sdn/fabrics/isis/FabricEdit.js | 69 +++++++++++++++++++ .../sdn/fabrics/isis/InterfacePanel.js | 34 +++++++++ www/manager6/sdn/fabrics/isis/NodeEdit.js | 22 ++++++ 6 files changed, 149 insertions(+), 8 deletions(-) create mode 100644 www/manager6/sdn/fabrics/isis/FabricEdit.js create mode 100644 www/manager6/sdn/fabrics/isis/InterfacePanel.js create mode 100644 www/manager6/sdn/fabrics/isis/NodeEdit.js diff --git a/www/manager6/Makefile b/www/manager6/Makefile index 07401f21520b..9e16bdef46bc 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -314,15 +314,18 @@ JSSRC= \ sdn/zones/VxlanEdit.js \ sdn/FabricsView.js \ sdn/fabrics/Common.js \ - sdn/fabrics/InterfacePanel.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/openfabric/FabricEdit.js \ - sdn/fabrics/ospf/InterfacePanel.js \ - sdn/fabrics/ospf/NodeEdit.js \ - sdn/fabrics/ospf/FabricEdit.js \ + sdn/fabrics/FabricEdit.js \ + sdn/fabrics/openfabric/InterfacePanel.js \ + sdn/fabrics/openfabric/NodeEdit.js \ + sdn/fabrics/openfabric/FabricEdit.js \ + sdn/fabrics/isis/InterfacePanel.js \ + sdn/fabrics/isis/NodeEdit.js \ + sdn/fabrics/isis/FabricEdit.js \ + sdn/fabrics/ospf/InterfacePanel.js \ + sdn/fabrics/ospf/NodeEdit.js \ + sdn/fabrics/ospf/FabricEdit.js \ storage/ContentView.js \ storage/BackupView.js \ storage/Base.js \ diff --git a/www/manager6/sdn/FabricsView.js b/www/manager6/sdn/FabricsView.js index 093a70f35d3c..dcedc214e184 100644 --- a/www/manager6/sdn/FabricsView.js +++ b/www/manager6/sdn/FabricsView.js @@ -32,6 +32,7 @@ Ext.define('PVE.sdn.Fabric.View', { if (rec.data.type === 'fabric') { const PROTOCOL_DISPLAY_NAMES = { openfabric: 'OpenFabric', + isis: 'IS-IS', ospf: 'OSPF', }; const displayValue = PROTOCOL_DISPLAY_NAMES[value]; @@ -190,6 +191,10 @@ Ext.define('PVE.sdn.Fabric.View', { text: 'OpenFabric', handler: 'addOpenfabric', }, + { + text: 'IS-IS', + handler: 'addIsis', + }, { text: 'OSPF', handler: 'addOspf', @@ -271,6 +276,7 @@ Ext.define('PVE.sdn.Fabric.View', { getFabricEditPanel: function (protocol) { const FABRIC_PANELS = { openfabric: 'PVE.sdn.Fabric.OpenFabric.Fabric.Edit', + isis: 'PVE.sdn.Fabric.Isis.Fabric.Edit', ospf: 'PVE.sdn.Fabric.Ospf.Fabric.Edit', }; @@ -280,6 +286,7 @@ Ext.define('PVE.sdn.Fabric.View', { getNodeEditPanel: function (protocol) { const NODE_PANELS = { openfabric: 'PVE.sdn.Fabric.OpenFabric.Node.Edit', + isis: 'PVE.sdn.Fabric.Isis.Node.Edit', ospf: 'PVE.sdn.Fabric.Ospf.Node.Edit', }; @@ -291,6 +298,11 @@ Ext.define('PVE.sdn.Fabric.View', { me.openFabricAddWindow('openfabric'); }, + addIsis: function () { + let me = this; + me.openFabricAddWindow('isis'); + }, + addOspf: function () { let me = this; me.openFabricAddWindow('ospf'); diff --git a/www/manager6/sdn/fabrics/NodeEdit.js b/www/manager6/sdn/fabrics/NodeEdit.js index 161917ccd1e5..1a8ec9df1b4b 100644 --- a/www/manager6/sdn/fabrics/NodeEdit.js +++ b/www/manager6/sdn/fabrics/NodeEdit.js @@ -199,6 +199,7 @@ Ext.define('PVE.sdn.Fabric.Node.Edit', { getInterfacePanel: function (protocol) { const INTERFACE_PANELS = { openfabric: 'PVE.sdn.Fabric.OpenFabric.InterfacePanel', + isis: 'PVE.sdn.Fabric.Isis.InterfacePanel', ospf: 'PVE.sdn.Fabric.Ospf.InterfacePanel', }; diff --git a/www/manager6/sdn/fabrics/isis/FabricEdit.js b/www/manager6/sdn/fabrics/isis/FabricEdit.js new file mode 100644 index 000000000000..38825de0bd0f --- /dev/null +++ b/www/manager6/sdn/fabrics/isis/FabricEdit.js @@ -0,0 +1,69 @@ +Ext.define('PVE.sdn.Fabric.Isis.Fabric.Edit', { + extend: 'PVE.sdn.Fabric.Fabric.Edit', + + subject: 'IS-IS', + onlineHelp: 'pvesdn_isis_fabric', + + viewModel: { + data: { + showIpv6ForwardingHint: false, + }, + }, + + extraRequestParams: { + protocol: 'isis', + }, + + additionalItems: [ + { + xtype: 'displayfield', + value: 'To make IPv6 fabrics work, enable global IPv6 forwarding on all nodes. Click on the Help button for more details.', + bind: { + hidden: '{!showIpv6ForwardingHint}', + }, + userCls: 'pmx-hint', + }, + { + xtype: 'proxmoxtextfield', + fieldLabel: gettext('IPv6 Prefix'), + labelWidth: 120, + name: 'ip6_prefix', + allowBlank: true, + skipEmptyText: true, + cbind: { + disabled: '{!isCreate}', + deleteEmpty: '{!isCreate}', + }, + listeners: { + change: function (textbox, value) { + let vm = textbox.up('window').getViewModel(); + vm.set('showIpv6ForwardingHint', !!value); + }, + }, + }, + { + xtype: 'proxmoxintegerfield', + fieldLabel: gettext('Hello Interval'), + labelWidth: 120, + name: 'hello_interval', + allowBlank: true, + emptyText: '3', + skipEmptyText: true, + cbind: { + deleteEmpty: '{!isCreate}', + }, + }, + { + xtype: 'proxmoxintegerfield', + fieldLabel: gettext('CSNP Interval'), + labelWidth: 120, + name: 'csnp_interval', + allowBlank: true, + emptyText: '10', + skipEmptyText: true, + cbind: { + deleteEmpty: '{!isCreate}', + }, + }, + ], +}); diff --git a/www/manager6/sdn/fabrics/isis/InterfacePanel.js b/www/manager6/sdn/fabrics/isis/InterfacePanel.js new file mode 100644 index 000000000000..dc2c5b55eb6a --- /dev/null +++ b/www/manager6/sdn/fabrics/isis/InterfacePanel.js @@ -0,0 +1,34 @@ +Ext.define('PVE.sdn.Fabric.Isis.InterfacePanel', { + extend: 'PVE.sdn.Fabric.InterfacePanel', + + additionalColumns: [ + { + text: gettext('IPv6'), + xtype: 'widgetcolumn', + dataIndex: 'ip6', + flex: 1, + widget: { + xtype: 'proxmoxtextfield', + isFormField: false, + bind: { + disabled: '{record.isDisabled}', + }, + }, + }, + { + text: gettext('Hello Multiplier'), + xtype: 'widgetcolumn', + dataIndex: 'hello_multiplier', + flex: 1, + hidden: true, + widget: { + xtype: 'proxmoxintegerfield', + isFormField: false, + emptyText: '10', + bind: { + disabled: '{record.isDisabled}', + }, + }, + }, + ], +}); diff --git a/www/manager6/sdn/fabrics/isis/NodeEdit.js b/www/manager6/sdn/fabrics/isis/NodeEdit.js new file mode 100644 index 000000000000..9878edcccb73 --- /dev/null +++ b/www/manager6/sdn/fabrics/isis/NodeEdit.js @@ -0,0 +1,22 @@ +Ext.define('PVE.sdn.Fabric.Isis.Node.Edit', { + extend: 'PVE.sdn.Fabric.Node.Edit', + protocol: 'isis', + + extraRequestParams: { + protocol: 'isis', + }, + + additionalItems: [ + { + xtype: 'proxmoxtextfield', + fieldLabel: gettext('IPv6'), + labelWidth: 120, + name: 'ip6', + allowBlank: true, + skipEmptyText: true, + cbind: { + deleteEmpty: '{!isCreate}', + }, + }, + ], +}); -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel