]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/qemu/NetworkEdit.js
ui: eslint: fix various spacing related issues
[pve-manager.git] / www / manager6 / qemu / NetworkEdit.js
CommitLineData
8487aa12 1Ext.define('PVE.qemu.NetworkInputPanel', {
ef4ef788 2 extend: 'Proxmox.panel.InputPanel',
85806e47 3 alias: 'widget.pveQemuNetworkInputPanel',
c8802a60 4 onlineHelp: 'qm_network_device',
8487aa12
DM
5
6 insideWizard: false,
7
8 onGetValues: function(values) {
9 var me = this;
10
11 me.network.model = values.model;
57f034f6 12 if (values.nonetwork) {
8487aa12 13 return {};
57f034f6 14 } else {
8487aa12
DM
15 me.network.bridge = values.bridge;
16 me.network.tag = values.tag;
17 me.network.firewall = values.firewall;
8487aa12
DM
18 }
19 me.network.macaddr = values.macaddr;
20 me.network.disconnect = values.disconnect;
21 me.network.queues = values.queues;
22
23 if (values.rate) {
24 me.network.rate = values.rate;
25 } else {
26 delete me.network.rate;
27 }
28
29 var params = {};
30
31 params[me.confid] = PVE.Parser.printQemuNetwork(me.network);
32
33 return params;
34 },
35
36 setNetwork: function(confid, data) {
37 var me = this;
38
39 me.confid = confid;
40
41 if (data) {
42 data.networkmode = data.bridge ? 'bridge' : 'nat';
43 } else {
44 data = {};
45 data.networkmode = 'bridge';
46 }
47 me.network = data;
2a4971d8 48
8487aa12
DM
49 me.setValues(me.network);
50 },
51
52 setNodename: function(nodename) {
53 var me = this;
54
55 me.bridgesel.setNodename(nodename);
56 },
57
8058410f 58 initComponent: function() {
8487aa12
DM
59 var me = this;
60
61 me.network = {};
62 me.confid = 'net0';
63
57f034f6
DC
64 me.column1 = [];
65 me.column2 = [];
66
8487aa12
DM
67 me.bridgesel = Ext.create('PVE.form.BridgeSelector', {
68 name: 'bridge',
69 fieldLabel: gettext('Bridge'),
70 nodename: me.nodename,
8487aa12 71 autoSelect: true,
f6710aac 72 allowBlank: false,
8487aa12
DM
73 });
74
75 me.column1 = [
8487aa12
DM
76 me.bridgesel,
77 {
78 xtype: 'pveVlanField',
79 name: 'tag',
f6710aac 80 value: '',
8487aa12 81 },
8487aa12 82 {
896c0d50 83 xtype: 'proxmoxcheckbox',
8487aa12 84 fieldLabel: gettext('Firewall'),
b2991833 85 name: 'firewall',
f6710aac
TL
86 checked: (me.insideWizard || me.isCreate),
87 },
57f034f6
DC
88 ];
89
90 me.advancedColumn1 = [
8487aa12 91 {
57f034f6
DC
92 xtype: 'proxmoxcheckbox',
93 fieldLabel: gettext('Disconnect'),
f6710aac
TL
94 name: 'disconnect',
95 },
8487aa12
DM
96 ];
97
98 if (me.insideWizard) {
57f034f6
DC
99 me.column1.unshift({
100 xtype: 'checkbox',
101 name: 'nonetwork',
8487aa12 102 inputValue: 'none',
57f034f6
DC
103 boxLabel: gettext('No network device'),
104 listeners: {
105 change: function(cb, value) {
106 var fields = [
107 'disconnect',
108 'bridge',
109 'tag',
110 'firewall',
111 'model',
112 'macaddr',
113 'rate',
f6710aac 114 'queues',
57f034f6
DC
115 ];
116 fields.forEach(function(fieldname) {
117 me.down('field[name='+fieldname+']').setDisabled(value);
118 });
119 me.down('field[name=bridge]').validate();
f6710aac
TL
120 },
121 },
57f034f6
DC
122 });
123 me.column2.unshift({
f6710aac 124 xtype: 'displayfield',
8487aa12
DM
125 });
126 }
127
57f034f6 128 me.column2.push(
8487aa12 129 {
42902182 130 xtype: 'pveNetworkCardSelector',
8487aa12
DM
131 name: 'model',
132 fieldLabel: gettext('Model'),
39c06c69 133 value: PVE.qemu.OSDefaults.generic.networkCard,
f6710aac 134 allowBlank: false,
8487aa12
DM
135 },
136 {
137 xtype: 'textfield',
138 name: 'macaddr',
139 fieldLabel: gettext('MAC address'),
140 vtype: 'MacAddress',
141 allowBlank: true,
f6710aac 142 emptyText: 'auto',
57f034f6
DC
143 });
144 me.advancedColumn2 = [
8487aa12
DM
145 {
146 xtype: 'numberfield',
147 name: 'rate',
148 fieldLabel: gettext('Rate limit') + ' (MB/s)',
149 minValue: 0,
150 maxValue: 10*1024,
151 value: '',
152 emptyText: 'unlimited',
f6710aac 153 allowBlank: true,
8487aa12
DM
154 },
155 {
bf96f60d 156 xtype: 'proxmoxintegerfield',
8487aa12 157 name: 'queues',
a1af3e38 158 fieldLabel: 'Multiqueue',
8487aa12
DM
159 minValue: 1,
160 maxValue: 8,
161 value: '',
f6710aac
TL
162 allowBlank: true,
163 },
8487aa12
DM
164 ];
165
166 me.callParent();
f6710aac 167 },
8487aa12
DM
168});
169
170Ext.define('PVE.qemu.NetworkEdit', {
9fccc702 171 extend: 'Proxmox.window.Edit',
8487aa12
DM
172
173 isAdd: true,
174
8058410f 175 initComponent: function() {
8487aa12
DM
176 var me = this;
177
178 var nodename = me.pveSelNode.data.node;
2a4971d8
TL
179 if (!nodename) {
180 throw "no node name specified";
8487aa12
DM
181 }
182
d5e771ce 183 me.isCreate = me.confid ? false : true;
8487aa12
DM
184
185 var ipanel = Ext.create('PVE.qemu.NetworkInputPanel', {
186 confid: me.confid,
b2991833 187 nodename: nodename,
f6710aac 188 isCreate: me.isCreate,
8487aa12
DM
189 });
190
191 Ext.applyIf(me, {
192 subject: gettext('Network Device'),
f6710aac 193 items: ipanel,
8487aa12
DM
194 });
195
196 me.callParent();
197
198 me.load({
199 success: function(response, options) {
200 var i, confid;
201 me.vmconfig = response.result.data;
d5e771ce 202 if (!me.isCreate) {
8487aa12
DM
203 var value = me.vmconfig[me.confid];
204 var network = PVE.Parser.parseQemuNetwork(me.confid, value);
205 if (!network) {
185a77e5 206 Ext.Msg.alert(gettext('Error'), 'Unable to parse network options');
8487aa12
DM
207 me.close();
208 return;
209 }
210 ipanel.setNetwork(me.confid, network);
211 } else {
212 for (i = 0; i < 100; i++) {
213 confid = 'net' + i.toString();
214 if (!Ext.isDefined(me.vmconfig[confid])) {
215 me.confid = confid;
216 break;
217 }
218 }
410198ac
DJ
219
220 let ostype = me.vmconfig.ostype;
221 let defaults = PVE.qemu.OSDefaults.getDefaults(ostype);
222 let data = {
223 model: defaults.networkCard,
224 };
225
226 ipanel.setNetwork(me.confid, data);
8487aa12 227 }
f6710aac 228 },
8487aa12 229 });
f6710aac 230 },
8487aa12 231});