Add startupPolicy to Custom.form

This commit is contained in:
SimonFair
2022-09-19 16:39:07 +01:00
parent bde221a534
commit a2265ef9dc
2 changed files with 12 additions and 4 deletions

View File

@@ -262,6 +262,7 @@
$nics = $config['nic'];
$disks = $config['disk'];
$usb = $config['usb'];
$usbopt = $config['usbopt'];
$shares = $config['shares'];
$gpus = $config['gpu'];
$pcis = $config['pci'];
@@ -447,8 +448,12 @@
if (!empty($usb)) {
foreach($usb as $i => $v){
$usbx = explode(':', $v);
$startupPolicy = '' ;
if (isset($usbopt[$i])) {
if (strpos($usbopt[$i], "#remove") == false) $startupPolicy = 'startupPolicy="optional"' ; else $startupPolicy = '' ;
}
$usbstr .= "<hostdev mode='subsystem' type='usb'>
<source>
<source $startupPolicy>
<vendor id='0x".$usbx[0]."'/>
<product id='0x".$usbx[1]."'/>
</source>

View File

@@ -1114,6 +1114,8 @@
</script>
<table>
<tr><td></td>
<td>_(Select)_&nbsp&nbsp_(Optional)_</td></tr></div>
<tr>
<td>_(USB Devices)_:</td>
<td>
@@ -1122,7 +1124,8 @@
if (!empty($arrVMUSBs)) {
foreach($arrVMUSBs as $i => $arrDev) {
?>
<label for="usb<?=$i?>"><input type="checkbox" name="usb[]" id="usb<?=$i?>" value="<?=htmlspecialchars($arrDev['id'])?>" <?if (count(array_filter($arrConfig['usb'], function($arr) use ($arrDev) { return ($arr['id'] == $arrDev['id']); }))) echo 'checked="checked"';?>/> <?=htmlspecialchars($arrDev['name'])?> (<?=htmlspecialchars($arrDev['id'])?>)</label><br/>
<label for="usb<?=$i?>">&nbsp&nbsp&nbsp&nbsp<input type="checkbox" name="usb[]" id="usb<?=$i?>" value="<?=htmlspecialchars($arrDev['id'])?>" <?if (count(array_filter($arrConfig['usb'], function($arr) use ($arrDev) { return ($arr['id'] == $arrDev['id']); }))) echo 'checked="checked"';?>
/> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <input type="checkbox" name="usbopt[]" id="usbopt<?=$i?>" value="<?=htmlspecialchars($arrDev['id'])?>" <?if ($arrDev["startupPolicy"] =="optional") echo 'checked="checked"';?>/>&nbsp&nbsp&nbsp <?=htmlspecialchars($arrDev['name'])?> (<?=htmlspecialchars($arrDev['id'])?>)</label><br/>
<?
}
} else {
@@ -1506,7 +1509,7 @@ $(function() {
<?if (!$boolNew):?>
// signal devices to be added or removed
form.find('input[name="usb[]"],input[name="pci[]"]').each(function(){
form.find('input[name="usb[]"],input[name="pci[]"],input[name="usbopt[]"]').each(function(){
if (!$(this).prop('checked')) $(this).prop('checked',true).val($(this).val()+'#remove');
});
// remove unused graphic cards
@@ -1533,7 +1536,7 @@ $(function() {
var postdata = form.find('input,select').serialize().replace(/'/g,"%27");
<?if (!$boolNew):?>
// keep checkbox visually unchecked
form.find('input[name="usb[]"],input[name="pci[]"]').each(function(){
form.find('input[name="usb[]"],input[name="usbopt[]"],input[name="pci[]"]').each(function(){
if ($(this).val().indexOf('#remove')>0) $(this).prop('checked',false);
});
<?endif?>