]>
Commit | Line | Data |
---|---|---|
37977fa5 TL |
1 | Ext.define('PVE.qemu.SerialnputPanel', { |
2 | extend: 'Proxmox.panel.InputPanel', | |
3 | ||
4 | autoComplete: false, | |
5 | ||
6 | setVMConfig: function(vmconfig) { | |
7 | var me = this, i; | |
8 | me.vmconfig = vmconfig; | |
9 | ||
10 | for (i = 0; i < 4; i++) { | |
8058410f | 11 | var port = 'serial' + i.toString(); |
37977fa5 TL |
12 | if (!me.vmconfig[port]) { |
13 | me.down('field[name=serialid]').setValue(i); | |
14 | break; | |
15 | } | |
16 | } | |
37977fa5 TL |
17 | }, |
18 | ||
19 | onGetValues: function(values) { | |
20 | var me = this; | |
21 | ||
22 | var id = 'serial' + values.serialid; | |
23 | delete values.serialid; | |
24 | values[id] = 'socket'; | |
25 | return values; | |
26 | }, | |
27 | ||
28 | items: [ | |
29 | { | |
30 | xtype: 'proxmoxintegerfield', | |
31 | name: 'serialid', | |
32 | fieldLabel: gettext('Serial Port'), | |
33 | minValue: 0, | |
34 | maxValue: 3, | |
35 | allowBlank: false, | |
36 | validator: function(id) { | |
37 | if (!this.rendered) { | |
38 | return true; | |
39 | } | |
46d9a35c DJ |
40 | let view = this.up('panel'); |
41 | if (view.vmconfig !== undefined && Ext.isDefined(view.vmconfig['serial' + id])) { | |
37977fa5 TL |
42 | return "This device is already in use."; |
43 | } | |
44 | return true; | |
f6710aac TL |
45 | }, |
46 | }, | |
47 | ], | |
37977fa5 TL |
48 | }); |
49 | ||
50 | Ext.define('PVE.qemu.SerialEdit', { | |
51 | extend: 'Proxmox.window.Edit', | |
52 | ||
53 | vmconfig: undefined, | |
54 | ||
55 | isAdd: true, | |
56 | ||
57 | subject: gettext('Serial Port'), | |
58 | ||
8058410f | 59 | initComponent: function() { |
37977fa5 TL |
60 | var me = this; |
61 | ||
62 | // for now create of (socket) serial port only | |
63 | me.isCreate = true; | |
64 | ||
65 | var ipanel = Ext.create('PVE.qemu.SerialnputPanel', {}); | |
66 | ||
67 | Ext.apply(me, { | |
8058410f | 68 | items: [ipanel], |
37977fa5 TL |
69 | }); |
70 | ||
71 | me.callParent(); | |
72 | ||
73 | me.load({ | |
74 | success: function(response, options) { | |
75 | ipanel.setVMConfig(response.result.data); | |
f6710aac | 76 | }, |
37977fa5 | 77 | }); |
f6710aac | 78 | }, |
37977fa5 | 79 | }); |