]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/qemu/OSTypeEdit.js
qemu: processor : set x86-64-v2-AES as default cputype for create wizard
[pve-manager.git] / www / manager6 / qemu / OSTypeEdit.js
1 Ext.define('PVE.qemu.OSTypeInputPanel', {
2 extend: 'Proxmox.panel.InputPanel',
3 alias: 'widget.pveQemuOSTypePanel',
4 onlineHelp: 'qm_os_settings',
5 insideWizard: false,
6
7 controller: {
8 xclass: 'Ext.app.ViewController',
9 control: {
10 'combobox[name=osbase]': {
11 change: 'onOSBaseChange',
12 },
13 'combobox[name=ostype]': {
14 afterrender: 'onOSTypeChange',
15 change: 'onOSTypeChange',
16 },
17 },
18 onOSBaseChange: function(field, value) {
19 this.lookup('ostype').getStore().setData(PVE.Utils.kvm_ostypes[value]);
20 },
21 onOSTypeChange: function(field) {
22 var me = this, ostype = field.getValue();
23 if (!me.getView().insideWizard) {
24 return;
25 }
26 var targetValues = PVE.qemu.OSDefaults.getDefaults(ostype);
27
28 me.setWidget('pveBusSelector', targetValues.busType);
29 me.setWidget('pveNetworkCardSelector', targetValues.networkCard);
30 me.setWidget('CPUModelSelector', targetValues.cputype);
31 var scsihw = targetValues.scsihw || '__default__';
32 this.getViewModel().set('current.scsihw', scsihw);
33 this.getViewModel().set('current.ostype', ostype);
34 },
35 setWidget: function(widget, newValue) {
36 // changing a widget is safe only if ComponentQuery.query returns us
37 // a single value array
38 var widgets = Ext.ComponentQuery.query('pveQemuCreateWizard ' + widget);
39 if (widgets.length === 1) {
40 widgets[0].setValue(newValue);
41 } else {
42 // ignore multiple disks, we only want to set the type if there is a single disk
43 }
44 },
45 },
46
47 initComponent: function() {
48 var me = this;
49
50 me.items = [
51 {
52 xtype: 'displayfield',
53 value: gettext('Guest OS') + ':',
54 hidden: !me.insideWizard,
55 },
56 {
57 xtype: 'combobox',
58 submitValue: false,
59 name: 'osbase',
60 fieldLabel: gettext('Type'),
61 editable: false,
62 queryMode: 'local',
63 value: 'Linux',
64 store: Object.keys(PVE.Utils.kvm_ostypes),
65 },
66 {
67 xtype: 'combobox',
68 name: 'ostype',
69 reference: 'ostype',
70 fieldLabel: gettext('Version'),
71 value: 'l26',
72 allowBlank: false,
73 editable: false,
74 queryMode: 'local',
75 valueField: 'val',
76 displayField: 'desc',
77 store: {
78 fields: ['desc', 'val'],
79 data: PVE.Utils.kvm_ostypes.Linux,
80 listeners: {
81 datachanged: function(store) {
82 var ostype = me.lookup('ostype');
83 var old_val = ostype.getValue();
84 if (!me.insideWizard && old_val && store.find('val', old_val) !== -1) {
85 ostype.setValue(old_val);
86 } else {
87 ostype.setValue(store.getAt(0));
88 }
89 },
90 },
91 },
92 },
93 ];
94
95 me.callParent();
96 },
97 });
98
99 Ext.define('PVE.qemu.OSTypeEdit', {
100 extend: 'Proxmox.window.Edit',
101
102 subject: 'OS Type',
103
104 items: [{ xtype: 'pveQemuOSTypePanel' }],
105
106 initComponent: function() {
107 var me = this;
108
109 me.callParent();
110
111 me.load({
112 success: function(response, options) {
113 var value = response.result.data.ostype || 'other';
114 var osinfo = PVE.Utils.get_kvm_osinfo(value);
115 me.setValues({ ostype: value, osbase: osinfo.base });
116 },
117 });
118 },
119 });