Ext.define('PVE.qemu.BiosEdit', {
- extend: 'PVE.window.Edit',
+ extend: 'Proxmox.window.Edit',
alias: 'widget.pveQemuBiosEdit',
- initComponent : function() {
- var me = this;
+ onlineHelp: 'qm_bios_and_uefi',
+ subject: 'BIOS',
+ autoLoad: true,
- var EFIHint = Ext.createWidget({
- xtype: 'displayfield', //submitValue is false, so we don't get submitted
- userCls: 'pve-hint',
- value: 'You need to add an EFI disk for storing the ' +
- 'EFI settings. See the online help for details.',
- hidden: true
- });
+ viewModel: {
+ data: {
+ bios: '__default__',
+ efidisk0: false,
+ },
+ formulas: {
+ showEFIDiskHint: (get) => get('bios') === 'ovmf' && !get('efidisk0'),
+ },
+ },
- Ext.applyIf(me, {
- subject: 'BIOS',
- items: [ {
- xtype: 'pveQemuBiosSelector',
- onlineHelp: 'qm_bios_and_uefi',
- name: 'bios',
- value: '__default__',
- fieldLabel: 'BIOS',
- listeners: {
- 'change' : function(field, newValue) {
- if (newValue == 'ovmf') {
- PVE.Utils.API2Request({
- url : me.url,
- method : 'GET',
- failure : function(response, opts) {
- Ext.Msg.alert(gettext('Error'), response.htmlStatus);
- },
- success : function(response, opts) {
- var vmConfig = response.result.data;
- // there can be only one
- if (!vmConfig.efidisk0) {
- EFIHint.setVisible(true);
- }
- }
- });
- } else {
- if (EFIHint.isVisible()) {
- EFIHint.setVisible(false);
- }
- }
- }
- }
+ items: [
+ {
+ xtype: 'pveQemuBiosSelector',
+ onlineHelp: 'qm_bios_and_uefi',
+ name: 'bios',
+ value: '__default__',
+ bind: '{bios}',
+ fieldLabel: 'BIOS',
+ },
+ {
+ xtype: 'displayfield',
+ name: 'efidisk0',
+ bind: '{efidisk0}',
+ hidden: true,
+ },
+ {
+ xtype: 'displayfield',
+ userCls: 'pmx-hint',
+ value: gettext('You need to add an EFI disk for storing the EFI settings. See the online help for details.'),
+ bind: {
+ hidden: '{!showEFIDiskHint}',
},
- EFIHint
- ] });
-
- me.callParent();
-
- me.load();
-
- }
+ },
+ ],
});