Umstellung auf GET Methoden

Zusammenfassen von Anfragen
This commit is contained in:
2023-10-27 23:05:48 +02:00
parent 37e155a9b1
commit db3d54a835
4 changed files with 147 additions and 187 deletions

View File

@@ -8,14 +8,21 @@ define('PICONTROL', true);
$api = new API; $api = new API;
if (isset($_POST['data'])) if (isset($_POST['data'])) {
{
$datas = explode(';', $_POST['data']); $datas = explode(';', $_POST['data']);
setData($datas, $api);
} elseif (isset($_GET['data'])) {
$datas = explode(';', $_GET['data']);
setData($datas, $api);
} else
$api->setError('error', 'No data set.');
foreach ($datas as $data) $api->display();
{
switch ($data) function setData($datas, $api)
{ {
foreach ($datas as $data) {
switch ($data) {
case 'startTime': case 'startTime':
$api->addData('startTime', formatTime(time() - rpi_getRuntime())); $api->addData('startTime', formatTime(time() - rpi_getRuntime()));
break; break;
@@ -26,7 +33,7 @@ if (isset($_POST['data']))
$api->addData('cpuClock', rpi_getCpuClock()); $api->addData('cpuClock', rpi_getCpuClock());
break; break;
case 'cpuLoad': case 'cpuLoad':
$api->addData('cpuLoad', rpi_getCpuLoad(true)); $api->addData('cpuLoad', rpi_getCpuLoad(false));
break; break;
case 'cpuTemp': case 'cpuTemp':
$api->addData('cpuTemp', numberFormat(rpi_getCoreTemprature())); $api->addData('cpuTemp', numberFormat(rpi_getCoreTemprature()));
@@ -60,8 +67,3 @@ if (isset($_POST['data']))
} }
} }
} }
else
$api->setError('error', 'No data set.');
$api->display();
?>

View File

