]>
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 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
);
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
);
42 // ignore multiple disks, we only want to set the type if there is a single disk
47 initComponent: function() {
52 xtype
: 'displayfield',
53 value
: gettext('Guest OS') + ':',
54 hidden
: !me
.insideWizard
,
60 fieldLabel
: gettext('Type'),
64 store
: Object
.keys(PVE
.Utils
.kvm_ostypes
),
70 fieldLabel
: gettext('Version'),
78 fields
: ['desc', 'val'],
79 data
: PVE
.Utils
.kvm_ostypes
.Linux
,
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
);
87 ostype
.setValue(store
.getAt(0));
99 Ext
.define('PVE.qemu.OSTypeEdit', {
100 extend
: 'Proxmox.window.Edit',
104 items
: [{ xtype
: 'pveQemuOSTypePanel' }],
106 initComponent: function() {
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
});