]>
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
);
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)',
123 if (me
.insideWizard
) {
128 boxLabel
: gettext('No network device'),
130 change: function(cb
, value
) {
142 fields
.forEach(function(fieldname
) {
143 me
.down('field[name='+fieldname
+']').setDisabled(value
);
145 me
.down('field[name=bridge]').validate();
150 xtype
: 'displayfield',
156 xtype
: 'pveNetworkCardSelector',
158 fieldLabel
: gettext('Model'),
159 bind
: '{networkModel}',
160 value
: PVE
.qemu
.OSDefaults
.generic
.networkCard
,
166 fieldLabel
: gettext('MAC address'),
171 me
.advancedColumn2
= [
173 xtype
: 'numberfield',
175 fieldLabel
: gettext('Rate limit') + ' (MB/s)',
179 emptyText
: 'unlimited',
183 xtype
: 'proxmoxintegerfield',
185 fieldLabel
: 'Multiqueue',
192 me
.advancedColumnB
= [
194 xtype
: 'displayfield',
196 value
: gettext("Use the special value '1' to inherit the MTU value from the underlying bridge"),
198 hidden
: '{!showMtuHint}',
207 Ext
.define('PVE.qemu.NetworkEdit', {
208 extend
: 'Proxmox.window.Edit',
212 initComponent: function() {
215 var nodename
= me
.pveSelNode
.data
.node
;
217 throw "no node name specified";
220 me
.isCreate
= !me
.confid
;
222 var ipanel
= Ext
.create('PVE.qemu.NetworkInputPanel', {
225 isCreate
: me
.isCreate
,
229 subject
: gettext('Network Device'),
236 success: function(response
, options
) {
238 me
.vmconfig
= response
.result
.data
;
240 var value
= me
.vmconfig
[me
.confid
];
241 var network
= PVE
.Parser
.parseQemuNetwork(me
.confid
, value
);
243 Ext
.Msg
.alert(gettext('Error'), 'Unable to parse network options');
247 ipanel
.setNetwork(me
.confid
, network
);
249 for (i
= 0; i
< 100; i
++) {
250 confid
= 'net' + i
.toString();
251 if (!Ext
.isDefined(me
.vmconfig
[confid
])) {
257 let ostype
= me
.vmconfig
.ostype
;
258 let defaults
= PVE
.qemu
.OSDefaults
.getDefaults(ostype
);
260 model
: defaults
.networkCard
,
263 ipanel
.setNetwork(me
.confid
, data
);