diff --git a/www/manager6/Makefile b/www/manager6/Makefile index 7765585a3..0623aa00d 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -136,6 +136,7 @@ JSSRC= \ qemu/HDResize.js \ qemu/HDMove.js \ qemu/HDThrottle.js \ + qemu/HDEfi.js \ qemu/CPUOptions.js \ qemu/DisplayEdit.js \ qemu/KeyboardEdit.js \ diff --git a/www/manager6/qemu/HardwareView.js b/www/manager6/qemu/HardwareView.js index 4b19e003a..f4b12d4e1 100644 --- a/www/manager6/qemu/HardwareView.js +++ b/www/manager6/qemu/HardwareView.js @@ -139,6 +139,9 @@ Ext.define('PVE.qemu.HardwareView', { }, cpulimit: { visible: false + }, + bios: { + visible: false } }; @@ -428,10 +431,35 @@ Ext.define('PVE.qemu.HardwareView', { } }); + var efidisk_menuitem = Ext.create('Ext.menu.Item',{ + text: gettext('EFI Disk'), + iconCls: 'pve-itype-icon-storage', + disabled: !caps.vms['VM.Config.Disk'], + handler: function() { + var win = Ext.create('PVE.qemu.EFIDiskEdit', { + url: '/api2/extjs/' + baseurl, + pveSelNode: me.pveSelNode + }); + win.on('destroy', reload); + win.show(); + } + }); + var set_button_status = function() { var sm = me.getSelectionModel(); var rec = sm.getSelection()[0]; + // check if there is already an efidisk + var rstoredata = me.rstore.getData().map; + if (rstoredata.bios && + rstoredata.bios.data.value === 'ovmf' && + !rstoredata.efidisk0) { + // we have ovmf configured and no efidisk + efidisk_menuitem.setDisabled(false); + } else { + efidisk_menuitem.setDisabled(true); + } + if (!rec) { remove_btn.disable(); edit_btn.disable(); @@ -450,6 +478,9 @@ Ext.define('PVE.qemu.HardwareView', { rowdef.tdCls == 'pve-itype-icon-storage' && (value && !value.match(/media=cdrom/)); + var isEfi = (key === 'efidisk0'); + + remove_btn.setDisabled(rec.data['delete'] || (rowdef.never_delete === true)); edit_btn.setDisabled(rec.data['delete'] || !rowdef.editor); @@ -458,7 +489,7 @@ Ext.define('PVE.qemu.HardwareView', { move_btn.setDisabled(pending || !isDisk); - diskthrottle_btn.setDisabled(pending || !isDisk); + diskthrottle_btn.setDisabled(pending || !isDisk || isEfi); revert_btn.setDisabled(!pending); @@ -511,7 +542,8 @@ Ext.define('PVE.qemu.HardwareView', { win.on('destroy', reload); win.show(); } - } + }, + efidisk_menuitem ] }) },