Merge pull request #1740 from SimonFair/Enable-subvol-or-dataset-for-VMs

VM Bug fixes.
This commit is contained in:
tom mortensen
2024-05-26 11:55:32 -07:00
committed by GitHub
4 changed files with 36 additions and 24 deletions

View File

@@ -93,8 +93,12 @@ if (isset($_GET['uuid'])) {
}
$arrLoad['form'] = $arrAllTemplates[$strSelectedTemplate]['form'];
}
$usertemplate = 0;
$strSelectedTemplateUT = $strSelectedTemplate;
if (strpos($strSelectedTemplate,"User-") !== false) $strSelectedTemplateUT = str_replace("User-","",$strSelectedTemplateUT);
if (strpos($strSelectedTemplate,"User-") !== false) {
$strSelectedTemplateUT = str_replace("User-","",$strSelectedTemplateUT);
$usertemplate = 1;
}
?>
<link type="text/css" rel="stylesheet" href="<?autov('/plugins/dynamix.vm.manager/styles/dynamix.vm.manager.css')?>">
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.filetree.css')?>">

View File

@@ -941,7 +941,17 @@ private static $encoding = 'UTF-8';
$xml = $lv->domain_get_xml($res) ;
$xmldoc = new SimpleXMLElement($xml);
$xmlpath = $xmldoc->xpath('//devices/input[@type="evdev"] ');
return $xmlpath;
$evdevs = [];
foreach ($xmlpath as $i => $evDev) {
$evdevs[$i] = [
'dev' => $evDev->source->attributes()->dev,
'grab' => $evDev->source->attributes()->grab,
'repeat' => $evDev->source->attributes()->repeat,
'grabToggle' => $evDev->source->attributes()->grabToggle
];
}
if (empty($evdevs)) $evdevs[0] = ['dev'=>"",'grab'=>"",'repeat'=>"",'grabToggle'=>""];
return $evdevs;
}
$cacheValidUSBDevices = null;

View File