@@ -1,15 +1,13 @@
var is_loding = false; var is_loding = false;
function overviewStatusRefreshEffect(element) function overviewStatusRefreshEffect(element) {
{
element.css({ 'transition': 'background-color 0.5s', 'background-color': 'rgba(243, 255, 164, 1)' }); element.css({ 'transition': 'background-color 0.5s', 'background-color': 'rgba(243, 255, 164, 1)' });
setTimeout(function () { setTimeout(function () {
element.css({ 'background-color': 'transparent' }); element.css({ 'background-color': 'transparent' });
}, 800); }, 800);
} }
function showError() function showError() {
{
jQuery('.error-msg-refresh-bar').remove(); jQuery('.error-msg-refresh-bar').remove();
jQuery('.flex-box-refresh div:eq(0)').after('<div class="red error-msg-refresh-bar" style="vertical-align: bottom; font-weight: bold;">' + _t('Fehler!') + '</div>'); jQuery('.flex-box-refresh div:eq(0)').after('<div class="red error-msg-refresh-bar" style="vertical-align: bottom; font-weight: bold;">' + _t('Fehler!') + '</div>');
jQuery('.refresh-bar').stop(false, true).css('width', 0); jQuery('.refresh-bar').stop(false, true).css('width', 0);
@@ -18,91 +16,66 @@ function showError()
setTimeout('overviewStatusRefresh()', 3000); setTimeout('overviewStatusRefresh()', 3000);
} }
function overviewStatusRefresh() function overviewStatusRefresh() {
{
jQuery('.error-msg-refresh-bar').remove(); jQuery('.error-msg-refresh-bar').remove();
jQuery('.refresh-bar').animate({width: '100%'}, reload_timeout, 'linear', function(e) jQuery('.refresh-bar').animate({ width: '100%' }, reload_timeout, 'linear', function (e) {
{ let this_ = jQuery(this);
var this_ = jQuery(this); let runtime = jQuery('.flex-container > div:eq(2)');
var runtime = jQuery('.flex-container > div:eq(2)'); let cpuClock = jQuery('.flex-container > div:eq(3)');
var cpuClock = jQuery('.flex-container > div:eq(3)'); let cpuLoad = jQuery('.flex-container > div:eq(4)');
var cpuLoad = jQuery('.flex-container > div:eq(4)'); let cpuTemp = jQuery('.flex-container > div:eq(5)');
var cpuTemp = jQuery('.flex-container > div:eq(5)'); let ramPercentage = jQuery('.flex-container > div:eq(6)');
var ramPercentage = jQuery('.flex-container > div:eq(6)'); let memoryUsed = jQuery('.flex-container > div:eq(7)');
var memoryUsed = jQuery('.flex-container > div:eq(7)'); let memoryFree = jQuery('.flex-container > div:eq(8)');
var memoryFree = jQuery('.flex-container > div:eq(8)'); let memoryTotal = jQuery('.flex-container > div:eq(9)');
var memoryTotal = jQuery('.flex-container > div:eq(9)');
jQuery('a[href=#refresh] img').addClass('rotate-icon'); jQuery('a[href=#refresh] img').addClass('rotate-icon');
this_.animate({ width: '88.8%' }, 300, 'linear'); this_.animate({ width: '88.8%' }, 300, 'linear');
jQuery.post('api/v1/overview.php', { data: 'runtime' }, function(data) jQuery.get('api/v1/overview.php', { data: 'runtime;cpuClock;cpuLoad;cpuTemp;ramPercentage;memoryUsed;memoryFree;memoryTotal' }, function (data) {
{ if (runtime.find('span').html() != data.data.runtime) {
if (runtime.find('span').html() != data.data.runtime)
{
overviewStatusRefreshEffect(runtime); overviewStatusRefreshEffect(runtime);
runtime.find('span').html(data.data.runtime); runtime.find('span').html(data.data.runtime);
} }
this_.animate({ width: '77.7%' }, 300, 'linear'); this_.animate({ width: '77.7%' }, 300, 'linear');
jQuery.post('api/v1/overview.php', { data: 'cpuClock' }, function(data) if (cpuClock.find('span').html() != data.data.cpuClock + ' MHz') {
{
if (cpuClock.find('span').html() != data.data.cpuClock+' MHz')
{
overviewStatusRefreshEffect(cpuClock); overviewStatusRefreshEffect(cpuClock);
cpuClock.find('span').html(data.data.cpuClock + ' MHz'); cpuClock.find('span').html(data.data.cpuClock + ' MHz');
} }
this_.animate({ width: '66.6%' }, 300, 'linear'); this_.animate({ width: '66.6%' }, 300, 'linear');
jQuery.post('api/v1/overview.php', { data: 'cpuLoad' }, function(data) if (cpuLoad.find('.progressbar div').html() != data.data.cpuLoad + '%') {
{
if (cpuLoad.find('.progressbar div').html() != data.data.cpuLoad+'%')
{
overviewStatusRefreshEffect(cpuLoad); overviewStatusRefreshEffect(cpuLoad);
cpuLoad.find('.progressbar').attr('data-text', data.data.cpuLoad + '%').find('div').css('width', data.data.cpuLoad + '%'); cpuLoad.find('.progressbar').attr('data-text', data.data.cpuLoad + '%').find('div').css('width', data.data.cpuLoad + '%');
} }
this_.animate({ width: '55.5%' }, 300, 'linear'); this_.animate({ width: '55.5%' }, 300, 'linear');
jQuery.post('api/v1/overview.php', { data: 'cpuTemp' }, function(data) if (cpuTemp.find('span').html() != data.data.cpuTemp + ' °C') {
{
if (cpuTemp.find('span').html() != data.data.cpuTemp+' °C')
{
overviewStatusRefreshEffect(cpuTemp); overviewStatusRefreshEffect(cpuTemp);
cpuTemp.find('span').html(data.data.cpuTemp + ' &deg;C'); cpuTemp.find('span').html(data.data.cpuTemp + ' &deg;C');
} }
this_.animate({ width: '44.4%' }, 300, 'linear'); this_.animate({ width: '44.4%' }, 300, 'linear');
jQuery.post('api/v1/overview.php', { data: 'ramPercentage' }, function(data) if (ramPercentage.find('.progressbar div').html() != data.data.ramPercentage + '%') {
{
if (ramPercentage.find('.progressbar div').html() != data.data.ramPercentage+'%')
{
overviewStatusRefreshEffect(ramPercentage); overviewStatusRefreshEffect(ramPercentage);
ramPercentage.find('.progressbar').attr('data-text', data.data.ramPercentage + '%').find('div').css('width', data.data.ramPercentage + '%'); ramPercentage.find('.progressbar').attr('data-text', data.data.ramPercentage + '%').find('div').css('width', data.data.ramPercentage + '%');
} }
this_.animate({ width: '33.3%' }, 300, 'linear'); this_.animate({ width: '33.3%' }, 300, 'linear');
jQuery.post('api/v1/overview.php', { data: 'memoryUsed' }, function(data) if (memoryUsed.find('span').html() != data.data.memoryUsed) {
{
if (memoryUsed.find('span').html() != data.data.memoryUsed)
{
overviewStatusRefreshEffect(memoryUsed); overviewStatusRefreshEffect(memoryUsed);
memoryUsed.find('span').html(data.data.memoryUsed); memoryUsed.find('span').html(data.data.memoryUsed);
} }
this_.animate({ width: '22.2%' }, 300, 'linear'); this_.animate({ width: '22.2%' }, 300, 'linear');
jQuery.post('api/v1/overview.php', { data: 'memoryFree' }, function(data) if (memoryFree.find('span').html() != data.data.memoryFree) {
{
if (memoryFree.find('span').html() != data.data.memoryFree)
{
overviewStatusRefreshEffect(memoryFree); overviewStatusRefreshEffect(memoryFree);
memoryFree.find('span').html(data.data.memoryFree); memoryFree.find('span').html(data.data.memoryFree);
} }
this_.animate({ width: '11.1%' }, 300, 'linear'); this_.animate({ width: '11.1%' }, 300, 'linear');
jQuery.post('api/v1/overview.php', { data: 'memoryTotal' }, function(data) if (memoryTotal.find('span').html() != data.data.memoryTotal) {
{
if (memoryTotal.find('span').html() != data.data.memoryTotal)
{
overviewStatusRefreshEffect(memoryTotal); overviewStatusRefreshEffect(memoryTotal);
memoryTotal.find('span').html(data.data.memoryTotal); memoryTotal.find('span').html(data.data.memoryTotal);
} }
@@ -114,25 +87,16 @@ function overviewStatusRefresh()
overviewStatusRefresh(); overviewStatusRefresh();
}).fail(function (e) { showError(); }); }).fail(function (e) { showError(); });
}).fail(function(e) { showError(); });
}).fail(function(e) { showError(); });
}).fail(function(e) { showError(); });
}).fail(function(e) { showError(); });
}).fail(function(e) { showError(); });
}).fail(function(e) { showError(); });
}).fail(function(e) { showError(); });
}); });
} }
jQuery(document).on('click', 'a[href=#refresh]', function(e) jQuery(document).on('click', 'a[href=#refresh]', function (e) {
{
if (is_loding == false) if (is_loding == false)
jQuery('.refresh-bar').stop(false, true); jQuery('.refresh-bar').stop(false, true);
return false; return false;
}); });
jQuery(document).ready(function(e) jQuery(document).ready(function (e) {
{
overviewStatusRefresh(); overviewStatusRefresh();
}); });

