]>
git.proxmox.com Git - pve-manager.git/blob - 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',
8 xclass
: 'Ext.app.ViewController',
10 'combobox[name=osbase]': {
11 change
: 'onOSBaseChange',
13 'combobox[name=ostype]': {
14 afterrender
: 'onOSTypeChange',
15 change
: 'onOSTypeChange',
18 onOSBaseChange: function(field
, value
) {
19 this.lookup('ostype').getStore().setData(PVE
.Utils
.kvm_ostypes
[value
]);
21 onOSTypeChange: function(field
) {
22 var me
= this, ostype
= field
.getValue();
23 if (!me
.getView().insideWizard
) {
26 var targetValues
= PVE
.qemu
.OSDefaults
.getDefaults(ostype
);
28 me
.setWidget('pveBusSelector', targetValues
.busType
);
29 me
.setWidget('pveNetworkCardSelector', targetValues
.networkCard
);
30 var scsihw
= targetValues
.scsihw
|| '__default__';
31 this.getViewModel().set('current.scsihw', scsihw
);
32 this.getViewModel().set('current.ostype', ostype
);
34 setWidget: function(widget
, newValue
) {
35 // changing a widget is safe only if ComponentQuery.query returns us
36 // a single value array
37 var widgets
= Ext
.ComponentQuery
.query('pveQemuCreateWizard ' + widget
);
38 if (widgets
.length
=== 1) {
39 widgets
[0].setValue(newValue
);
41 // ignore multiple disks, we only want to set the type if there is a single disk
46 initComponent: function() {
51 xtype
: 'displayfield',
52 value
: gettext('Guest OS') + ':',
53 hidden
: !me
.insideWizard
,
59 fieldLabel
: gettext('Type'),
63 store
: Object
.keys(PVE
.Utils
.kvm_ostypes
),
69 fieldLabel
: gettext('Version'),
77 fields
: ['desc', 'val'],
78 data
: PVE
.Utils
.kvm_ostypes
.Linux
,
80 datachanged: function(store
) {
81 var ostype
= me
.lookup('ostype');
82 var old_val
= ostype
.getValue();
83 if (!me
.insideWizard
&& old_val
&& store
.find('val', old_val
) !== -1) {
84 ostype
.setValue(old_val
);
86 ostype
.setValue(store
.getAt(0));
98 Ext
.define('PVE.qemu.OSTypeEdit', {
99 extend
: 'Proxmox.window.Edit',
103 items
: [{ xtype
: 'pveQemuOSTypePanel' }],
105 initComponent: function() {
111 success: function(response
, options
) {
112 var value
= response
.result
.data
.ostype
|| 'other';
113 var osinfo
= PVE
.Utils
.get_kvm_osinfo(value
);
114 me
.setValues({ ostype
: value
, osbase
: osinfo
.base
});