mirror of
https://github.com/unraid/webgui.git
synced 2026-01-16 06:30:19 -06:00
vm manager: consolidate logic to determine vm icon url + fix vm icon display for custom icons
This commit is contained in:
@@ -214,17 +214,7 @@ if ($action) {
|
||||
|
||||
$contextMenus[] = sprintf("addVMContext('%s', '%s', '%s', '%s', '%s', '%s');", addslashes($name), addslashes($uuid), addslashes($template), $state, addslashes($vnc), addslashes($log));
|
||||
|
||||
// fallback icon for users that created VMs before metadata support was added
|
||||
$vmicon = '/plugins/dynamix.vm.manager/templates/images/' . ($lv->domain_get_clock_offset($res) == 'localtime' ? 'windows.png' : 'linux.png');
|
||||
|
||||
$vmtemplateicon = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@icon');
|
||||
if (!empty($vmtemplateicon)) {
|
||||
if (file_exists($vmtemplateicon)) {
|
||||
$vmicon = $vmtemplateicon;
|
||||
} elseif (file_exists("$docroot/plugins/dynamix.vm.manager/templates/images/".$vmtemplateicon)) {
|
||||
$vmicon = "/plugins/dynamix.vm.manager/templates/images/".$vmtemplateicon;
|
||||
}
|
||||
}
|
||||
$vmicon = $lv->domain_get_icon_url($res);
|
||||
|
||||
//Domain information
|
||||
echo "<tr style='background-color:".bcolor($i)."'>
|
||||
@@ -246,8 +236,7 @@ if ($action) {
|
||||
|
||||
// Log file
|
||||
if (!empty($log)) {
|
||||
echo "<td><a class='log' href='#'
|
||||
onclick=\"openWindow('/webGui/scripts/tail_log&arg1=".addslashes(htmlspecialchars($log))."', '".addslashes(htmlspecialchars($name))." QEMU Log', 600, 900); return false;\"><img class='basic' src='/webGui/icons/log.png'/></a></td>";
|
||||
echo "<td><a class='log' href='#' onclick=\"openWindow('/webGui/scripts/tail_log&arg1=".addslashes(htmlspecialchars($log))."', '".addslashes(htmlspecialchars($name))." QEMU Log', 600, 900); return false;\"><img class='basic' src='/webGui/icons/log.png'/></a></td>";
|
||||
} else {
|
||||
echo "<td><img class='basic' src='/webGui/icons/log.png' style='opacity: 0.3' title='Log not available'/></a></td>";
|
||||
}
|
||||
|
||||
@@ -38,22 +38,11 @@ if (!empty($_GET['uuid'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$strIcon = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@icon');
|
||||
|
||||
if (!empty($strIcon)) {
|
||||
if (is_file($strIcon)) {
|
||||
$strIconURL = $strIcon;
|
||||
} elseif (is_file("$docroot/plugins/dynamix.vm.manager/templates/images/" . $strIcon)) {
|
||||
$strIconURL = '/plugins/dynamix.vm.manager/templates/images/' . $strIcon;
|
||||
}
|
||||
} else {
|
||||
$strIcon = ($lv->domain_get_clock_offset($res) == 'localtime' ? 'windows.png' : 'linux.png');
|
||||
$strIconURL = '/plugins/dynamix.vm.manager/templates/images/' . $strIcon;
|
||||
}
|
||||
$strIconURL = $lv->domain_get_icon_url($res);
|
||||
|
||||
$arrLoad = [
|
||||
'name' => $lv->domain_get_name($res),
|
||||
'icon' => $strIcon,
|
||||
'icon' => basename($strIconURL),
|
||||
'autostart' => $lv->domain_get_autostart($res),
|
||||
'form' => $arrAllTemplates[$strSelectedTemplate]['form']
|
||||
];
|
||||
|
||||
@@ -1244,6 +1244,25 @@
|
||||
return ($tmp) ? $tmp : $this->_set_last_error();
|
||||
}
|
||||
|
||||
function domain_get_icon_url($domain) {
|
||||
global $docroot;
|
||||
|
||||
$strIcon = $this->_get_single_xpath_result($domain, '//domain/metadata/*[local-name()=\'vmtemplate\']/@icon');
|
||||
if (empty($strIcon)) {
|
||||
$strIcon = ($this->domain_get_clock_offset($domain) == 'localtime' ? 'windows.png' : 'linux.png');
|
||||
}
|
||||
|
||||
if (is_file($strIcon)) {
|
||||
return $strIcon;
|
||||
} elseif (is_file("$docroot/plugins/dynamix.vm.manager/templates/images/" . $strIcon)) {
|
||||
return '/plugins/dynamix.vm.manager/templates/images/' . $strIcon;
|
||||
} elseif (is_file("$docroot/boot/config/plugins/dynamix.vm.manager/templates/images/" . $strIcon)) {
|
||||
return '/boot/config/plugins/dynamix.vm.manager/templates/images/' . $strIcon;
|
||||
}
|
||||
|
||||
return '/plugins/dynamix.vm.manager/templates/images/default.png';
|
||||
}
|
||||
|
||||
function domain_change_xml($domain, $xml) {
|
||||
$dom = $this->get_domain_object($domain);
|
||||
|
||||
|
||||
@@ -142,17 +142,7 @@ foreach ($allVMs as $name) {
|
||||
|
||||
$contextMenus[] = sprintf("addVMContext('%s', '%s', '%s', '%s', '%s', '%s');", addslashes($name), addslashes($uuid), addslashes($template), $state, addslashes($vnc), addslashes($log));
|
||||
|
||||
// fallback icon for users that created VMs before metadata support was added
|
||||
$vmicon = '/plugins/dynamix.vm.manager/templates/images/' . ($lv->domain_get_clock_offset($res) == 'localtime' ? 'windows.png' : 'linux.png');
|
||||
|
||||
$vmtemplateicon = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@icon');
|
||||
if (!empty($vmtemplateicon)) {
|
||||
if (file_exists($vmtemplateicon)) {
|
||||
$vmicon = $vmtemplateicon;
|
||||
} elseif (file_exists("$docroot/plugins/dynamix.vm.manager/templates/images/" . $vmtemplateicon)) {
|
||||
$vmicon = '/plugins/dynamix.vm.manager/templates/images/' . $vmtemplateicon;
|
||||
}
|
||||
}
|
||||
$vmicon = $lv->domain_get_icon_url($res);
|
||||
|
||||
print "
|
||||
<div class=\"Panel $status\">
|
||||
|
||||
Reference in New Issue
Block a user