]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/sdn/SubnetEdit.js
sdn: add subnet/ipam/sdn management
[pve-manager.git] / www / manager6 / sdn / SubnetEdit.js
1 Ext.define('PVE.sdn.SubnetInputPanel', {
2 extend: 'Proxmox.panel.InputPanel',
3 mixins: ['Proxmox.Mixin.CBind'],
4
5 onGetValues: function(values) {
6 let me = this;
7
8 if (me.isCreate) {
9 values.type = 'subnet';
10 values.subnet = values.cidr;
11 delete values.cidr;
12 }
13
14 if (!values.gateway) {
15 delete values.gateway;
16 }
17 if (!values.snat) {
18 delete values.snat;
19 }
20
21 return values;
22 },
23
24 items: [
25 {
26 xtype: 'pmxDisplayEditField',
27 name: 'cidr',
28 cbind: {
29 editable: '{isCreate}',
30 },
31 flex: 1,
32 allowBlank: false,
33 fieldLabel: gettext('Subnet'),
34 },
35 {
36 xtype: 'textfield',
37 name: 'gateway',
38 vtype: 'IP64Address',
39 fieldLabel: gettext('Gateway'),
40 allowBlank: true,
41 },
42 {
43 xtype: 'proxmoxcheckbox',
44 name: 'snat',
45 uncheckedValue: 0,
46 checked: false,
47 fieldLabel: 'SNAT'
48 },
49 {
50 xtype: 'proxmoxtextfield',
51 name: 'dnszoneprefix',
52 skipEmptyText: true,
53 fieldLabel: gettext('DNS zone prefix'),
54 allowBlank: true
55 }
56 ]
57 });
58
59 Ext.define('PVE.sdn.SubnetEdit', {
60 extend: 'Proxmox.window.Edit',
61
62 subject: gettext('Subnet'),
63
64 subnet: undefined,
65
66 width: 350,
67
68 base_url: undefined,
69
70 initComponent: function() {
71 var me = this;
72
73 me.isCreate = me.subnet === undefined;
74
75 if (me.isCreate) {
76 me.url = me.base_url;
77 me.method = 'POST';
78 } else {
79 me.url = me.base_url + '/' + me.subnet;
80 me.method = 'PUT';
81 }
82
83 let ipanel = Ext.create('PVE.sdn.SubnetInputPanel', {
84 isCreate: me.isCreate,
85 });
86
87 Ext.apply(me, {
88 items: [
89 ipanel,
90 ],
91 });
92
93 me.callParent();
94
95 if (!me.isCreate) {
96 me.load({
97 success: function(response, options) {
98 let values = response.result.data;
99 ipanel.setValues(values);
100 },
101 });
102 }
103 },
104 });