From: Stefan Hanreich <s.hanre...@proxmox.com>

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.hanre...@proxmox.com>
Signed-off-by: Gabriel Goller <g.gol...@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 69ec4c68c633..37d4bcc16d01 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 000000000000..10f7aa2b28be
--- /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



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to