$docroot ??= ($_SERVER['DOCUMENT_ROOT'] ?: '/usr/local/emhttp'); require_once "$docroot/webGui/include/Helpers.php"; require_once "$docroot/plugins/dynamix.vm.manager/include/libvirt_helpers.php"; // add translations if (substr($_SERVER['REQUEST_URI'],0,4) != '/VMs') { $_SERVER['REQUEST_URI'] = 'vms'; require_once "$docroot/webGui/include/Translations.php"; } switch ($display['theme']) { case 'gray' : $bgcolor = '#121510'; $border = '#606e7f'; $top = -44; break; case 'azure': $bgcolor = '#edeaef'; $border = '#606e7f'; $top = -44; break; case 'black': $bgcolor = '#212121'; $border = '#2b2b2b'; $top = -58; break; default : $bgcolor = '#ededed'; $border = '#e3e3e3'; $top = -58; break; } $templateslocation = "/boot/config/plugins/dynamix.vm.manager/savedtemplates.json"; if (is_file($templateslocation)){ $arrAllTemplates["User-templates"] = ""; $ut = json_decode(file_get_contents($templateslocation),true) ; $arrAllTemplates = array_merge($arrAllTemplates, $ut); } $strSelectedTemplate = array_keys($arrAllTemplates)[1]; if (isset($_GET['template']) && isset($arrAllTemplates[unscript($_GET['template'])])) { $strSelectedTemplate = unscript($_GET['template']); } $arrLoad = [ 'name' => '', 'icon' => $arrAllTemplates[$strSelectedTemplate]['icon'], 'autostart' => false, 'form' => $arrAllTemplates[$strSelectedTemplate]['form'], 'state' => 'shutoff' ]; $strIconURL = '/plugins/dynamix.vm.manager/templates/images/'.$arrLoad['icon']; if (isset($_GET['uuid'])) { // Edit VM mode $res = $lv->domain_get_domain_by_uuid(unscript($_GET['uuid'])); if ($res === false) { echo "
"._('Invalid VM to edit').".
"; return; } $strIconURL = $lv->domain_get_icon_url($res); $arrLoad = [ 'name' => $lv->domain_get_name($res), 'icon' => basename($strIconURL), 'autostart' => $lv->domain_get_autostart($res), 'form' => $arrAllTemplates[$strSelectedTemplate]['form'], 'state' => $lv->domain_get_state($res) ]; if (empty($_GET['template'])) { // read vm-template attribute $strTemplateOS = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@os'); $strLibreELEC = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@libreelec'); $strOpenELEC = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@openelec'); if ($strLibreELEC) $strSelectedTemplate = 'LibreELEC'; elseif ($strOpenELEC) $strSelectedTemplate = 'OpenELEC'; elseif ($strTemplateOS) { $strSelectedTemplate = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@name'); } else { // legacy VM support for <6.2 but need it going forward too foreach ($arrAllTemplates as $strName => $arrTemplate) { if (!empty($arrTemplate) && !empty($arrTemplate['os']) && $arrTemplate['os'] == $strTemplateOS) { $strSelectedTemplate = $strName; break; } } } if (empty($strSelectedTemplate) || empty($arrAllTemplates[$strSelectedTemplate])) { $strSelectedTemplate = 'Windows 10'; //default to Windows 10 } } $arrLoad['form'] = $arrAllTemplates[$strSelectedTemplate]['form']; } $usertemplate = 0; $strSelectedTemplateUT = $strSelectedTemplate; if (strpos($strSelectedTemplate,"User-") !== false) { $strSelectedTemplateUT = str_replace("User-","",$strSelectedTemplateUT); $usertemplate = 1; } ?>