View File

@@ -22,7 +22,7 @@
<td><strong><?php _e('LIZENZ'); ?></strong><span><?php _e('Raspberry Pi ist ein Markenzeichen<br />der %s.', '<a href="https://www.raspberrypi.org/" target="_blank">Raspberry Pi Foundation</a>'); ?></span></td> <td><strong><?php _e('LIZENZ'); ?></strong><span><?php _e('Raspberry Pi ist ein Markenzeichen<br />der %s.', '<a href="https://www.raspberrypi.org/" target="_blank">Raspberry Pi Foundation</a>'); ?></span></td>
</tr> </tr>
</table> </table>
<div id="footer-copyright"><?php _e('Mit %s entwickelt von %s.', '<span style="color: #F44336;">&#10084;</span>', '<a href="https://willy-tech.de/" target="_blank">Willy Fritzsche</a>'); ?> 2013-2017 <br>Weiterentwickelt von <a href="https://www.schultes.dev">Gregor Schulte</a> 2021-2022</div> <div id="footer-copyright"><?php _e('Mit %s entwickelt von %s.', '<span style="color: #F44336;">&#10084;</span>', '<a href="https://willy-tech.de/" target="_blank">Willy Fritzsche</a>'); ?> 2013-2017 <br>Weiterentwickelt von <a href="https://www.schultes.dev">Gregor Schulte</a> 2021-2023</div>
</div> </div>
</div> </div>
<script type="text/javascript">var errorHandler = '<?php echo $data['errorHandler']; ?>';</script> <script type="text/javascript">var errorHandler = '<?php echo $data['errorHandler']; ?>';</script>

View File