@@ -302,7 +302,11 @@
} else $arrClocks = $arrDefaultClocks['other'] ;
}
if (strpos($arrConfig['template']['name'],"User-") !== false) $arrConfig['template']['name'] = str_replace("User-","",$arrConfig['template']['name']);
if (strpos($arrConfig['template']['name'],"User-") !== false) {
$arrConfig['template']['name'] = str_replace("User-","",$arrConfig['template']['name']);
unset($arrConfig['domain']['uuid']);
}
if ($usertemplate == 1) unset($arrConfig['domain']['uuid']);
?>
<link rel="stylesheet" href="<?autov('/plugins/dynamix.vm.manager/scripts/codemirror/lib/codemirror.css')?>">
@@ -1627,15 +1631,7 @@
</p>
</blockquote>
<?
if ( $arrConfig['evdev'] == false) {
$evdevxml = "<input type='evdev'>
<source dev=''/>
</input>";
$evdevdoc = new SimpleXMLElement($evdevxml);
$arrConfig['evdev']= $evdevdoc->xpath('//input[@type="evdev"] ');
}
if (!isset($arrConfig['evdev'])) $arrConfig['evdev'][0] = ['dev'=>"",'grab'=>"",'repeat'=>"",'grabToggle'=>""];
foreach ($arrConfig['evdev'] as $i => $arrEvdev) {
$strLabel = ($i > 0) ? appendOrdinalSuffix($i + 1) : '';
?>
@@ -1645,8 +1641,8 @@
<td>
<select name="evdev[<?=$i?>][dev]" class="dev narrow">
<?
echo mk_option($arrEvdev->source->attributes()->dev, '', _('None'));
foreach(getValidevDev() as $line) echo mk_option($arrEvdev->source->attributes()->dev, $line , $line);
echo mk_option($arrEvdev['dev'], '', _('None'));
foreach(getValidevDev() as $line) echo mk_option($arrEvdev['dev'], $line , $line);
?>
</select>
</td>
@@ -1655,8 +1651,8 @@
<td>_(Grab)_:</td>
<td>
<select name="evdev[<?=$i?>][grab]" class="evdev_grab" title="_(grab options)_">
<?echo mk_option($arrEvdev->source->attributes()->grab, '', _('None'));
foreach(["all"] as $line) echo mk_option($arrEvdev->source->attributes()->grab,$line,ucfirst($line));?>
<?echo mk_option($arrEvdev['grab'], '', _('None'));
foreach(["all"] as $line) echo mk_option($arrEvdev['grab'],$line,ucfirst($line));?>
</select>
</td>
</tr>
@@ -1665,8 +1661,8 @@
<td>_(Repeat)_:</td>
<td>
<select name="evdev[<?=$i?>][repeat]" class="evdev_repeat narrow" title="_(grab options)_">
<?echo mk_option($arrEvdev->source->attributes()->repeat, '', _('None'));
foreach(["on","off"] as $line) echo mk_option($arrEvdev->source->attributes()->repeat,$line,ucfirst($line));?>
<?echo mk_option($arrEvdev['repeat'], '', _('None'));
foreach(["on","off"] as $line) echo mk_option($arrEvdev['repeat'],$line,ucfirst($line));?>
</select>
</td>
</tr>
@@ -1675,8 +1671,8 @@
<td>_(Grab Toggle)_:</td>
<td>
<select name="evdev[<?=$i?>][grabToggle]" class="evdev_grabtoggle narrow" title="_(grab options)_">
<?echo mk_option($arrEvdev->source->attributes()->grabToggle, '', _('None'));
foreach(["ctrl-ctrl", "alt-alt", "shift-shift", "meta-meta", "scrolllock" , "ctrl-scrolllock"] as $line) echo mk_option($arrEvdev->source->attributes()->grabToggle,$line,$line);?>
<?echo mk_option($arrEvdev['grabToggle'], '', _('None'));
foreach(["ctrl-ctrl", "alt-alt", "shift-shift", "meta-meta", "scrolllock" , "ctrl-scrolllock"] as $line) echo mk_option($arrEvdev['grabToggle'],$line,$line);?>
</select>
</td>
</tr>
@@ -2558,7 +2554,8 @@ $(function() {
$('#vmform #domain_clock').val('localtime');
$("#vmform #domain_machine option").each(function(){
if ($(this).val().indexOf('i440fx') != -1) {
$('#vmform #domain_machine').val($(this).val()).change();
var usertemplate = <?=$usertemplate?>;
if (usertemplate = 0) $('#vmform #domain_machine').val($(this).val()).change();
return false;
}
});
@@ -2567,7 +2564,8 @@ $(function() {
$('#vmform #clockoffset').val('utc');
$("#vmform #domain_machine option").each(function(){
if ($(this).val().indexOf('q35') != -1) {
$('#vmform #domain_machine').val($(this).val()).change();
var usertemplate = <?=$usertemplate?>;
if (usertemplate = 0) $('#vmform #domain_machine').val($(this).val()).change();
return false;
}
});

View File

@@ -291,11 +291,11 @@ function my_mkdir($dirname,$permissions = 0777,$recursive = false,$own = "nobody
case "zfs":
$zfsdataset = trim(shell_exec("zfs list -H -o name $parent")) ;
$zfsdataset .= str_replace($parent,"",$dirname);
if ($recursive) $rtncode=exec("zfs create -p $zfsdataset");else $rtncode=exec("zfs create $zfsdataset");
if ($recursive) $rtncode=exec("zfs create -p \"$zfsdataset\"");else $rtncode=exec("zfs create \"$zfsdataset\"");
if (!$rtncode) mkdir($dirname, $permissions, $recursive); else chmod($zfsdataset,$permissions);
break;
case "btrfs":
if ($recursive) $rtncode=exec("btrfs subvolume create --parents $dirname"); else $rtncode=exec("btrfs subvolume create $dirname");
if ($recursive) $rtncode=exec("btrfs subvolume create --parents \"$dirname\""); else $rtncode=exec("btrfs subvolume create \"$dirname\"");
if (!$rtncode) mkdir($dirname, $permissions, $recursive); else chmod($dirname,$permissions);
break;
default: