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 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


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

Reply via email to