@@ -3,14 +3,12 @@ if (!defined('PICONTROL')) exit();
function rpi_getRuntime() function rpi_getRuntime()
{ {
$runtime = trim(@shell_exec('cat /proc/uptime | awk -F \'.\' \'{print $1}\'')); return trim(@shell_exec('cat /proc/uptime | awk -F \'.\' \'{print $1}\''));
return $runtime;
} }
function rpi_getHostname() function rpi_getHostname()
{ {
$host = trim(@shell_exec('cat /proc/sys/kernel/hostname')); return trim(@shell_exec('cat /proc/sys/kernel/hostname'));
return $host;
} }
function rpi_getHostAddr() function rpi_getHostAddr()
@@ -75,28 +73,27 @@ function rpi_getCPUType()
if (isset($match[1])) if (isset($match[1]))
return $match[1]; return $match[1];
return NULL; return null;
} }
function rpi_getCpuModel() function rpi_getCpuModel()
{ {
$model = trim(@shell_exec('cat /proc/cpuinfo | grep -m 1 "Model" | cut -d ":" -f 2')); return trim(@shell_exec('cat /proc/cpuinfo | grep -m 1 "Model" | cut -d ":" -f 2'));
return $model;
} }
function rpi_getCPULoad($accurate = false, $mulitcore = false) function rpi_getCPULoad($accurate = false, $mulitcore = false)
{ {
$return = NULL; $return = null;
if ($accurate === true) if ($accurate === true)
$file = shell_exec('cat /proc/stat; sleep 2; echo "##--##"; cat /proc/stat'); $file = shell_exec('cat /proc/stat; sleep 2; echo "##--##"; cat /proc/stat');
else else
$file = shell_exec('cat /proc/stat; sleep 0.5; echo "##--##"; cat /proc/stat'); $file = shell_exec('cat /proc/stat; echo "##--##"; cat /proc/stat');
$file = explode('##--##', $file); $file = explode('##--##', $file);
if (!isset($file[0], $file[1])) if (!isset($file[0], $file[1]))
return NULL; return null;
preg_match_all('/^cpu[0-9]?(.*)$/im', $file[0], $prevCPUStrings); preg_match_all('/^cpu[0-9]?(.*)$/im', $file[0], $prevCPUStrings);
preg_match_all('/^cpu[0-9]?(.*)$/im', $file[1], $curCPUStrings); preg_match_all('/^cpu[0-9]?(.*)$/im', $file[1], $curCPUStrings);
@@ -110,7 +107,7 @@ function rpi_getCPULoad($accurate = false, $mulitcore = false)
if (!isset($prevCPU[0], $curCPU[1]) || count($prevCPU) != 11 || count($curCPU) != 11) if (!isset($prevCPU[0], $curCPU[1]) || count($prevCPU) != 11 || count($curCPU) != 11)
return NULL; return null;
$prevIdle = $prevCPU[4] + $prevCPU[5]; $prevIdle = $prevCPU[4] + $prevCPU[5];
$curIdle = $curCPU[4] + $curCPU[5]; $curIdle = $curCPU[4] + $curCPU[5];
@@ -124,7 +121,7 @@ function rpi_getCPULoad($accurate = false, $mulitcore = false)
$total = $curTotal - $prevTotal; $total = $curTotal - $prevTotal;
$idle = $curIdle - $prevIdle; $idle = $curIdle - $prevIdle;
if ($mulitcore == true) if ($mulitcore)
$return[$prevCPU[0]] = (int) round(($total - $idle) / $total * 100); $return[$prevCPU[0]] = (int) round(($total - $idle) / $total * 100);
else else
$return = (int) round(($total - $idle) / $total * 100); $return = (int) round(($total - $idle) / $total * 100);
@@ -153,20 +150,17 @@ function rpi_getDistribution()
function rpi_getKernelVersion() function rpi_getKernelVersion()
{ {
$kernel = trim(@shell_exec('cat /proc/version | cut -d " " -f 1,3')); return trim(@shell_exec('cat /proc/version | cut -d " " -f 1,3'));
return $kernel;
} }
function rpi_getCountRunningTasks() function rpi_getCountRunningTasks()
{ {
$tasks = trim(@shell_exec('ps -auxeaf| wc -l')); return trim(@shell_exec('ps -auxeaf| wc -l'));
return $tasks;
} }
function rpi_getCountInstalledPackages() function rpi_getCountInstalledPackages()
{ {
$packages = trim(@shell_exec('dpkg --get-selections | grep -v deinstall | wc -l')); return trim(@shell_exec('dpkg --get-selections | grep -v deinstall | wc -l'));
return $packages;
} }
function rpi_getInstalledPackages() function rpi_getInstalledPackages()