diff --git a/plugins/dynamix.vm.manager/VMMachines.page b/plugins/dynamix.vm.manager/VMMachines.page
index b3fb54d9d..fe802650a 100644
--- a/plugins/dynamix.vm.manager/VMMachines.page
+++ b/plugins/dynamix.vm.manager/VMMachines.page
@@ -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 "
@@ -246,8 +236,7 @@ if ($action) {
// Log file
if (!empty($log)) {
- echo " | ";
+ echo " | ";
} else {
echo " | ";
}
diff --git a/plugins/dynamix.vm.manager/VMedit.php b/plugins/dynamix.vm.manager/VMedit.php
index 63995a214..7ea861cb4 100644
--- a/plugins/dynamix.vm.manager/VMedit.php
+++ b/plugins/dynamix.vm.manager/VMedit.php
@@ -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']
];
diff --git a/plugins/dynamix.vm.manager/classes/libvirt.php b/plugins/dynamix.vm.manager/classes/libvirt.php
index e72366ab4..f0b4b668c 100644
--- a/plugins/dynamix.vm.manager/classes/libvirt.php
+++ b/plugins/dynamix.vm.manager/classes/libvirt.php
@@ -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);
diff --git a/plugins/dynamix/DashboardApps.page b/plugins/dynamix/DashboardApps.page
index efde9e69b..379376092 100644
--- a/plugins/dynamix/DashboardApps.page
+++ b/plugins/dynamix/DashboardApps.page
@@ -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 "