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') {
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'),
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',
disabled: true
});
+ var primaryfield = Ext.createWidget('textfield', {
+ fieldLabel: gettext('bond-primary'),
+ name: 'bond-primary',
+ value: '',
+ disabled: true
+ });
+
column2.push({
xtype: 'bondModeSelector',
fieldLabel: gettext('Mode'),
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('');
}
}
},
});
column2.push(policySelector);
+ column2.push(primaryfield);
} else if (me.iftype === 'OVSBond') {
column2.push({
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(
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'
+ },
);
}
items: {
xtype: 'inputpanel',
column1: column1,
- column2: column2
+ column2: column2,
+ advancedColumn1: advancedColumn1,
+ advancedColumn2: advancedColumn2,
}
});