]> git.proxmox.com Git - proxmox-widget-toolkit.git/blobdiff - node/NetworkEdit.js
node/net: add onlineHelp reference to interface add windows
[proxmox-widget-toolkit.git] / node / NetworkEdit.js
index c3ef63c32ad9c1aea8a1b0182f79b1087ad30149..b2cb2e489879886beae4549bd257194093a9b881 100644 (file)
@@ -23,8 +23,8 @@ Ext.define('Proxmox.node.NetworkEdit', {
            iface_vtype = 'BondName';
        } else if (me.iftype === 'eth' && !me.isCreate) {
            iface_vtype = 'InterfaceName';
-       } else if (me.iftype === 'vlan' && !me.isCreate) {
-           iface_vtype = 'InterfaceName';
+       } else if (me.iftype === 'vlan') {
+           iface_vtype = 'VlanName';
        } else if (me.iftype === 'OVSBridge') {
            iface_vtype = 'BridgeName';
        } else if (me.iftype === 'OVSBond') {
@@ -40,10 +40,12 @@ Ext.define('Proxmox.node.NetworkEdit', {
 
        me.subject = Proxmox.Utils.render_network_iface_type(me.iftype);
 
-       var column2 = [];
+       let column1 = [],
+           column2 = [],
+           advancedColumn1 = [],
+           advancedColumn2 = [];
 
-       if (!(me.iftype === 'OVSIntPort' || me.iftype === 'OVSPort' ||
-             me.iftype === 'OVSBond')) {
+       if (!(me.iftype === 'OVSIntPort' || me.iftype === 'OVSPort' || me.iftype === 'OVSBond')) {
            column2.push({
                xtype: 'proxmoxcheckbox',
                fieldLabel: gettext('Autostart'),
@@ -96,6 +98,49 @@ Ext.define('Proxmox.node.NetworkEdit', {
                fieldLabel: gettext('OVS options'),
                name: 'ovs_options'
            });
+       } else if (me.iftype === 'vlan') {
+
+           if (!me.isCreate) {
+
+               me.disablevlanid = false;
+               me.disablevlanrawdevice = false;
+               me.vlanrawdevicevalue = '';
+               me.vlanidvalue = '';
+
+               if (Proxmox.Utils.VlanInterface_match.test(me.iface)) {
+                  me.disablevlanid = true;
+                  me.disablevlanrawdevice = true;
+                  var arr = Proxmox.Utils.VlanInterface_match.exec(me.iface);
+                  me.vlanrawdevicevalue = arr[1];
+                  me.vlanidvalue = arr[2];
+
+               } else if (Proxmox.Utils.Vlan_match.test(me.iface)) {
+                  me.disablevlanid = true;
+                  var arr = Proxmox.Utils.Vlan_match.exec(me.iface);
+                  me.vlanidvalue = arr[1];
+               }
+           } else {
+
+               me.disablevlanid = true;
+               me.disablevlanrawdevice = true;
+           }
+
+           column2.push({
+               xtype: 'textfield',
+               fieldLabel: gettext('Vlan raw device'),
+               name: 'vlan-raw-device',
+               value: me.vlanrawdevicevalue,
+               disabled: me.disablevlanrawdevice
+           });
+
+           column2.push({
+               xtype: 'pveVlanField',
+               name: 'vlan-id',
+               value: me.vlanidvalue,
+               disabled: me.disablevlanid
+
+           });
+
        } else if (me.iftype === 'bond') {
            column2.push({
                xtype: 'textfield',
@@ -110,6 +155,13 @@ Ext.define('Proxmox.node.NetworkEdit', {
                disabled: true
            });
 
+           var primaryfield = Ext.createWidget('textfield', {
+               fieldLabel: gettext('bond-primary'),
+               name: 'bond-primary',
+               value: '',
+               disabled: true
+           });
+
            column2.push({
                xtype: 'bondModeSelector',
                fieldLabel: gettext('Mode'),
@@ -120,9 +172,17 @@ Ext.define('Proxmox.node.NetworkEdit', {
                        if (value === 'balance-xor' ||
                            value === '802.3ad') {
                            policySelector.setDisabled(false);
+                           primaryfield.setDisabled(true);
+                           primaryfield.setValue('');
+                       } else if (value === 'active-backup') {
+                           primaryfield.setDisabled(false);
+                           policySelector.setDisabled(true);
+                           policySelector.setValue('');
                        } else {
                            policySelector.setDisabled(true);
                            policySelector.setValue('');
+                           primaryfield.setDisabled(true);
+                           primaryfield.setValue('');
                        }
                    }
                },
@@ -130,6 +190,7 @@ Ext.define('Proxmox.node.NetworkEdit', {
            });
 
            column2.push(policySelector);
+           column2.push(primaryfield);
 
        } else if (me.iftype === 'OVSBond') {
            column2.push({
@@ -172,21 +233,37 @@ Ext.define('Proxmox.node.NetworkEdit', {
            method = 'PUT';
        }
 
-       var column1 = [
-           {
-               xtype: 'hiddenfield',
-               name: 'type',
-               value: me.iftype
-           },
-           {
-               xtype: me.isCreate ? 'textfield' : 'displayfield',
-               fieldLabel: gettext('Name'),
-               name: 'iface',
-               value: me.iface,
-               vtype: iface_vtype,
-               allowBlank: false
+       column1.push({
+           xtype: 'hiddenfield',
+           name: 'type',
+           value: me.iftype
+       },
+       {
+           xtype: me.isCreate ? 'textfield' : 'displayfield',
+           fieldLabel: gettext('Name'),
+           name: 'iface',
+           value: me.iface,
+           vtype: iface_vtype,
+           allowBlank: false,
+           listeners: {
+               change: function(f, value) {
+                   if (me.isCreate && iface_vtype === 'VlanName') {
+                       var vlanidField = me.down('field[name=vlan-id]');
+                       var vlanrawdeviceField = me.down('field[name=vlan-raw-device]');
+                       if (Proxmox.Utils.VlanInterface_match.test(value)) {
+                           vlanidField.setDisabled(true);
+                           vlanrawdeviceField.setDisabled(true);
+                       } else if (Proxmox.Utils.Vlan_match.test(value)) {
+                           vlanidField.setDisabled(true);
+                           vlanrawdeviceField.setDisabled(false);
+                       } else {
+                           vlanidField.setDisabled(false);
+                           vlanrawdeviceField.setDisabled(false);
+                       }
+                   }
+               }
            }
-       ];
+       });
 
        if (me.iftype === 'OVSBond') {
            column1.push(
@@ -234,7 +311,18 @@ Ext.define('Proxmox.node.NetworkEdit', {
                    fieldLabel: gettext('Gateway') + ' (IPv6)',
                    vtype: 'IP6Address',
                    name: 'gateway6'
-               }
+               },
+           );
+           advancedColumn1. push(
+               {
+                   xtype: 'proxmoxintegerfield',
+                   minValue: 1280,
+                   maxValue: 65520,
+                   deleteEmpty: !me.isCreate,
+                   emptyText: 1500,
+                   fieldLabel: 'MTU',
+                   name: 'mtu'
+               },
            );
        }
 
@@ -244,7 +332,9 @@ Ext.define('Proxmox.node.NetworkEdit', {
            items: {
                 xtype: 'inputpanel',
                column1: column1,
-               column2: column2
+               column2: column2,
+               advancedColumn1: advancedColumn1,
+               advancedColumn2: advancedColumn2,
            }
        });