mirror of
https://github.com/unraid/webgui.git
synced 2026-02-13 12:38:45 -06:00
Dashboard: suppress none active services
This commit is contained in:
@@ -251,12 +251,12 @@ foreach ($ports as $port) {
|
||||
|
||||
<table class='share_status dashboard box3'>
|
||||
<?if ($display['dashapps']!='none'):?>
|
||||
<?if ($display['dashapps']=='icons' || $display['dashapps']=='docker'):?>
|
||||
<?if ($dockerd && ($display['dashapps']=='icons' || $display['dashapps']=='docker')):?>
|
||||
<thead><tr><td></td><td colspan='4'>Docker Containers<i class='fa blue-text chevron mt0' id='docker_view' onclick='toggleChevron("docker_view",0)'></i><span class='info apps'><input type='checkbox' id='apps'></span></td><td></td></tr></thead>
|
||||
<tbody class='docker_view' style='display:none'>
|
||||
</tbody>
|
||||
<?endif;?>
|
||||
<?if ($display['dashapps']=='icons' || $display['dashapps']=='vms'):?>
|
||||
<?if ($libvirtd && ($display['dashapps']=='icons' || $display['dashapps']=='vms')):?>
|
||||
<thead><tr><td></td><td colspan='4' class='next'>Virtual Machines<i class='fa blue-text chevron mt0' id='vm_view' onclick='toggleChevron("vm_view",0)'></i><span class='info vms'><input type='checkbox' id='vms'></span></td><td></td></tr></thead>
|
||||
<tbody class='vm_view' style='display:none'>
|
||||
</tbody>
|
||||
@@ -457,7 +457,7 @@ function loadlist(init) {
|
||||
});
|
||||
context.init({preventDoubleContext:false,left:true,above:false});
|
||||
}
|
||||
$.post('/webGui/include/DashboardApps.php',{display:'<?=$display['dashapps']?>',docker:'<?=$dockerd?>',vm:'<?=$libvirtd?>'},function(d) {
|
||||
$.post('/webGui/include/DashboardApps.php',{display:'<?=$display['dashapps']?>'},function(d) {
|
||||
var data = d.split(/\0/);
|
||||
$('.docker_view').html(data[0]);
|
||||
$('.vm_view').html(data[1]);
|
||||
@@ -749,10 +749,10 @@ $(function() {
|
||||
<?if ($fans>0):?>
|
||||
toggleView('fan_view',true);
|
||||
<?endif;?>
|
||||
<?if ($display['dashapps']=='icons' || $display['dashapps']=='docker'):?>
|
||||
<?if ($dockerd && ($display['dashapps']=='icons' || $display['dashapps']=='docker')):?>
|
||||
toggleView('docker_view',true);
|
||||
<?endif;?>
|
||||
<?if ($display['dashapps']=='icons' || $display['dashapps']=='vms'):?>
|
||||
<?if ($libvirtd && ($display['dashapps']=='icons' || $display['dashapps']=='vms')):?>
|
||||
toggleView('vm_view',true);
|
||||
<?endif;?>
|
||||
toggleView('parity_view',true);
|
||||
|
||||
@@ -20,105 +20,97 @@ $display = $_POST['display'];
|
||||
$menu = [];
|
||||
|
||||
if ($display=='icons' || $display=='docker') {
|
||||
echo "<tr><td></td><td colspan='4'>";
|
||||
if ($_POST['docker']) {
|
||||
$user_prefs = $dockerManPaths['user-prefs'];
|
||||
$DockerClient = new DockerClient();
|
||||
$DockerTemplates = new DockerTemplates();
|
||||
$containers = $DockerClient->getDockerContainers();
|
||||
$allInfo = $DockerTemplates->getAllInfo();
|
||||
if (file_exists($user_prefs)) {
|
||||
$prefs = parse_ini_file($user_prefs); $sort = [];
|
||||
foreach ($containers as $ct) $sort[] = array_search($ct['Name'],$prefs) ?? 999;
|
||||
array_multisort($sort,SORT_NUMERIC,$containers);
|
||||
}
|
||||
foreach ($containers as $ct) {
|
||||
$name = $ct['Name'];
|
||||
$id = $ct['Id'];
|
||||
$info = &$allInfo[$name];
|
||||
$running = $info['running'] ? 1:0;
|
||||
$paused = $info['paused'] ? 1:0;
|
||||
$is_autostart = $info['autostart'] ? 'true':'false';
|
||||
$updateStatus = $info['updated']=='true'||$info['updated']=='undef' ? 'true':'false';
|
||||
$template = $info['template'];
|
||||
$shell = $info['shell'];
|
||||
$webGui = html_entity_decode($info['url']);
|
||||
$support = html_entity_decode($info['Support']);
|
||||
$project = html_entity_decode($info['Project']);
|
||||
$menu[] = sprintf("addDockerContainerContext('%s','%s','%s',%s,%s,%s,%s,'%s','%s','%s','%s','%s');", addslashes($name), addslashes($ct['ImageId']), addslashes($template), $running, $paused, $updateStatus, $is_autostart, addslashes($webGui), $shell, $id, addslashes($support), addslashes($project));
|
||||
$shape = $running ? ($paused ? 'pause' : 'play') : 'square';
|
||||
$status = $running ? ($paused ? 'paused' : 'started') : 'stopped';
|
||||
$color = $status=='started' ? 'green-text' : ($status=='paused' ? 'orange-text' : 'red-text');
|
||||
$update = $updateStatus=='false' ? 'blue-text' : '';
|
||||
$icon = $info['icon'] ?: '/plugins/dynamix.docker.manager/images/question.png';
|
||||
$image = substr($icon,-4)=='.png' ? "<img src='$icon' class='img'>" : (substr($icon,0,5)=='icon-' ? "<i class='$icon img'></i>" : "<i class='fa fa-$icon img'></i>");
|
||||
echo "<span id='$id' class='outer apps $status'>$image<span class='inner'><span class='$update'>$name</span><br><i class='fa fa-$shape $status $color'></i><span class='state'>$status</span></span></span>";
|
||||
}
|
||||
$none = count($containers) ? "No running docker containers" : "No docker containers defined";
|
||||
echo "<span id='no_apps' style='display:none'>$none<br><br></span>";
|
||||
} else {
|
||||
echo "Docker service not running<br><br>";
|
||||
$user_prefs = $dockerManPaths['user-prefs'];
|
||||
$DockerClient = new DockerClient();
|
||||
$DockerTemplates = new DockerTemplates();
|
||||
$containers = $DockerClient->getDockerContainers();
|
||||
$allInfo = $DockerTemplates->getAllInfo();
|
||||
if (file_exists($user_prefs)) {
|
||||
$prefs = parse_ini_file($user_prefs); $sort = [];
|
||||
foreach ($containers as $ct) $sort[] = array_search($ct['Name'],$prefs) ?? 999;
|
||||
array_multisort($sort,SORT_NUMERIC,$containers);
|
||||
}
|
||||
echo "<tr><td></td><td colspan='4'>";
|
||||
foreach ($containers as $ct) {
|
||||
$name = $ct['Name'];
|
||||
$id = $ct['Id'];
|
||||
$info = &$allInfo[$name];
|
||||
$running = $info['running'] ? 1:0;
|
||||
$paused = $info['paused'] ? 1:0;
|
||||
$is_autostart = $info['autostart'] ? 'true':'false';
|
||||
$updateStatus = $info['updated']=='true'||$info['updated']=='undef' ? 'true':'false';
|
||||
$template = $info['template'];
|
||||
$shell = $info['shell'];
|
||||
$webGui = html_entity_decode($info['url']);
|
||||
$support = html_entity_decode($info['Support']);
|
||||
$project = html_entity_decode($info['Project']);
|
||||
$menu[] = sprintf("addDockerContainerContext('%s','%s','%s',%s,%s,%s,%s,'%s','%s','%s','%s','%s');", addslashes($name), addslashes($ct['ImageId']), addslashes($template), $running, $paused, $updateStatus, $is_autostart, addslashes($webGui), $shell, $id, addslashes($support), addslashes($project));
|
||||
$shape = $running ? ($paused ? 'pause' : 'play') : 'square';
|
||||
$status = $running ? ($paused ? 'paused' : 'started') : 'stopped';
|
||||
$color = $status=='started' ? 'green-text' : ($status=='paused' ? 'orange-text' : 'red-text');
|
||||
$update = $updateStatus=='false' ? 'blue-text' : '';
|
||||
$icon = $info['icon'] ?: '/plugins/dynamix.docker.manager/images/question.png';
|
||||
$image = substr($icon,-4)=='.png' ? "<img src='$icon' class='img'>" : (substr($icon,0,5)=='icon-' ? "<i class='$icon img'></i>" : "<i class='fa fa-$icon img'></i>");
|
||||
echo "<span id='$id' class='outer apps $status'>$image<span class='inner'><span class='$update'>$name</span><br><i class='fa fa-$shape $status $color'></i><span class='state'>$status</span></span></span>";
|
||||
}
|
||||
$none = count($containers) ? "No running docker containers" : "No docker containers defined";
|
||||
echo "<span id='no_apps' style='display:none'>$none<br><br></span>";
|
||||
echo "</td><td></td></tr>";
|
||||
}
|
||||
echo "\0";
|
||||
if ($display=='icons' || $display=='vms') {
|
||||
echo "<tr><td></td><td colspan='4'>";
|
||||
if ($_POST['vm']) {
|
||||
$user_prefs = '/boot/config/plugins/dynamix.vm.manager/userprefs.cfg';
|
||||
$vms = $lv->get_domains();
|
||||
if (file_exists($user_prefs)) {
|
||||
$prefs = parse_ini_file($user_prefs); $sort = [];
|
||||
foreach ($vms as $vm) $sort[] = array_search($vm,$prefs) ?? 999;
|
||||
array_multisort($sort,SORT_NUMERIC,$vms);
|
||||
} else {
|
||||
natcasesort($vms);
|
||||
}
|
||||
foreach ($vms as $vm) {
|
||||
$res = $lv->get_domain_by_name($vm);
|
||||
$uuid = libvirt_domain_get_uuid_string($res);
|
||||
$dom = $lv->domain_get_info($res);
|
||||
$id = $lv->domain_get_id($res);
|
||||
$state = $lv->domain_state_translate($dom['state']);
|
||||
$vncport = $lv->domain_get_vnc_port($res);
|
||||
$vnc = '';
|
||||
if ($vncport > 0) {
|
||||
$wsport = $lv->domain_get_ws_port($res);
|
||||
$vnc = '/plugins/dynamix.vm.manager/vnc.html?autoconnect=true&host='.$_SERVER['HTTP_HOST'].'&port=&path=/wsproxy/'.$wsport.'/';
|
||||
} else {
|
||||
$vncport = ($vncport < 0) ? "auto" : "";
|
||||
}
|
||||
$template = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@name');
|
||||
if (empty($template)) $template = 'Custom';
|
||||
$log = (is_file("/var/log/libvirt/qemu/$vm.log") ? "libvirt/qemu/$vm.log" : '');
|
||||
$menu[] = sprintf("addVMContext('%s','%s','%s','%s','%s','%s');", addslashes($vm), addslashes($uuid), addslashes($template), $state, addslashes($vnc), addslashes($log));
|
||||
$icon = $lv->domain_get_icon_url($res);
|
||||
switch ($state) {
|
||||
case 'running':
|
||||
$shape = 'play';
|
||||
$status = 'started';
|
||||
$color = 'green-text';
|
||||
break;
|
||||
case 'paused':
|
||||
case 'pmsuspended':
|
||||
$shape = 'pause';
|
||||
$status = 'paused';
|
||||
$color = 'orange-text';
|
||||
break;
|
||||
default:
|
||||
$shape = 'square';
|
||||
$status = 'stopped';
|
||||
$color = 'red-text';
|
||||
break;
|
||||
}
|
||||
$image = substr($icon,-4)=='.png' ? "<img src='$icon' class='img'>" : (substr($icon,0,5)=='icon-' ? "<i class='$icon img'></i>" : "<i class='fa fa-$icon img'></i>");
|
||||
echo "<span id='vm-$uuid' class='outer vms $status'>$image<span class='inner'>$vm<br><i class='fa fa-$shape $status $color'></i><span class='state'>$status</span></span></span>";
|
||||
}
|
||||
$none = count($vms) ? "No running virtual machines" : "No virtual machines defined";
|
||||
echo "<span id='no_vms' style='display:none'>$none<br><br></span>";
|
||||
$user_prefs = '/boot/config/plugins/dynamix.vm.manager/userprefs.cfg';
|
||||
$vms = $lv->get_domains();
|
||||
if (file_exists($user_prefs)) {
|
||||
$prefs = parse_ini_file($user_prefs); $sort = [];
|
||||
foreach ($vms as $vm) $sort[] = array_search($vm,$prefs) ?? 999;
|
||||
array_multisort($sort,SORT_NUMERIC,$vms);
|
||||
} else {
|
||||
echo "VM service not running<br><br>";
|
||||
natcasesort($vms);
|
||||
}
|
||||
echo "<tr><td></td><td colspan='4'>";
|
||||
foreach ($vms as $vm) {
|
||||
$res = $lv->get_domain_by_name($vm);
|
||||
$uuid = libvirt_domain_get_uuid_string($res);
|
||||
$dom = $lv->domain_get_info($res);
|
||||
$id = $lv->domain_get_id($res);
|
||||
$state = $lv->domain_state_translate($dom['state']);
|
||||
$vncport = $lv->domain_get_vnc_port($res);
|
||||
$vnc = '';
|
||||
if ($vncport > 0) {
|
||||
$wsport = $lv->domain_get_ws_port($res);
|
||||
$vnc = '/plugins/dynamix.vm.manager/vnc.html?autoconnect=true&host='.$_SERVER['HTTP_HOST'].'&port=&path=/wsproxy/'.$wsport.'/';
|
||||
} else {
|
||||
$vncport = ($vncport < 0) ? "auto" : "";
|
||||
}
|
||||
$template = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@name');
|
||||
if (empty($template)) $template = 'Custom';
|
||||
$log = (is_file("/var/log/libvirt/qemu/$vm.log") ? "libvirt/qemu/$vm.log" : '');
|
||||
$menu[] = sprintf("addVMContext('%s','%s','%s','%s','%s','%s');", addslashes($vm), addslashes($uuid), addslashes($template), $state, addslashes($vnc), addslashes($log));
|
||||
$icon = $lv->domain_get_icon_url($res);
|
||||
switch ($state) {
|
||||
case 'running':
|
||||
$shape = 'play';
|
||||
$status = 'started';
|
||||
$color = 'green-text';
|
||||
break;
|
||||
case 'paused':
|
||||
case 'pmsuspended':
|
||||
$shape = 'pause';
|
||||
$status = 'paused';
|
||||
$color = 'orange-text';
|
||||
break;
|
||||
default:
|
||||
$shape = 'square';
|
||||
$status = 'stopped';
|
||||
$color = 'red-text';
|
||||
break;
|
||||
}
|
||||
$image = substr($icon,-4)=='.png' ? "<img src='$icon' class='img'>" : (substr($icon,0,5)=='icon-' ? "<i class='$icon img'></i>" : "<i class='fa fa-$icon img'></i>");
|
||||
echo "<span id='vm-$uuid' class='outer vms $status'>$image<span class='inner'>$vm<br><i class='fa fa-$shape $status $color'></i><span class='state'>$status</span></span></span>";
|
||||
}
|
||||
$none = count($vms) ? "No running virtual machines" : "No virtual machines defined";
|
||||
echo "<span id='no_vms' style='display:none'>$none<br><br></span>";
|
||||
echo "</td><td></td></tr>";
|
||||
}
|
||||
echo "\0";
|
||||
|
||||
Reference in New Issue
Block a user