]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/qemu/NetworkEdit.js
1 Ext
.define('PVE.qemu.NetworkInputPanel', {
2 extend
: 'Proxmox.panel.InputPanel',
3 alias
: 'widget.pveQemuNetworkInputPanel',
4 onlineHelp
: 'qm_network_device',
8 onGetValues: function(values
) {
11 me
.network
.model
= values
.model
;
12 if (values
.nonetwork
) {
15 me
.network
.bridge
= values
.bridge
;
16 me
.network
.tag
= values
.tag
;
17 me
.network
.firewall
= values
.firewall
;
19 me
.network
.macaddr
= values
.macaddr
;
20 me
.network
.disconnect
= values
.disconnect
;
21 me
.network
.queues
= values
.queues
;
22 me
.network
.mtu
= values
.mtu
;
25 me
.network
.rate
= values
.rate
;
27 delete me
.network
.rate
;
32 params
[me
.confid
] = PVE
.Parser
.printQemuNetwork(me
.network
);
39 networkModel
: undefined,
43 isVirtio
: get => get('networkModel') === 'virtio',
44 showMtuHint
: get => get('mtu') === 1,
48 setNetwork: function(confid
, data
) {
54 data
.networkmode
= data
.bridge
? 'bridge' : 'nat';
57 data
.networkmode
= 'bridge';
61 me
.setValues(me
.network
);
64 setNodename: function(nodename
) {
67 me
.bridgesel
.setNodename(nodename
);
70 initComponent: function() {
79 me
.bridgesel
= Ext
.create('PVE.form.BridgeSelector', {
81 fieldLabel
: gettext('Bridge'),
82 nodename
: me
.nodename
,
90 xtype
: 'pveVlanField',
95 xtype
: 'proxmoxcheckbox',
96 fieldLabel
: gettext('Firewall'),
98 checked
: me
.insideWizard
|| me
.isCreate
,
102 me
.advancedColumn1
= [
104 xtype
: 'proxmoxcheckbox',
105 fieldLabel
: gettext('Disconnect'),
109 xtype
: 'proxmoxintegerfield',
113 disabled
: '{!isVirtio}',
116 emptyText
: '1500 (1 = bridge MTU)',
120 validator
: val
=> val
=== '' || val
>= 576 || val
=== '1'
122 : gettext('MTU needs to be >= 576 or 1 to inherit the MTU from the underlying bridge.'),
126 if (me
.insideWizard
) {
131 boxLabel
: gettext('No network device'),
133 change: function(cb
, value
) {
145 fields
.forEach(function(fieldname
) {
146 me
.down('field[name='+fieldname
+']').setDisabled(value
);
148 me
.down('field[name=bridge]').validate();
153 xtype
: 'displayfield',
159 xtype
: 'pveNetworkCardSelector',
161 fieldLabel
: gettext('Model'),
162 bind
: '{networkModel}',
163 value
: PVE
.qemu
.OSDefaults
.generic
.networkCard
,
169 fieldLabel
: gettext('MAC address'),
174 me
.advancedColumn2
= [
176 xtype
: 'numberfield',
178 fieldLabel
: gettext('Rate limit') + ' (MB/s)',
182 emptyText
: 'unlimited',
186 xtype
: 'proxmoxintegerfield',
188 fieldLabel
: 'Multiqueue',
195 me
.advancedColumnB
= [
197 xtype
: 'displayfield',
199 value
: gettext("Use the special value '1' to inherit the MTU value from the underlying bridge"),
201 hidden
: '{!showMtuHint}',
210 Ext
.define('PVE.qemu.NetworkEdit', {
211 extend
: 'Proxmox.window.Edit',
215 initComponent: function() {
218 var nodename
= me
.pveSelNode
.data
.node
;
220 throw "no node name specified";
223 me
.isCreate
= !me
.confid
;
225 var ipanel
= Ext
.create('PVE.qemu.NetworkInputPanel', {
228 isCreate
: me
.isCreate
,
232 subject
: gettext('Network Device'),
239 success: function(response
, options
) {
241 me
.vmconfig
= response
.result
.data
;
243 var value
= me
.vmconfig
[me
.confid
];
244 var network
= PVE
.Parser
.parseQemuNetwork(me
.confid
, value
);
246 Ext
.Msg
.alert(gettext('Error'), 'Unable to parse network options');
250 ipanel
.setNetwork(me
.confid
, network
);
252 for (i
= 0; i
< 100; i
++) {
253 confid
= 'net' + i
.toString();
254 if (!Ext
.isDefined(me
.vmconfig
[confid
])) {
260 let ostype
= me
.vmconfig
.ostype
;
261 let defaults
= PVE
.qemu
.OSDefaults
.getDefaults(ostype
);
263 model
: defaults
.networkCard
,
266 ipanel
.setNetwork(me
.confid
, data
);