This commit is contained in:
2023-03-28 10:34:44 +02:00
parent f803effbbd
commit f7e0f37528
428 changed files with 9982 additions and 100 deletions

View File

@@ -0,0 +1,195 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Detaillierte &Uuml;bersicht'); ?></span>
<?php showGoBackIcon('?s=overview'); ?>
</div>
<div class="inner">
<span class="subtitle"><?php _e('Allgemein'); ?></span>
</div>
<div class="inner-table">
<table class="table table-borderless table-form responsive-detailed-overview-table">
<tr>
<td><?php _e('Raspberry Pi Modell'); ?></td>
<td><?php echo $data['revision']['model']; ?></td>
</tr>
<tr>
<td><?php _e('Hersteller'); ?></td>
<td><?php echo $data['revision']['manufacturer']; ?></td>
</tr>
<tr>
<td><?php _e('Revision'); ?></td>
<td><?php echo $data['revision']['revision']; ?></td>
</tr>
<tr>
<td><?php _e('PCB Revision (Bauserie)'); ?></td>
<td><?php echo $data['revision']['pcb']; ?></td>
</tr>
<tr>
<td><?php _e('Seriennummer'); ?></td>
<td><?php echo $data['serial']; ?></td>
</tr>
<tr>
<td><?php _e('Aktuelle Zeit'); ?></td>
<td><?php echo $data['time']; ?></td>
</tr>
<tr>
<td><?php _e('Aktuelle Zeitzone'); ?></td>
<td><?php echo $data['timezone']; ?></td>
</tr>
<tr>
<td><?php _e('Laufzeit'); ?></td>
<td><?php echo $data['run_time']; ?></td>
</tr>
<tr>
<td><?php _e('Letzter Start'); ?></td>
<td><?php echo $data['start_time']; ?></td>
</tr>
</table>
<br />
</div>
<div class="inner">
<span class="subtitle"><?php _e('Software'); ?></span>
</div>
<div class="inner-table">
<table class="table table-borderless table-form responsive-detailed-overview-table">
<tr>
<td><?php _e('Distribution'); ?></td>
<td><?php echo $data['distribution']; ?></td>
</tr>
<tr>
<td><?php _e('Kernel'); ?></td>
<td><?php echo $data['kernel']; ?></td>
</tr>
</table>
<br />
</div>
<div class="inner">
<span class="subtitle"><?php _e('System'); ?></span>
</div>
<div class="inner-table">
<table class="table table-borderless table-form responsive-detailed-overview-table">
<tr>
<td><?php _e('Laufende Prozesse'); ?></td>
<td><?php echo $data['runningTasksCount']; ?></td>
</tr>
<tr>
<td><?php _e('Installierte Pakete'); ?></td>
<td><?php echo $data['installedPackagesCount']; ?> <a href="?s=installed_packages">(<?php _e('Pakete auflisten'); ?>)</a></td>
</tr>
</table>
<br />
</div>
<div class="inner">
<span class="subtitle"><?php _e('Webserver'); ?></span>
</div>
<div class="inner-table">
<table class="table table-borderless table-form responsive-detailed-overview-table">
<tr>
<td><?php _e('HTTP-Server'); ?></td>
<td><?php echo $data['webserver']; ?></td>
</tr>
<tr>
<td><?php _e('PHP-Version'); ?></td>
<td><?php echo $data['php']; ?></td>
</tr>
<tr>
<td><?php _e('Benutzer'); ?></td>
<td><?php echo $data['whoami']; ?></td>
</tr>
</table>
<br />
</div>
<div class="inner">
<span class="subtitle"><?php _e('Prozessor'); ?></span>
</div>
<div class="inner-table">
<table class="table table-borderless table-form responsive-detailed-overview-table">
<tr>
<td><?php _e('Takt'); ?></td>
<td><?php echo $data['cpu_clock']; ?></td>
</tr>
<tr>
<td><?php _e('Maximaler Takt'); ?></td>
<td><?php echo $data['cpu_max_clock']; ?></td>
</tr>
<tr>
<td><?php _e('Auslastung Gesamt'); ?></td>
<td style="padding: 6px 15px 6px 7px;"><div class="progressbar" data-text="<?php echo $data['cpu_load']; ?>%" style="max-width: 250px;"><div style="width: <?php echo $data['cpu_load']; ?>%;"></div></div></td>
</tr>
<?php foreach ($data['cpu_loads'] as $name => $value) { ?>
<tr>
<td><?php _e('Auslastung %s', $name); ?></td>
<td style="padding: 6px 15px 6px 7px;"><div class="progressbar" data-text="<?php echo $value; ?>%" style="max-width: 250px;"><div style="width: <?php echo $value; ?>%;"></div></div></td>
</tr>
<?php } ?>
<tr>
<td><?php _e('Typ'); ?></td>
<td><?php echo $data['cpu_type']; ?></td>
</tr>
<tr>
<td><?php _e('Modell'); ?></td>
<td><?php echo $data['cpu_model']; ?></td>
</tr>
<tr>
<td><?php _e('Temperatur'); ?></td>
<td><?php echo $data['cpu_temp']; ?></td>
</tr>
</table>
<br />
</div>
<div class="inner">
<span class="subtitle"><?php _e('Arbeitsspeicher'); ?></span>
</div>
<div class="inner-table">
<table class="table table-borderless table-form responsive-detailed-overview-table">
<tr>
<td><?php _e('Gesamt'); ?></td>
<td><?php echo $data['revision']['memory']; ?> MB</td>
</tr>
<tr>
<td><?php _e('Auslastung'); ?></td>
<td style="padding: 6px 15px 6px 7px;"><div class="progressbar" data-text="<?php echo $data['ram_percentage']; ?>" style="max-width: 250px;"><div style="width: <?php echo $data['ram_percentage']; ?>;"></div></div></td>
</tr>
</table>
<br />
</div>
<div class="inner">
<span class="subtitle"><?php _e('Gesamtspeicher'); ?></span>
</div>
<div class="inner-table overflow-auto">
<table class="table table-borderless">
<tr>
<th style="width: 20%;"><?php _e('Partition'); ?></th>
<th style="width: 10%;"><?php _e('Mountpunkt'); ?></th>
<th style="width: 10%; min-width: 70px;"><?php _e('Belegt'); ?></th>
<th style="width: 10%; min-width: 70px;"><?php _e('Frei'); ?></th>
<th style="width: 10%; min-width: 70px;"><?php _e('Gesamt'); ?></th>
<th style="width: 40%; min-width: 150px;"></th>
</tr>
<?php $i = 0; foreach ($data['memory'] as $value) {
if (++$i != $data['memory_count']) { ?>
<tr>
<td><?php echo $value['device']; ?></td>
<td><?php echo $value['mountpoint']; ?></td>
<td><?php echo sizeUnit($value['used']); ?></td>
<td><?php echo sizeUnit($value['free']); ?></td>
<td><?php echo sizeUnit($value['total']); ?></td>
<td><div class="progressbar" data-text="<?php echo $value['percent']; ?>%"><div style="width: <?php echo $value['percent']; ?>%;"></div></div></td>
</tr>
<?php } else { ?>
<tr style="font-weight: bold;" class="background-color-2">
<td><?php _e('Gesamt'); ?></td>
<td></td>
<td><?php echo sizeUnit($value['used']); ?></td>
<td><?php echo sizeUnit($value['free']); ?></td>
<td><?php echo sizeUnit($value['total']); ?></td>
<td style="font-weight: normal;"><div class="progressbar" data-text="<?php echo $value['percent']; ?>%"><div style="width: <?php echo $value['percent']; ?>%;"></div></div></td>
</tr>
<?php }
} ?>
</table>
</div>
</div>
</div>

View File

@@ -0,0 +1,56 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div class="sidebar">
<div class="box">
<div class="inner-header">
<span><?php _e('Statistik'); ?></span>
</div>
<div class="inner-table">
<table class="table table-borderless">
<tr>
<th><?php _e('Plugins'); ?></th>
<th><?php _e('Anzahl'); ?></th>
</tr>
<tr>
<td><?php _e('Insgesamt'); ?></td>
<td><?php echo count($data['onlinePlugins']); ?></td>
</tr>
<tr>
<td><?php _e('Installiert'); ?></td>
<td><?php echo count($data['plugins']); ?></td>
</tr>
<tr>
<td><?php _e('Aktualisierung'); ?></td>
<td><?php echo count($data['availableUpdates']); ?></td>
</tr>
<tr>
<td><?php _e('Deaktiviert'); ?></td>
<td><?php echo $data['disabledPluginsCount']; ?></td>
</tr>
</table>
</div>
</div>
</div>
<div class="container-600">
<div class="box">
<div class="inner-header">
<span><?php _e('Plugins entdecken'); ?></span>
<?php showGoBackIcon('?s=plugins'); ?>
</div>
<?php $i = 0; foreach ($data['onlinePlugins'] as $plugin) { $i++; ?>
<div class="inner-table discover_plugins-table-list<?php echo ($i != count($data['onlinePlugins'])) ? ' padding-0' : ''; ?>">
<a href="?s=discover_plugins&amp;id=<?php echo $plugin['id']; ?>">
<table class="table table-borderless<?php echo ($i%2 != 0) ? ' table-reverse' : ''; ?>">
<tr>
<td><strong><?php echo $plugin['name']; ?></strong><span><?php _e('Version %s', $plugin['versions'][$plugin['latestVersion']]['name']); ?></span><?php if (isset($data['plugins'][$plugin['id']])) { ?><strong class="<?php if (isset($data['availableUpdates'][$plugin['id']])) echo 'orange'; else echo ($data['plugins'][$plugin['id']]['disabled'] == true) ? 'red' : 'green'; ?>"><?php if (isset($data['availableUpdates'][$plugin['id']])) echo _t('Update'); else echo ($data['plugins'][$plugin['id']]['disabled'] == true) ? _t('Deaktiviert') : _t('Installiert'); ?></strong><?php } ?></td>
<td><?php echo $plugin['description']; ?></td>
</tr>
</table>
</a>
</div>
<?php } if (empty($data['onlinePlugins'])) { ?>
<div class="inner-info">
<div><?php _e('Es konnten keine verf&uuml;gbaren Plugins gefunden werden.'); ?></div>
</div>
<?php } ?>
</div>
</div>

View File

@@ -0,0 +1,104 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div class="sidebar order-2">
<div class="box">
<div class="inner-header">
<span><?php _e('Aktion'); ?></span>
</div>
<div class="inner discover_plugins_info-action">
<?php if (empty($data['plugin'])) { ?>
<a href="?s=discover_plugins&amp;id=<?php echo $data['onlinePlugin']['id']; ?>&amp;install" class="button"><?php _e('Installieren'); ?></a>
<?php } else { ?>
<a href="?s=plugins&amp;id=<?php echo $data['plugin']['id']; ?>" class="button"><?php _e('Zum Plugin'); ?></a><br />
<?php if ($data['plugin']['version']['code'] < $data['onlinePlugin']['latestVersion']) { ?>
<a href="?s=discover_plugins&amp;id=<?php echo $data['plugin']['id']; ?>&amp;update" class="button"><?php _e('Aktualisieren'); ?></a>
<?php } ?>
<a href="?s=discover_plugins&amp;id=<?php echo $data['plugin']['id']; ?>&amp;status" class="button"><?php echo ($data['plugin']['disabled'] == true) ? _t('Aktivieren') : _t('Deaktivieren'); ?></a>
<a href="?s=settings&amp;do=plugins&amp;delete=<?php echo $data['plugin']['id']; ?>" class="button"><?php _e('L&ouml;schen'); ?></a>
<?php } ?>
</div>
</div>
</div>
<div class="container-600 order-1">
<div class="box">
<div class="inner-header">
<span><?php echo $data['onlinePlugin']['name']; ?></span>
<?php showGoBackIcon('?s=discover_plugins'); ?>
</div>
<div class="inner">
<?php if (!empty($data['plugin'])) { ?>
<strong class="green"><?php _e('Das Plugin ist bereits installiert.'); ?></strong>
<?php if ($data['plugin']['version']['code'] < $data['onlinePlugin']['latestVersion']) { ?>
<br /><br /><strong class="red"><?php _e('Das Plugin ist nicht mehr aktuell. Version %s ist verf&uuml;gbar!', $data['onlinePlugin']['versions'][$data['onlinePlugin']['latestVersion']]['name']); ?></strong>
<?php } } ?>
</div>
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td style="width: 30%;"><?php _e('Version'); ?></td>
<td><?php echo $data['onlinePlugin']['versions'][$data['onlinePlugin']['latestVersion']]['name']; ?></td>
</tr>
<tr>
<td><?php _e('Ver&ouml;ffentlicht am'); ?></td>
<td><?php echo formatTime($data['onlinePlugin']['date'], 'd.m.Y'); ?></td>
</tr>
<tr>
<td><?php _e('Letzte Aktualisierung'); ?></td>
<td><?php echo formatTime($data['onlinePlugin']['versions'][$data['onlinePlugin']['latestVersion']]['date'], 'd.m.Y'); ?></td>
</tr>
<tr>
<td><?php _e('Beschreibung'); ?></td>
<td><?php echo $data['onlinePlugin']['description']; ?></td>
</tr>
<tr>
<td><?php _e('Sprachen'); ?></td>
<td><?php echo implode(', ', array_map('getLanguageFromIso', $data['onlinePlugin']['languages'])); ?></td>
</tr>
</table>
</div>
</div>
</div>
<div class="clear-both"></div>
<div class="order-3">
<?php if (!empty($data['onlinePlugin']['manual'])) { ?>
<div class="box">
<div class="inner-header">
<span><?php _e('Anleitung'); ?></span>
</div>
<div class="inner">
<?php echo $data['onlinePlugin']['manual']; ?>
</div>
</div>
<?php }
if (!empty($data['onlinePlugin']['requirement'])) { ?>
<div class="box">
<div class="inner-header">
<span><?php _e('Voraussetzungen'); ?></span>
</div>
<div class="inner">
<?php echo $data['onlinePlugin']['requirement']; ?>
</div>
</div>
<?php }
if (!empty($data['onlinePlugin']['versions'][$data['onlinePlugin']['latestVersion']]['changelog'])) { ?>
<div class="box">
<div class="inner-header">
<span><?php _e('&Auml;nderungen mit Version %s', $data['onlinePlugin']['versions'][$data['onlinePlugin']['latestVersion']]['name']); ?></span>
</div>
<div class="inner">
<?php echo $data['onlinePlugin']['versions'][$data['onlinePlugin']['latestVersion']]['changelog']; ?>
</div>
</div>
<?php }
if (!empty($data['onlinePlugin']['screenshots'])) { ?>
<div class="box">
<div class="inner-header">
<span><?php _e('Screenshots'); ?></span>
</div>
<div class="inner discover_plugins_info-screenshots">
<?php foreach ($data['onlinePlugin']['screenshots'] as $screenshot) { ?>
<a href="<?php echo $screenshot; ?>" target="_blank"><img src="<?php echo $screenshot; ?>" /></a>
<?php } ?>
</div>
</div>
<?php } ?>
</div>

View File

@@ -0,0 +1,14 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<!-- Error -->
<div>
<div class="box error">
<div>
<?php if ($data['title'] != '') { ?><div class="inner-header">
<span><?php echo $data['title']; ?></span>
</div><?php } ?>
<div class="inner">
<?php echo $data['msg']; ?>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,30 @@
<?php if (!defined('PICONTROL')) exit(); ?>
</div>
<!-- Footer -->
<div id="footer">
<div id="footer-inner">
<table id="footer-table">
<tr>
<th><?php _e('PI CONTROL'); ?></th>
<th><?php _e('&Uuml;BER MICH'); ?></th>
<th><?php _e('VERSION'); ?></th>
</tr>
<tr>
<td rowspan="2"><a href="?s=settings"><?php _e('Einstellungen'); ?></a><br />
<a href="https://willy-tech.de/kontakt/" target="_blank" data-lang="<?php echo $data['language']; ?>"><?php _e('Feedback'); ?></a><br />
<a href="<?php echo $data['helpLink']; ?>" target="_blank"><?php _e('Hilfe'); ?></a><br />
<a href="https://play.google.com/store/apps/details?id=de.willytech.picontrol" target="_blank" title="<?php _e('&Ouml;ffne im Play Store'); ?>"><?php _e('App im Play Store'); ?></a><br />
<a href="https://bugs.schultes.dev/gregor/pi-control" target="_blank"><?php _e('Git Repo'); ?></a></td>
<td rowspan="2"><a href="https://www.schultes.dev/" target="_blank"><?php _e('Mein Blog'); ?></a><br />
<td><?php echo $data['version']; ?></td>
</tr>
<tr>
<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>
</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>
</div>
<script type="text/javascript">var errorHandler = '<?php echo $data['errorHandler']; ?>';</script>
</body>
</html>

View File

@@ -0,0 +1,122 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta name="apple-mobile-web-app-title" content="Pi Control" />
<meta name="application-name" content="Pi Control" />
<meta name="theme-color" content="#1565C0" />
<link type="text/css" rel="stylesheet" href="public_html/css/style.css.php" />
<link rel="apple-touch-icon" sizes="57x57" href="/public_html/img/favicon/apple-touch-icon-57x57.png" />
<link rel="apple-touch-icon" sizes="120x120" href="/public_html/img/favicon/apple-touch-icon-120x120.png" />
<link rel="apple-touch-icon" sizes="152x152" href="/public_html/img/favicon/apple-touch-icon-152x152.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/public_html/img/favicon/apple-touch-icon-180x180.png" />
<link rel="icon" type="image/png" href="public_html/img/favicon/android-chrome-192x192.png" sizes="192x192" />
<link rel="icon" type="image/png" href="public_html/img/favicon/favicon-96x96.png" sizes="96x96" />
<link rel="manifest" href="public_html/img/favicon/manifest.json" />
<link rel="mask-icon" href="public_html/img/favicon/safari-pinned-tab.svg" color="#1975d0" />
<link rel="shortcut icon" href="public_html/img/favicon/favicon.ico" />
<script type="text/javascript" src="public_html/js/jquery.min.js"></script>
<script type="text/javascript" src="public_html/js/translation.js"></script>
<?php if (!empty($data['jsTranslations'])) { ?>
<script type="text/javascript">
<?php foreach ($data['jsTranslations'] as $key => $value) { ?>
jsTranslations['<?php echo $key; ?>'] = '<?php echo $value; ?>';
<?php } ?>
</script>
<?php } ?>
<script type="text/javascript" src="public_html/js/main.js"></script>
<script type="text/javascript" src="public_html/js/feedback.js"></script>
<title><?php echo $data['title']; ?></title>
</head>
<body>
<!-- Header -->
<div id="header">
<div id="header-top">
<div id="header-top-inner">
<div id="header-top-inner-row">
<?php if ($data['headerInfo'] !== false) { ?>
<div class="header-top-inner-cell header-top-inner-info color-3">
<?php echo $data['headerInfo']; ?>
</div>
<?php } ?>
<div class="header-top-inner-cell header-top-inner-username">
<?php _e('Angemeldet als %s', $data['username']); ?>
</div>
<div class="header-top-inner-cell header-top-inner-logout">
<a href="?i=login&amp;logout<?php echo $data['referer']; ?>"><?php _e('Abmelden'); ?></a>
</div>
</div>
</div>
</div>
<input type="checkbox" id="header-mobile" />
<div id="inner-header">
<label for="header-mobile"></label>
<a href="?s=overview" id="header-logo"><img src="public_html/img/logo.svg" /></a>
<div id="header-navi">
<a href="?s=overview"><?php _e('&Uuml;bersicht'); ?></a>
<a href="?s=network"><?php _e('Netzwerk'); ?></a>
<a href="?s=statistic"><?php _e('Statistik'); ?></a>
<a href="?s=terminal"><?php _e('Terminal'); ?></a>
<div class="navi-dropdown"><a href="?s=plugins"><?php _e('Plugins'); if (is_array($data['naviPluginsUpdates'])) echo '<span class="update-bull">&bull;</span>'; ?></a>
<div class="navi-dropdown-container">
<?php if (isset($data['naviPluginsUpdates'])) { ?>
<a href="?s=discover_plugins" class="navi-dropdown-update">UPDATE</a>
<?php } if (is_array($data['naviPlugins'])) { foreach ($data['naviPlugins'] as $plugin) { ?>
<a href="?s=plugins&amp;id=<?php echo $plugin['id']; ?>"><?php _e($plugin['name']); if (isset($data['naviPluginsUpdates'][$plugin['id']])) echo '<span class="update-bull">&bull;</span>'; ?></a>
<?php } } ?>
</div>
</div>
<div class="navi-dropdown"><a href="#"><span style="transform: rotate(90deg); display: block; font-weight: normal; line-height: 15px;">&#10095;</span></a>
<div class="navi-dropdown-container">
<a href="?s=users_groups"><?php _e('Benutzer/Gruppen'); ?></a>
<a href="?s=logs"><?php _e('Logdateien'); ?></a>
<a href="?s=processes"><?php _e('Prozesse'); ?></a>
</div>
</div>
</div>
</div>
</div>
<!-- Content -->
<div id="content">
<!--[if lte IE 9]>
<div class="box info">
<div>
<div class="inner-header">
<span><?php _e('Nicht unterst&uuml;tzte Browserversion'); ?></span>
</div>
<div class="inner">
<?php _e('Deine aktuelle Browserversion wird von Pi Control nicht unterst&uuml;tzt. Bitte aktualisiere deinen Browser oder verwende einen anderen!'); ?>
</div>
</div>
</div>
<![endif]-->
<?php if (is_array($data['updatePicontrol'])) { ?>
<!-- Update -->
<div class="box info info-update pulse-update">
<div>
<div class="inner-header">
<span><?php _e('Pi Control %s ist verf&uuml;gbar', $data['updatePicontrol']['version']); ?></span>
</div>
<div class="inner">
<?php _e('Zur <a href="%s">Aktualisierung</a>, um diese anzusehen und zu starten.', '?s=settings&amp;do=update'); ?>
</div>
</div>
</div>
<?php } ?>
<?php if ($data['cronExecutionFault'] === true) { ?>
<!-- Cron -->
<div class="box error">
<div>
<div class="inner-header">
<span><?php _e('Fehler mit dem Cron'); ?></span>
<div><span class="cancel"></span></div>
</div>
<div class="inner">
<?php _e('Es gibt anscheinend ein Problem mit dem Cron für das Pi Control. Dieser wurde seit mehr als 2 Minuten nicht mehr ausgef&uuml;hrt. Sollte diese Meldung in ca. 5 Minuten immer noch erscheinen, f&uuml;hre eine <a href="%s">Problembehandlung</a> durch.', '?s=settings&amp;do=troubleshooting'); ?>
</div>
</div>
</div>
<?php } ?>

View File

@@ -0,0 +1,28 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Installierte Pakete'); ?></span>
<?php showGoBackIcon('?s=detailed_overview'); ?>
</div>
<div class="inner">
<strong><?php _e('Anzahl an installierten Paketen: %s', $data['installedPackagesCount']); ?></strong>
</div>
<div class="inner-table overflow-auto">
<table class="table table-borderless">
<tr>
<th><?php _e('Paketname'); ?></th>
<th><?php _e('Version'); ?></th>
<th><?php _e('Beschreibung'); ?></th>
</tr>
<?php foreach ($data['installedPackages'] as $package) { ?>
<tr>
<td><?php echo $package[1]; ?></td>
<td><?php echo $package[2]; ?></td>
<td><?php echo $package[4]; ?></td>
</tr>
<?php } ?>
</table>
</div>
</div>
</div>

View File

@@ -0,0 +1,53 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<!DOCTYPE HTML>
<html style="height: 100%;">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta name="apple-mobile-web-app-title" content="Pi Control" />
<meta name="application-name" content="Pi Control" />
<meta name="theme-color" content="#1565C0" />
<link type="text/css" rel="stylesheet" href="public_html/css/style.css.php" />
<link rel="apple-touch-icon" sizes="57x57" href="/public_html/img/favicon/apple-touch-icon-57x57.png" />
<link rel="apple-touch-icon" sizes="120x120" href="/public_html/img/favicon/apple-touch-icon-120x120.png" />
<link rel="apple-touch-icon" sizes="152x152" href="/public_html/img/favicon/apple-touch-icon-152x152.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/public_html/img/favicon/apple-touch-icon-180x180.png" />
<link rel="icon" type="image/png" href="public_html/img/favicon/android-chrome-192x192.png" sizes="192x192" />
<link rel="icon" type="image/png" href="public_html/img/favicon/favicon-96x96.png" sizes="96x96" />
<link rel="manifest" href="public_html/img/favicon/manifest.json" />
<link rel="mask-icon" href="public_html/img/favicon/safari-pinned-tab.svg" color="#1975d0" />
<link rel="shortcut icon" href="public_html/img/favicon/favicon.ico" />
<title><?php _e('Login'); ?> | Pi Control</title>
</head>
<body class="login-body">
<div class="login-wrapper">
<div class="login-container">
<div class="login-container-inner">
<div class="login-logo"></div>
<?php if (isset($data['errorMsg'])) { ?>
<div class="login-error"><?php _e($data['errorMsg']); ?></div>
<?php } ?>
<form action="?i=login" method="post">
<table class="login-table">
<tr>
<td colspan="2"><input type="text" name="username" class="login-input-text" placeholder="<?php _e('Benutzername'); ?>" /></td>
</tr>
<tr>
<td colspan="2"><input type="password" name="password" class="login-input-text" placeholder="<?php _e('Passwort'); ?>" /></td>
</tr>
<tr>
<td><input type="checkbox" name="rememberMe" value="checked" id="rememberMe" /><label class="checkbox login-input-checkbox" for="rememberMe" title="<?php _e('Cookies m&uuml;ssen f&uuml;r diese Funktion aktiviert sein.'); ?>"><?php _e('Angemeldet bleiben'); ?></label></td>
<td style="text-align: right;"><input type="submit" name="submit" class="login-input-button" value="<?php _e('Anmelden'); ?>"<?php if ($data['externalAccess'] == false) echo 'disabled="disabled"'; ?> /></td>
</tr>
</table>
<input type="hidden" name="referer" value="<?php echo $data['referer']; ?>" />
</form>
</div>
</div>
<div class="login-footer">
<div class="login-footer-inner"><?php _e('Mit %s entwickelt von %s.', '&#10084;', 'Willy Fritzsche'); ?> 2013-2017<br /><?php _e('Raspberry Pi ist ein Markenzeichen der Raspberry Pi Foundation.'); ?></div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,31 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Logdateien'); ?></span>
</div>
<?php if (!$data['sshAvailable']) { ?>
<div class="inner">
<strong class="red"><?php _e('Einige Dateien k&ouml;nnen aufgrund mangelnder Berechtigung nicht ge&ouml;ffnet werden. Melde dich per SSH an, um diese ebenfalls zu &ouml;ffnen. <a href="%s">Jetzt anmelden.</a>', '?s=ssh_login'); ?></strong>
</div>
<?php } ?>
<div class="inner-table">
<table class="table table-borderless">
<tr>
<th style="width: 60%;"><?php _e('Dateiname'); ?></th>
<th style="width: 15%;"><?php _e('Letzte &Auml;nderung'); ?></th>
<th style="width: 15%;"><?php _e('Dateigr&ouml;ße'); ?></th>
<th style="width: 10%;"></th>
</tr>
<?php foreach ($data['logs'] as $log) { ?>
<tr>
<td><?php echo $log->getRelativePath().$log->getName(); if ($log->getCount(true) > 0) echo ' ('.$log->getCount(true).' '._t('Weitere verf&uuml;gbar').')'; ?></td>
<td><?php echo formatTime($log->getMain()->getModified()); ?></td>
<td><?php echo sizeUnit($log->getMain()->getFilesize()); ?></td>
<td class="table-right"><a <?php if ($log->getMain()->getReadable() === true) echo 'href="?s=logs&amp;view='.urlencode($log->getMain()->getRelativePath()).'"'; ?> class="button button-small<?php if ($log->getMain()->getReadable() === false) echo ' button-disabled'; ?>"><?php _e('Anzeigen'); ?></a></td>
</tr>
<?php } ?>
</table>
</div>
</div>
</div>

View File

@@ -0,0 +1,59 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Logdateien - Ansicht'); ?></span>
<?php showGoBackIcon('?s=logs'); ?>
</div>
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Dateiname'); ?></td>
<td><?php echo $data['log']->getFilename(); ?></td>
</tr>
<tr>
<td><?php _e('Letzte &Auml;nderung'); ?></td>
<td><?php echo formatTime($data['log']->getModified()); ?></td>
</tr>
<tr>
<td><?php _e('Dateigr&ouml;ße'); ?></td>
<td><?php echo sizeUnit($data['log']->getFilesize()); ?></td>
</tr>
<tr>
<td><?php _e('Herunterladen'); ?></td>
<td><a href="?s=logs&amp;download=<?php echo urlencode($data['log']->getRelativePath()); ?>" class="button button-small">TXT</a></td>
</tr>
<?php if ($data['log']->getLogGroup()->getCount() > 1) { ?>
<tr>
<td><?php _e('Weitere Dateien'); ?></td>
<td><form action="?s=logs" method="post">
<input type="hidden" name="relative_path" value="<?php echo $data['log']->getLogGroup()->getRelativePath(); ?>" />
<select name="filename">
<?php foreach ($data['log']->getLogGroup()->getAll() as $log) { ?>
<option value="<?php echo $log->getFilename(); ?>"<?php if ($log->getFilename() == $data['log']->getFilename()) echo ' disabled="disabled"'; ?>><?php echo $log->getFilename().'&nbsp;&nbsp;&nbsp;&nbsp;('.sizeUnit($log->getFilesize()).')'; ?></option>
<?php } ?>
</select> <input type="submit" name="open_file" value="<?php _e('&Ouml;ffnen'); ?>" />
</form></td>
</tr>
<?php } ?>
</table>
</div>
<?php if (isset($data['filesizeError'])) { ?>
<div class="inner">
<strong class="red"><?php _e('Leider kann die angeforderte Datei, aufgrund ihrer Dateigr&ouml;ße (&lt; %s), nicht ge&ouml;ffnet werden.', '10 MB'); ?></strong>
</div>
<?php } else { ?>
<div class="inner padding-0 log-view">
<div class="log-view-outer">
<div class="log-view-line_numbers">
1<br />
<?php for ($i = 2; $i <= $data['logLines']; $i++) echo $i.'<br />'; ?>
</div>
<div class="log-view-text">
<?php echo nl2br(htmlspecialchars($data['logOutput'])); ?>
</div>
</div>
</div>
<?php } ?>
</div>
</div>

View File

@@ -0,0 +1,16 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<!-- Msg -->
<div id="message_box_<?php echo $data['id']; ?>">
<div class="box <?php echo $data['type']; ?>">
<div>
<?php if ($data['title'] != '') { ?><div class="inner-header">
<span><?php echo $data['title']; ?></span>
<?php if ($data['cancelable'] === true) { ?><div><span class="cancel"></span></div><?php } ?>
</div><?php } ?>
<div class="inner<?php if ($data['title'] == '') { echo '-single'; } ?>">
<?php echo $data['msg']; ?>
</div>
<?php if ($data['title'] == '' && $data['cancelable'] === true) { ?><div><span class="cancel"></span></div><?php } ?>
</div>
</div>
</div>

View File

@@ -0,0 +1,125 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<!-- Sidebar -->
<div class="sidebar order-2">
<div class="box">
<div class="inner-navi">
<a href="?s=network"><?php _e('&Uuml;bersicht'); ?></a>
<a href="?s=network_configuration"><?php _e('Konfiguration'); ?></a>
</div>
</div>
<div class="box">
<div class="inner-header">
<span><?php _e('Traffic'); ?></span>
</div>
<div class="inner-table">
<strong><?php _e('Daten'); ?></strong><br /><br />
<table class="table table-borderless">
<tr>
<th style="width: 20%;"><?php _e('Interface'); ?></th>
<th style="width: 40%;"><?php _e('Gesendet'); ?></th>
<th style="width: 40%;"><?php _e('Empfangen'); ?></th>
</tr>
<?php foreach ($data['network_connections'] as $value) { ?>
<tr>
<td><?php echo $value['interface']; ?></td>
<td><?php echo sizeUnit($value['sent']); ?></td>
<td><?php echo sizeUnit($value['receive']); ?></td>
</tr>
<?php } ?>
</table>
</div>
<div class="inner-table">
<br /><strong><?php _e('Pakete'); ?></strong><br /><br />
<table class="table table-borderless">
<tr>
<th style="width: 20%;"><?php _e('Interface'); ?></th>
<th style="width: 40%;"><?php _e('Gesendet'); ?></th>
<th style="width: 40%;"><?php _e('Empfangen'); ?></th>
</tr>
<?php foreach ($data['network_connections'] as $value) { ?>
<tr>
<td><?php echo $value['interface']; ?></td>
<td><?php echo $value['packets']['sent']; ?></td>
<td><?php echo $value['packets']['received']; ?></td>
</tr>
<?php } ?>
</table>
</div>
</div>
<div class="box">
<div class="inner-header">
<span><?php _e('Hostname'); ?></span>
</div>
<div class="inner justify">
<?php _e('Dein Raspberry Pi wird im Netzwerk unter folgendem Namen angezeigt: <strong>%s</strong>', $data['hostname']); ?>
</div>
<div class="inner-end">
<a href="?s=network&amp;hostname"><button><?php _e('&Auml;ndern'); ?></button></a>
</div>
</div>
</div>
<!-- Container -->
<div class="container-600 order-1">
<div class="box">
<div class="inner-header">
<span><?php _e('Netzwerk'); ?></span>
</div>
<div class="inner-table">
<table class="table table-borderless">
<tr>
<th style="width: 2%;"></th>
<th style="width: 10%;"><?php _e('Interface'); ?></th>
<th style="width: 44%;"><?php _e('IP'); ?></th>
<th style="width: 44%;"><?php _e('MAC-Adresse'); ?></th>
</tr>
<?php foreach ($data['network_connections'] as $value) { ?>
<tr>
<td>
<?php if (isset($value['option']['signal'])) { echo getImageFromSignal($value['option']['signal']); } else {
if ($value['ip'] != 0) { ?>
<span class="svg-network-signal-wire"></span>
<?php } else { ?>
<span class="svg-network-signal-disabled"></span>
<?php } } ?></td>
<td><?php echo $value['interface']; ?></td>
<td><?php if ($value['ip'] != 0) { ?><a href="http://<?php echo $value['ip']; ?>" target="_blank"><?php echo $value['ip']; ?></a><?php } else { ?><?php _e('Nicht verbunden'); ?><?php } ?></td>
<td><?php echo $value['mac']; ?></td>
</tr>
<?php } ?>
</table>
</div>
</div>
<?php foreach ($data['wlan'] as $key => $value) { ?>
<div class="box">
<div class="inner-header">
<span><?php echo $key; ?></span>
<div><a href="?s=network&amp;refresh_wlan" class="inner-title-icon"><img src="public_html/img/refresh-icon.svg" title="<?php _e('Aktualisieren'); ?>" /></a></div>
</div>
<div class="inner-table">
<table class="table table-borderless responsive-network-wlan-table">
<tr>
<th style="width: 1%;"></th>
<th style="width: 52%;"><?php _e('Netzwerkname'); ?></th>
<th style="width: 25%;"><?php _e('MAC-Adresse'); ?></th>
<th style="width: 17%;" class="table-center"><?php _e('Sicherheit'); ?></th>
<th style="width: 5%;" class="table-center"><?php _e('Kanal'); ?></th>
</tr>
<?php foreach ($value as $value2) { ?>
<tr>
<td title="<?php echo $value2['signal']; ?>%"><?php echo getImageFromSignal($value2['signal']); ?></td>
<td><a href="?s=network_connect&amp;interface=<?php echo urlencode($key); ?>&amp;ssid=<?php echo urlencode($value2['ssid']); ?>&amp;encryption=<?php echo ($value2['encryption'] == '-') ? 2 : 1; ?>"><?php echo htmlentities($value2['ssid']); ?></a></td>
<td><?php echo $value2['mac']; ?></td>
<td class="table-center"><?php echo $value2['encryption']; ?></td>
<td class="table-center"><?php echo $value2['channel']; ?></td>
</tr>
<?php } if (count($value) == 0) { ?>
<tr>
<td colspan="5"><strong class="red"><?php _e('Keine WLAN-Netzwerke gefunden. <a href="%s">Erneut suchen.</a>', '?s=network&amp;refresh_wlan'); ?></strong></td>
</tr>
<?php } ?>
</table>
</div>
</div>
<?php } ?>
</div>
<div class="clear-both"></div>

View File

@@ -0,0 +1,46 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<script type="text/javascript" src="public_html/js/network_configuration.interface_refresh.js"></script>
<!-- Sidebar -->
<div class="sidebar">
<div class="box">
<div class="inner-navi">
<a href="?s=network"><?php _e('&Uuml;bersicht'); ?></a>
<a href="?s=network_configuration"><?php _e('Konfiguration'); ?></a>
</div>
</div>
<div class="box dummy-1 display-none">
<div class="inner-header">
<span><?php _e('Status'); ?></span>
</div>
<div class="inner"></div>
</div>
</div>
<!-- Container -->
<div class="container-600">
<div class="box">
<div class="inner-header">
<span><?php _e('Netzwerkkonfiguration'); ?></span>
</div>
<div class="inner-table">
<table class="table table-borderless">
<tr>
<th style="width: 45%;"><?php _e('Interface'); ?></th>
<th style="width: 20%;"><?php _e('Protokoll'); ?></th>
<th style="width: 20%;"><?php _e('Methode'); ?></th>
<th style="width: 15%;"></th>
</tr>
<?php foreach ($data['interfaces'] as $interface => $value) { ?>
<tr>
<td><?php echo $interface; ?></td>
<td><?php echo formatInterfaceProtocol($value['protocol']); ?></td>
<td><?php echo _t(formatInterfaceMethod($value['method'])); ?></td>
<td class="table-center"><a href="?s=network_configuration&amp;edit=<?php echo urlencode($interface); ?>" style="margin-right: 8px;"><span class="svg-control-pen display-inline-block"></span></a><a href="?s=network_configuration&amp;delete=<?php echo urlencode($interface); ?>" style="margin-right: 8px;"><span class="svg-control-cross display-inline-block"></span></a><a href="#refresh" name="<?php echo urlencode($interface); ?>"><span class="svg-refresh display-inline-block"></span></a></td>
</tr>
<?php } ?>
</table>
</div>
<div class="inner-end">
<a href="?s=network_configuration&amp;add"><button><?php _e('Hinzuf&uuml;gen'); ?></button></a>
</div>
</div>
</div>

View File

@@ -0,0 +1,55 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<script type="text/javascript" src="public_html/js/network_configuration.method_select.js"></script>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Netzwerkkonfiguration - Interface hinzuf&uuml;gen'); ?></span>
<?php showGoBackIcon('?s=network_configuration'); ?>
</div>
<form action="?s=network_configuration&amp;add" method="post">
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Interface'); ?></td>
<td><input type="text" name="interface" value="<?php echo $data['interfaceName']; ?>" /></td>
</tr>
<tr>
<td><?php _e('Protokoll'); ?></td>
<td><select name="protocol">
<option value="inet"<?php if ($data['interfaceProtocol'] == 'inet') echo ' selected="selected"'; ?>>IPv4</option>
<option value="inet6"<?php if ($data['interfaceProtocol'] == 'inet6') echo ' selected="selected"'; ?>>IPv6</option>
<option value="ipx"<?php if ($data['interfaceProtocol'] == 'ipx') echo ' selected="selected"'; ?>>IPX/SPX</option>
</select>
<span class="small-info"><?php _e('Weitere Einstellungen für IPX/SPX bitte selber vornehmen'); ?></span>
</td>
</tr>
<tr>
<td><?php _e('Methode'); ?></td>
<td><select name="method">
<option value="dhcp"<?php if ($data['interfaceMethod'] == 'dhcp') echo ' selected="selected"'; ?>><?php _e('DHCP'); ?></option>
<option value="static"<?php if ($data['interfaceMethod'] == 'static') echo ' selected="selected"'; ?>><?php _e('Statisch'); ?></option>
<option value="manual"<?php if ($data['interfaceMethod'] == 'manual') echo ' selected="selected"'; ?>><?php _e('Manuell'); ?></option>
</select>
</td>
</tr>
<tr class="hidden-method<?php if ($data['interfaceMethod'] != 'static') echo ' display-none'; ?>">
<td style="text-align: right;"><?php _e('Adresse'); ?></td>
<td><input type="text" name="address" maxlength="39" value="<?php echo $data['interfaceAddress'] ?>" /></td>
</tr>
<tr class="hidden-method<?php if ($data['interfaceMethod'] != 'static') echo ' display-none'; ?>">
<td style="text-align: right;"><?php _e('Netzmaske'); ?></td>
<td><input type="text" name="netmask" maxlength="39" value="<?php echo $data['interfaceNetmask']; ?>" /></td>
</tr>
<tr class="hidden-method<?php if ($data['interfaceMethod'] != 'static') echo ' display-none'; ?>">
<td style="text-align: right;"><?php _e('Gateway'); ?></td>
<td><input type="text" name="gateway" maxlength="39" value="<?php echo $data['interfaceGateway']; ?>" /></td>
</tr>
</table>
</div>
<div class="inner-end">
<input type="hidden" name="checksum" value="<?php echo $data['checksum']; ?>" />
<input type="submit" name="submit" value="<?php _e('Speichern'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,18 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Netzwerkkonfiguration - Interface l&ouml;schen'); ?></span>
<?php showGoBackIcon('?s=network_configuration'); ?>
</div>
<form action="?s=network_configuration&amp;delete=<?php echo urlencode($data['interfaceName']); ?>" method="post">
<div class="inner">
<?php _e('M&ouml;chtest du das Interface <strong>%s</strong> wirklich unwiderruflich l&ouml;schen?', $data['interfaceName']); ?>
</div>
<div class="inner-end">
<input type="hidden" name="checksum" value="<?php echo $data['checksum']; ?>" />
<input type="submit" name="submit" value="<?php _e('L&ouml;schen'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,55 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<script type="text/javascript" src="public_html/js/network_configuration.method_select.js"></script>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Netzwerkkonfiguration - Interface bearbeiten'); ?></span>
<?php showGoBackIcon('?s=network_configuration'); ?>
</div>
<form action="?s=network_configuration&amp;edit=<?php echo urlencode($data['interfaceName']); ?>" method="post">
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Interface'); ?></td>
<td><input type="text" name="interface" value="<?php echo $data['interfaceName']; ?>" /></td>
</tr>
<tr>
<td><?php _e('Protokoll'); ?></td>
<td><select name="protocol">
<option value="inet"<?php if ($data['interfaceProtocol'] == 'inet') echo ' selected="selected"'; ?>>IPv4</option>
<option value="inet6"<?php if ($data['interfaceProtocol'] == 'inet6') echo ' selected="selected"'; ?>>IPv6</option>
<option value="ipx"<?php if ($data['interfaceProtocol'] == 'ipx') echo ' selected="selected"'; ?>>IPX/SPX</option>
</select>
<span class="small-info"><?php _e('Weitere Einstellungen für IPX/SPX bitte selber vornehmen'); ?></span>
</td>
</tr>
<tr>
<td><?php _e('Methode'); ?></td>
<td><select name="method">
<option value="dhcp"<?php if ($data['interfaceMethod'] == 'dhcp') echo ' selected="selected"'; ?>><?php _e('DHCP'); ?></option>
<option value="static"<?php if ($data['interfaceMethod'] == 'static') echo ' selected="selected"'; ?>><?php _e('Statisch'); ?></option>
<option value="manual"<?php if ($data['interfaceMethod'] == 'manual') echo ' selected="selected"'; ?>><?php _e('Manuell'); ?></option>
</select>
</td>
</tr>
<tr class="hidden-method<?php if ($data['interfaceMethod'] != 'static') echo ' display-none'; ?>">
<td style="text-align: right;"><?php _e('Adresse'); ?></td>
<td><input type="text" name="address" maxlength="39" value="<?php echo $data['interfaceAddress'] ?>" /></td>
</tr>
<tr class="hidden-method<?php if ($data['interfaceMethod'] != 'static') echo ' display-none'; ?>">
<td style="text-align: right;"><?php _e('Netzmaske'); ?></td>
<td><input type="text" name="netmask" maxlength="39" value="<?php echo $data['interfaceNetmask']; ?>" /></td>
</tr>
<tr class="hidden-method<?php if ($data['interfaceMethod'] != 'static') echo ' display-none'; ?>">
<td style="text-align: right;"><?php _e('Gateway'); ?></td>
<td><input type="text" name="gateway" maxlength="39" value="<?php echo $data['interfaceGateway']; ?>" /></td>
</tr>
</table>
</div>
<div class="inner-end">
<input type="hidden" name="checksum" value="<?php echo $data['checksum']; ?>" />
<input type="submit" name="submit" value="<?php _e('Speichern'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,54 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<script type="text/javascript"><?php echo $data['jsVariables']; ?></script>
<script type="text/javascript" src="public_html/js/network_connect.wlan.js"></script>
<noscript>
<div>
<div class="info_red box">
<div class="inner">
<strong><?php _e('Bitte aktiviere JavaScript, um dich mit einem WLAN-Netzwerk verbinden zu k&ouml;nnen.'); ?></strong>
</div>
</div>
</div>
</noscript>
<!-- Container -->
<div>
<div class="box">
<form action="#" method="post">
<div class="inner-header">
<span><?php _e('WLAN-Verbindung herstellen'); ?></span>
</div>
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Interface'); ?></td>
<td><input type="hidden" name="interface" value="<?php echo $data['interface']; ?>" /><?php echo $data['interface']; ?></td>
</tr>
<tr>
<td><?php _e('Netzwerkname'); ?></td>
<td><input type="hidden" name="ssid" value="<?php echo $data['ssid']; ?>" /><?php echo $data['ssid']; ?></td>
</tr>
<?php if (isset($data['encryption']) && $data['encryption'] == 1) { ?>
<tr>
<td><?php _e('Passwort'); ?></td>
<td><input type="password" name="password" maxlength="64" /></td>
</tr>
<?php } elseif (isset($data['encryption']) && $data['encryption'] == 2) { ?>
<tr>
<td><?php _e('Passwort (falls n&ouml;tig)'); ?></td>
<td><input type="password" name="password" data="opt" maxlength="64" /></td>
</tr>
<?php } ?>
</table>
</div>
<div class="inner-end dummy-1">
<input type="submit" name="submit" value="<?php _e('Verbindung herstellen'); ?>" />
</div>
<div class="inner dummy-2 display-none">
<span class="svg-network-signal-animate display-inline-block" style="vertical-align: bottom;"></span> <strong><?php _e('Verbindung mit "%s" wird hergestellt...', $data['ssid']); ?>.</strong>
</div>
<div class="inner dummy-3 display-none">
<span class="svg-network-signal-disabled display-inline-block" style="vertical-align: bottom;"></span> <strong><?php _e('Verbindung mit "%s" war nicht erfolgreich! <a href="%s">Erneut versuchen.</a>', $data['ssid'], '#try_again'); ?><br /><br /><span class="red"></span></strong>
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,26 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<!-- Content -->
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Hostname'); ?></span>
<?php echo showGoBackIcon('?s=network'); ?>
</div>
<div class="inner-info">
<div><?php _e('Bei einer &Auml;nderung des Hostname ist der neue Name erst nach einem Neustart sichtbar.'); ?></div>
</div>
<form action="?s=network&amp;hostname" method="post">
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Hostname'); ?></td>
<td><input type="text" name="hostname" value="<?php echo $data['hostname']; ?>" /></td>
</tr>
</table>
</div>
<div class="inner-end">
<input type="submit" name="submit" value="<?php _e('Speichern'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,101 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<script type="text/javascript"><?php echo $data['js_variables']; ?></script>
<script type="text/javascript" src="public_html/js/overview.status_refresh.js"></script>
<!-- Sidebar -->
<div class="sidebar order-2">
<div class="box">
<div class="inner-header">
<span><?php _e('System'); ?></span>
</div>
<div class="inner">
<table class="table-overview-system">
<tr>
<td><a href="?s=shutdown&amp;restart" onClick="return ((confirm('<?php _e('M&ouml;chtest du deinen Raspberry Pi wirklich neu starten?'); ?>') == false) ? false : true);"><button><?php _e('Neu starten'); ?></button></a></td>
<td></td>
<td><a href="?s=shutdown" onClick="return ((confirm('<?php _e('M&ouml;chtest du deinen Raspberry Pi wirklich herunterfahren?'); ?>') == false) ? false : true);"><button class="system_shutdown"><?php _e('Herunterfahren'); ?></button></a></td>
</tr>
</table>
</div>
</div>
<?php if ($data['show_weather'] === true) { ?>
<div class="box">
<div class="inner-header">
<span><?php _e('Wetter'); ?></span>
<?php if ($data['weather_cache_hint'] != NULL) echo $data['weather_cache_hint']; ?>
</div>
<div class="inner">
<?php if ($data['weather'] === 0) { ?>
<strong class="red"><?php _e('Die aktuelle Postleitzahl ist ung&uuml;ltig.'); ?></strong>
<?php } elseif ($data['weather'] === 2) { ?>
<strong class="red"><?php _e('Wetter wurde noch nicht konfiguriert. <a href="%s">Zu den Einstellungen.</a>', '?s=settings&do=overview'); ?></strong>
<?php } elseif ($data['weather'] === 1 || !is_array($data['weather'])) { ?>
<strong class="red"><?php _e('Das Wetter kann aktuell nicht abgerufen werden.'); ?></strong>
<?php } else { ?>
<strong><?php echo $data['weather']['city']; ?></strong><br /><br />
<table style="margin: 0px auto 0px;">
<tr>
<td style="width: 100px; text-align: center;">
<img src="public_html/img/weather/<?php echo $data['weather']['icon']; ?>.svg" title="<?php echo $data['weather']['description']; ?>" alt="<?php _e('Wetter'); ?>" style="width: 64px;" /><br />
<span style="font-size: 11px; margin-top: 5px; display: block;" title="<?php _e('Windst&auml;rke'.(isset($data['weather']['humidity']) ? ' | Luftfeuchtigkeit' : '')); ?>"><?php echo $data['weather']['wind']; ?> km/h<?php if (isset($data['weather']['humidity'])) echo ' | '.$data['weather']['humidity'].' %'; ?></span>
</td>
<td style="width: 100px; text-align: center;"><span style="font-size: 30px;">
<?php echo $data['weather']['temp']; ?> &deg;C</span><br />
<?php if (isset($data['weather']['temp_min'])) { ?><span style="font-size: 13px;"><?php echo $data['weather']['temp_min']; ?> &deg;C | <?php echo $data['weather']['temp_max']; ?> &deg;C</span><?php } ?>
</td>
</tr>
</table>
<?php if ($data['weather']['service'] == 'yahoo') { ?><a href="https://www.yahoo.com/?ilc=401" target="_blank" style="float: right; margin-right: -12px;"><img src="public_html/img/weather/yahoo.png" width="80px" /></a><?php }
elseif ($data['weather']['service'] == 'wunderground') { ?><a href="https://www.wunderground.com/" target="_blank" style="float: right; margin-right: -14px; margin-top: -5px;"><img src="public_html/img/weather/wunderground.png" width="80px" /></a><?php }
elseif ($data['weather']['service'] == 'darksky') { ?><a href="https://darksky.net/poweredby/" target="_blank" style="float: right; margin-right: -14px; margin-top: -1px;"><img src="public_html/img/weather/darksky.png" width="100px" /></a><?php } ?>
<?php } ?>
</div>
</div>
<?php } ?>
</div>
<!-- Container -->
<div class="container-600 order-1">
<div class="box">
<div class="inner-header">
<span><?php _e('&Uuml;bersicht'); ?></span>
<?php showSettingsIcon('?s=settings&amp;do=overview'); ?>
</div>
<div class="inner flex-container">
<div class="flex-box-refresh"><div><div class="refresh-bar"></div></div><a href="#refresh"><img src="public_html/img/refresh-icon.svg" title="<?php _e('Aktualisieren'); ?>" /></a></div>
<div class="flex-box"><strong><?php _e('Startzeit'); ?></strong><span><?php echo $data['start_time']; ?></span></div>
<div class="flex-box"><strong><?php _e('Laufzeit'); ?></strong><span><?php echo $data['run_time']; ?></span></div>
<div class="flex-box"><strong><?php _e('CPU-Takt'); ?></strong><span><?php echo $data['cpu_clock']; ?></span></div>
<div class="flex-box"><strong><?php _e('CPU-Auslastung'); ?></strong><div class="progressbar" data-text="<?php echo $data['cpu_load']; ?>"><div style="width: <?php echo $data['cpu_load']; ?>"></div></div></div>
<div class="flex-box"><strong><?php _e('CPU-Temperatur'); ?></strong><span><?php echo $data['cpu_temp']; ?></span></div>
<div class="flex-box"><strong><?php _e('RAM'); ?></strong><div class="progressbar" data-text="<?php echo $data['ram_percentage']; ?>"><div style="width: <?php echo $data['ram_percentage']; ?>"></div></div></div>
<div class="flex-box"><strong><?php _e('Speicher belegt'); ?></strong><span><?php echo sizeUnit($data['memory']['used']); ?></span></div>
<div class="flex-box"><strong><?php _e('Speicher frei'); ?></strong><span><?php echo sizeUnit($data['memory']['free']); ?></span></div>
<div class="flex-box"><strong><?php _e('Gesamtspeicher'); ?></strong><span><?php echo sizeUnit($data['memory']['total']); ?></span></div>
</div>
<div class="inner text-align-center">
<a class="show-more" href="?s=detailed_overview"><?php _e('Mehr anzeigen'); ?></a>
</div>
</div>
</div>
<div class="clear-both"></div>
<?php if (is_array($data['usb_devices'])) { ?>
<div class="order-3">
<div class="box">
<div class="inner-header">
<span><?php _e('Angeschlossene Ger&auml;te'); ?></span>
<?php if ($data['usb_devices_cache_hint'] != NULL) echo $data['usb_devices_cache_hint']; ?>
</div>
<div class="inner-table">
<table class="table table-borderless">
<tr>
<th style="width: 100%;"><?php _e('Bezeichnung'); ?></th>
</tr>
<?php foreach ($data['usb_devices'] as $value) { ?>
<tr>
<td><?php echo htmlentities($value); ?></td>
</tr>
<?php } ?>
</table>
</div>
</div>
</div>
<?php } ?>

View File

@@ -0,0 +1,28 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Plugins'); ?></span>
<?php showSettingsIcon('?s=settings&amp;do=plugins'); ?>
</div>
<?php $i = 0; foreach ($data['plugins'] as $plugin) { $i++; ?>
<div class="inner-table plugins-table-list<?php echo ($i != count($data['plugins'])) ? ' padding-0' : ''; ?>">
<a href="?s=plugins&amp;id=<?php echo $plugin['id']; ?>">
<table class="table table-borderless<?php echo ($i%2 != 0) ? ' table-reverse' : ''; ?>">
<tr>
<td><strong><?php _e($plugin['name']); ?></strong><span><?php _e('Version %s', $plugin['version']['name']); ?></span></td>
<td><?php _e($plugin['description']); ?></td>
</tr>
</table>
</a>
</div>
<?php } if (empty($data['plugins'])) { ?>
<div class="inner-info">
<div><?php _e('Es sind momentan noch keine Plugins installiert.'); ?></div>
</div>
<?php } ?>
<div class="inner-end">
<a href="?s=discover_plugins"><button><?php _e('Plugins entdecken'); ?></button></a>
</div>
</div>
</div>

View File

@@ -0,0 +1,53 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Prozesse'); ?></span>
</div>
<?php if (!$data['sshAvailable']) { ?>
<div class="inner">
<strong class="red"><?php _e('Aufgrund mangelnder Berechtigungen k&ouml;nnen Prozesse nicht beendet werden. Melde dich per SSH an, um Prozesse zu beenden. <a href="%s">Jetzt anmelden.</a>', '?s=ssh_login'); ?></strong>
</div>
<?php } ?>
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Anzahl aller Prozesse'); ?></td>
<td><?php echo $data['processCount']; ?></td>
</tr>
<tr>
<td><?php _e('Anzahl aktiver Prozesse'); ?></td>
<td><?php echo $data['processCountRunning']; ?></td>
</tr>
</table>
</div>
<div class="inner-table overflow-auto">
<table class="table table-borderless process-table-min-width-text-overflow">
<tr>
<th style="width: 8%;"><?php _e('PID'); ?></th>
<th style="width: 8%;"><?php _e('Benutzer'); ?></th>
<th style="width: 10%;"><?php _e('Status'); ?></th>
<th style="width: 8%;"><?php _e('CPU'); ?></th>
<th style="width: 8%;"><?php _e('RAM'); ?></th>
<th style="width: 15%;"><?php _e('Startzeitpunkt'); ?></th>
<th style="width: 10%;"><?php _e('Laufzeit'); ?></th>
<th style="width: 18%;"><?php _e('Befehl'); ?></th>
<th style="width: 15%;"></th>
</tr>
<?php foreach ($data['processes'] as $process) { ?>
<tr>
<td><?php echo $process->getPid(); ?></td>
<td><?php echo $process->getUser(); ?></td>
<td><?php echo getReadableStatus($process->getStatus()); ?></td>
<td><?php echo numberFormat($process->getCpu()); ?>%</td>
<td><?php echo numberFormat($process->getRam()); ?>%</td>
<td><?php echo formatTime(time() - $process->getElapsedTime()); ?></td>
<td><?php echo getDateFormat($process->getRuntime()); ?></td>
<td title="<?php echo htmlspecialchars($process->getCommand()); ?>"><?php echo htmlspecialchars($process->getCommand()); ?></td>
<td class="table-right white-space-nowrap"><form action="?s=processes" method="post"><input type="hidden" name="pid" value="<?php echo $process->getPid(); ?>" /><input type="hidden" name="startTime" value="<?php echo (time() - $process->getElapsedTime()); ?>" /><input class="button-small" type="submit" name="terminate" value="<?php _e('Beenden'); ?>"<?php if (!$data['sshAvailable']) echo ' disabled="disabled"'; ?> /> <input class="button-small" type="submit" name="kill" value="<?php _e('Abw&uuml;rgen'); ?>"<?php if (!$data['sshAvailable']) echo ' disabled="disabled"'; ?> /></form></td>
</tr>
<?php } ?>
</table>
</div>
</div>
</div>

View File

@@ -0,0 +1,13 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<script type="text/javascript" src="public_html/js/shutdown.restart.js"></script>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Raspberry Pi wird neu gestartet'); ?></span>
</div>
<div class="inner">
<?php _e('Sobald dein Raspberry Pi wieder erreichbar ist, wirst du automatisch zur &Uuml;bersicht weitergeleitet.<br />Solltest du nicht weitergeleitet werden, kommst du hier <a href="%s">zur&uuml;ck zur &Uuml;bersicht.</a><br /><br />', $data['overviewUrl']); ?>
<?php _e('Aktueller Status: <strong class="green">Online</strong>'); ?>
</div>
</div>
</div>

View File

@@ -0,0 +1,19 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Einstellungen'); ?></span>
</div>
<div class="inner settings-overview-flex-container">
<a class="settings-overview-flex-box" href="?s=settings&amp;do=pi-control">Pi Control</a>
<a class="settings-overview-flex-box" href="?s=settings&amp;do=overview"><?php _e('&Uuml;bersicht'); ?></a>
<a class="settings-overview-flex-box" href="?s=settings&amp;do=statistic"><?php _e('Statistik'); ?></a>
<a class="settings-overview-flex-box" href="?s=settings&amp;do=plugins"><?php _e('Plugins'); ?></a>
<a class="settings-overview-flex-box" href="?s=settings&amp;do=update"><?php _e('Aktualisierung'); ?></a>
<a class="settings-overview-flex-box" href="?s=settings&amp;do=troubleshooting"><?php _e('Problembehandlung'); ?></a>
<a class="settings-overview-flex-box" href="?s=settings&amp;do=notification"><?php _e('Benachrichtigung'); ?></a>
<a class="settings-overview-flex-box" href="?s=settings&amp;do=user"><?php _e('Benutzer'); ?></a>
<a class="settings-overview-flex-box" href="?s=settings&amp;do=cache"><?php _e('Cache'); ?></a>
</div>
</div>
</div>

View File

@@ -0,0 +1,44 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Cache'); ?></span>
<?php showGoBackIcon('?s=settings'); ?>
</div>
<form action="?s=settings&amp;do=cache" method="post">
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Aktivieren'); ?></td>
<td><input type="checkbox" name="activation" value="checked" id="cb-activiation"<?php if ($data['cache-activation'] === true) echo ' checked="checked"'; ?> /><label for="cb-activiation" class="checkbox only-checkbox">&nbsp;</label>
</tr>
</table>
</div>
<div class="inner-table overflow-auto">
<table class="table table-borderless">
<tr>
<th style="width: 5%;"></th>
<th style="width: 30%;"><?php _e('Anwendung'); ?></th>
<th style="width: 20%;" class="table-center"><?php _e('Gr&ouml;ße'); ?></th>
<th style="width: 20%;" class="table-center"><?php _e('Letzte &Auml;nderung'); ?></th>
<th style="width: 20%;" class="table-center"><?php _e('Speicherzeit'); ?></th>
<th style="width: 5%;"></th>
</tr>
<?php foreach ($data['cache-files'] as $name => $info) { ?>
<tr>
<td><input type="checkbox" name="cb-<?php echo $name; ?>" value="checked" id="cb-<?php echo $name; ?>"<?php if (isset($info['active']) && $info['active'] === true) echo ' checked="checked"'; ?> /><label for="cb-<?php echo $name; ?>" class="checkbox only-checkbox">&nbsp;</label></td>
<td><?php echo getCacheName($name); ?></td>
<td class="table-center"><?php echo (isset($info['filesize'])) ? sizeUnit($info['filesize']) : '-'; ?></td>
<td class="table-center"><?php echo (isset($info['modification'])) ? formatTime($info['modification']) : '-'; ?></td>
<td class="table-center"><input type="text" name="text-<?php echo $name; ?>" maxlength="4" style="width: 40px !important;" value="<?php echo (isset($info['lifetime'])) ? $info['lifetime'] : '0'; ?>" /> Min.</td>
<td><a href="?s=settings&amp;do=cache&amp;clear=<?php echo $name; ?>" class="button button-small"><?php _e('Leeren'); ?></a></td>
</tr>
<?php } ?>
</table>
</div>
<div class="inner-end">
<input type="submit" name="submit" value="<?php _e('Speichern'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,95 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<?php if (is_array($data['me']) && is_array($data['devices'])) { ?>
<div class="sidebar">
<div class="box">
<div class="inner-header">
<span><?php _e('Du'); ?> / <?php _e('Deine Ger&auml;te'); ?></span>
</div>
<div class="inner">
<?php _e('Verifiziert als '); ?><strong><?php echo $data['me']['name']; ?></strong>.
</div>
<div class="inner-table">
<table class="table table-borderless">
<tr>
<th><?php _e('Ger&auml;tebezeichnung'); ?> / <?php _e('Erstelldatum'); ?></th>
</tr>
<?php foreach ($data['devices']['devices'] as $device) { ?>
<tr>
<td><?php echo $device['nickname']; ?><br /><span class="small-info"><?php echo formatTime($device['created']); ?></span></td>
</tr>
<?php } ?>
</table>
</div>
</div>
</div>
<div class="container-600">
<?php } else { ?>
<div>
<?php } ?>
<div class="box">
<div class="inner-header">
<span><?php _e('Benachrichtigung'); ?></span>
<?php showGoBackIcon('?s=settings'); ?>
</div>
<div class="inner">
<?php _e('Die Benachrichtigungen werden &uuml;ber Pushbullet realisiert. Daher ist ein Konto bei Pushbullet notwendig.'); ?>
</div>
<form action="?s=settings&amp;do=notification" method="post">
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Aktivieren'); ?></td>
<td><input type="checkbox" name="activation" value="checked" id="cb-activation"<?php if ($data['activation'] == true) echo ' checked="checked"'; ?> /><label for="cb-activation" class="checkbox only-checkbox">&nbsp;</label></td>
</tr>
<tr>
<td><?php _e('Zugangstoken'); ?></td>
<td><input type="text" name="token" maxlength="46" value="<?php echo $data['token']; ?>" style="width: 300px;" /></td>
</tr>
<?php if (is_array($data['me']) && is_array($data['devices'])) { ?>
<tr>
<td><?php _e('Testbenachrichtigung'); ?></td>
<td><form action="?s=settings&amp;do=notification" method="post"><input type="submit" name="submit-test-notification" value="<?php _e('Jetzt senden'); ?>" class="button-small" /></form></td>
</tr>
<?php } ?>
</table>
</div>
<div class="inner">
<br /><br />
<strong><?php _e('Benachrichtige mich, wenn...'); ?></strong> <?php echo showHelper('7'); ?>
</div>
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td style="width: 1%;"><input type="checkbox" name="event-pi-control-version" value="checked" id="cb-event-pi-control-version"<?php if ($data['pi-control-enabled'] === true) echo ' checked="checked"'; ?> /><label for="cb-event-pi-control-version" class="checkbox only-checkbox">&nbsp;</label></td>
<td style="width: 35%;" colspan="2"><?php _e('eine neue Pi Control Version erscheint'); ?></td>
</tr>
<tr>
<td style="width: 1%;"><input type="checkbox" name="event-cpu-temperature" value="checked" id="cb-event-cpu-temperature"<?php if ($data['cpu-temperature-enabled'] === true) echo ' checked="checked"'; ?> /><label for="cb-event-cpu-temperature" class="checkbox only-checkbox">&nbsp;</label></td>
<td style="width: 35%;"><?php _e('die CPU-Temperatur einen Wert &uuml;berschreitet'); ?></td>
<td><select name="event-cpu-temperature-maximum">
<option style="background: #4CAF50;" value="40"<?php if ($data['cpu-temperature-maximum'] == 40) echo ' selected="selected"'; ?>>40 °C</option>
<option style="background: #5ABC45;" value="45"<?php if ($data['cpu-temperature-maximum'] == 45) echo ' selected="selected"'; ?>>45 °C</option>
<option style="background: #73CA3C;" value="50"<?php if ($data['cpu-temperature-maximum'] == 50) echo ' selected="selected"'; ?>>50 °C</option>
<option style="background: #96D732;" value="55"<?php if ($data['cpu-temperature-maximum'] == 55) echo ' selected="selected"'; ?>>55 °C</option>
<option style="background: #DCEB1E;" value="60"<?php if ($data['cpu-temperature-maximum'] == 60) echo ' selected="selected"'; ?>>60 °C</option>
<option style="background: #FFC107;" value="65"<?php if ($data['cpu-temperature-maximum'] == 65) echo ' selected="selected"'; ?>>65 °C</option>
<option style="background: #F89613;" value="70"<?php if ($data['cpu-temperature-maximum'] == 70) echo ' selected="selected"'; ?>>70 °C</option>
<option style="background: #F2711F;" value="75"<?php if ($data['cpu-temperature-maximum'] == 75) echo ' selected="selected"'; ?>>75 °C</option>
<option style="background: #EE5C27;" value="80"<?php if ($data['cpu-temperature-maximum'] == 80) echo ' selected="selected"'; ?>>80 °C</option>
<option style="background: #E9492E;" value="85"<?php if ($data['cpu-temperature-maximum'] == 85) echo ' selected="selected"'; ?>>85 °C</option>
<option style="background: #E53935;" value="90"<?php if ($data['cpu-temperature-maximum'] == 90) echo ' selected="selected"'; ?>>90 °C</option>
</select></td>
</tr>
<tr>
<td style="width: 1%;"><input type="checkbox" name="event-memory-used" value="checked" id="cb-event-memory-used"<?php if ($data['memory-used-enabled'] === true) echo ' checked="checked"'; ?> /><label for="cb-event-memory-used" class="checkbox only-checkbox">&nbsp;</label></td>
<td style="width: 35%;"><?php _e('der Speicherverbrauch (Gesamtspeicher) einen Wert &uuml;berschreitet'); ?></td>
<td><input type="text" name="event-memory-used-text" style="width: 30px !important;" maxlength="3" value="<?php echo $data['memory-used-limit']; ?>" /> %</td>
</tr>
</table>
</div>
<div class="inner-end">
<input type="submit" name="submit" value="<?php _e('Speichern'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,86 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<script type="text/javascript" src="public_html/js/settings.overview.weather.js"></script>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Einstellungen zur &Uuml;bersicht'); ?></span>
<?php showGoBackIcon('?s=overview'); ?>
</div>
<form action="?s=settings&amp;do=overview" method="post">
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Intervall &Uuml;bersicht-Aktualisierung'); ?></td>
<td><input type="text" name="overview-interval" maxlength="4" style="width: 50px;" value="<?php echo $data['main-overview-interval']; ?>" /> <?php _e('Sekunden'); ?></td>
</tr>
<tr>
<td><?php _e('Zeige "Angeschlossene Ger&auml;te"'); ?></td>
<td><input type="checkbox" id="cb-show-devices" name="show-devices" value="checked"<?php if ($data['main-show-devices'] == 'true') echo ' checked="checked"'; ?> /><label for="cb-show-devices" class="checkbox only-checkbox">&nbsp;</label> <span class="small-info"><?php _e('Das aktivieren verursacht eine l&auml;ngere Ladezeit der &Uuml;bersicht.'); ?></span></td>
</tr>
</table>
</div>
<div class="inner-end">
<input type="submit" name="submit-main" value="<?php _e('Speichern'); ?>" />
</div>
</form>
</div>
<div class="box">
<div class="inner-header">
<span><?php _e('Wetter'); ?></span>
</div>
<form action="?s=settings&amp;do=overview" method="post">
<div class="inner-table overflow-auto">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Aktivieren'); ?></td>
<td colspan="2"><input type="checkbox" name="weather-activation" id="cb-weather" value="checked"<?php if ($data['weather-activation'] === true) echo ' checked="checked"'; ?> /><label for="cb-weather" class="checkbox only-checkbox">&nbsp;</label></td>
</tr>
<tr>
<td><?php _e('Dienst'); ?></td>
<td><select name="weather-service">
<optgroup label="<?php _e('Ohne API-Key'); ?>">
<option value="yahoo"<?php if ($data['weather-service'] == 'yahoo') echo ' selected="selected"'; ?> data-url="https://www.yahoo.com/news/weather">Yahoo Weather</option>
<option value="yr"<?php if ($data['weather-service'] == 'yr') echo ' selected="selected"'; ?> data-url="https://www.yr.no/">Yr</option>
</optgroup>
<optgroup label="<?php _e('Mit API-Key'); ?>">
<option value="darksky"<?php if ($data['weather-service'] == 'darksky') echo ' selected="selected"'; ?> data-url="https://darksky.net/">Dark Sky</option>
<option value="openweathermap"<?php if ($data['weather-service'] == 'openweathermap') echo ' selected="selected"'; ?> data-url="https://openweathermap.org/">OpenWeatherMap</option>
<option value="wunderground"<?php if ($data['weather-service'] == 'wunderground') echo ' selected="selected"'; ?> data-url="https://www.wunderground.com/">Wunderground</option>
</optgroup>
</select></td>
<td><input type="text" name="weather-service-token" value="<?php echo $data['weather-service-token']; ?>" placeholder="API-Key" maxlength="32"<?php if ($data['weather-service'] == 'yahoo') echo ' style="display: none;"'; ?> /> <a href="#" class="weather-service-link button" target="_blank"><?php _e('Zum Anbieter'); ?></a></td>
</tr>
<tr>
<td><?php _e('Standort'); ?></td>
<td style="width: 100px; padding-left: 32px;"><?php _e('Land'); ?></td>
<td><select name="weather-location-country">
<option value="germany"<?php if ($data['weather-country'] == 'germany') echo ' selected="selected"'; ?>><?php _e('Deutschland'); ?></option>
<option value="austria"<?php if ($data['weather-country'] == 'austria') echo ' selected="selected"'; ?>><?php _e('&Ouml;sterreich'); ?></option>
<option value="swiss"<?php if ($data['weather-country'] == 'swiss') echo ' selected="selected"'; ?>><?php _e('Schweiz'); ?></option>
<option value="uk"<?php if ($data['weather-country'] == 'uk') echo ' selected="selected"'; ?>><?php _e('Großbritannien'); ?></option>
</select> <?php if (is_array($data['weather-info'])) echo $data['weather-info']['city'].', '.$data['weather-info']['country']; elseif ($data['weather-info'] == 1) echo '<strong class="red">'._t('Server nicht erreichbar!').'</strong>'; ?></td>
</tr>
<tr class="weather-location-type-postcode">
<td></td>
<td><input type="radio" name="weather-location-type" id="cb-weather-location-postcode" value="postcode"<?php if ($data['weather-type'] == 'postcode') echo ' checked="checked"'; ?> /><label for="cb-weather-location-postcode" class="radio"><?php _e('Postleitzahl'); ?></label></td>
<td><input type="text" name="weather-location-postcode-text" value="<?php echo $data['weather-postcode']; ?>" /></td>
</tr>
<tr class="weather-location-type-city">
<td></td>
<td><input type="radio" name="weather-location-type" id="cb-weather-location-city" value="city"<?php if ($data['weather-type'] == 'city') echo ' checked="checked"'; ?> /><label for="cb-weather-location-city" class="radio"><?php _e('Stadt'); ?></label></td>
<td><input type="text" name="weather-location-city-text" value="<?php echo $data['weather-city']; ?>" /></td>
</tr>
<tr class="weather-location-type-coordinates">
<td></td>
<td><input type="radio" name="weather-location-type" id="cb-weather-location-coordinates" value="coordinates"<?php if ($data['weather-type'] == 'coordinates') echo ' checked="checked"'; ?> /><label for="cb-weather-location-coordinates" class="radio"><?php _e('Koordinaten'); ?></label></td>
<td><?php _e('Breitengrad'); ?> <input type="text" name="weather-location-coordinates-latitude-text" value="<?php echo $data['weather-coordinates-latitude']; ?>" /><br />
<?php _e('L&auml;ngengrad'); ?> <input type="text" name="weather-location-coordinates-longitude-text" value="<?php echo $data['weather-coordinates-longitude']; ?>" /></td>
</tr>
</table>
</div>
<div class="inner-end">
<input type="submit" name="submit-weather" value="<?php _e('Speichern'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,126 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<script type="text/javascript" src="public_html/js/settings.pi-control.theme.js"></script>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Einstellungen zum Pi Control'); ?></span>
<?php showGoBackIcon('?s=settings'); ?>
</div>
<form action="?s=settings&amp;do=pi-control" method="post">
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Theme-Farbe'); ?></td>
<td><input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'red') echo ' checked="checked"'; ?> value="red" id="rb-red" /><label for="rb-red" class="radio only-radio settings-pi-control-theme-color-red">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'pink') echo ' checked="checked"'; ?> value="pink" id="rb-pink" /><label for="rb-pink" class="radio only-radio settings-pi-control-theme-color-pink">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'purple') echo ' checked="checked"'; ?> value="purple" id="rb-purple" /><label for="rb-purple" class="radio only-radio settings-pi-control-theme-color-purple">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'deepPurple') echo ' checked="checked"'; ?> value="deepPurple" id="rb-deepPurple" /><label for="rb-deepPurple" class="radio only-radio settings-pi-control-theme-color-deepPurple">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'indigo') echo ' checked="checked"'; ?> value="indigo" id="rb-indigo" /><label for="rb-indigo" class="radio only-radio settings-pi-control-theme-color-indigo">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'blue') echo ' checked="checked"'; ?> value="blue" id="rb-blue" /><label for="rb-blue" class="radio only-radio settings-pi-control-theme-color-blue">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'lightBlue') echo ' checked="checked"'; ?> value="lightBlue" id="rb-lightBlue" /><label for="rb-lightBlue" class="radio only-radio settings-pi-control-theme-color-lightBlue">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'cyan') echo ' checked="checked"'; ?> value="cyan" id="rb-cyan" /><label for="rb-cyan" class="radio only-radio settings-pi-control-theme-color-cyan">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'teal') echo ' checked="checked"'; ?> value="teal" id="rb-teal" /><label for="rb-teal" class="radio only-radio settings-pi-control-theme-color-teal">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'green') echo ' checked="checked"'; ?> value="green" id="rb-green" /><label for="rb-green" class="radio only-radio settings-pi-control-theme-color-green">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'lightGreen') echo ' checked="checked"'; ?> value="lightGreen" id="rb-lightGreen" /><label for="rb-lightGreen" class="radio only-radio settings-pi-control-theme-color-lightGreen">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'lime') echo ' checked="checked"'; ?> value="lime" id="rb-lime" /><label for="rb-lime" class="radio only-radio settings-pi-control-theme-color-lime">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'yellow') echo ' checked="checked"'; ?> value="yellow" id="rb-yellow" /><label for="rb-yellow" class="radio only-radio settings-pi-control-theme-color-yellow">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'amber') echo ' checked="checked"'; ?> value="amber" id="rb-amber" /><label for="rb-amber" class="radio only-radio settings-pi-control-theme-color-amber">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'orange') echo ' checked="checked"'; ?> value="orange" id="rb-orange" /><label for="rb-orange" class="radio only-radio settings-pi-control-theme-color-orange">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'deepOrange') echo ' checked="checked"'; ?> value="deepOrange" id="rb-deepOrange" /><label for="rb-deepOrange" class="radio only-radio settings-pi-control-theme-color-deepOrange">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'brown') echo ' checked="checked"'; ?> value="brown" id="rb-brown" /><label for="rb-brown" class="radio only-radio settings-pi-control-theme-color-brown">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'grey') echo ' checked="checked"'; ?> value="grey" id="rb-grey" /><label for="rb-grey" class="radio only-radio settings-pi-control-theme-color-grey">&nbsp;</label>
<input type="radio" name="theme-color"<?php if ($data['main-theme-color'] == 'blueGrey') echo ' checked="checked"'; ?> value="blueGrey" id="rb-blueGrey" /><label for="rb-blueGrey" class="radio only-radio settings-pi-control-theme-color-blueGrey">&nbsp;</label></td>
</tr>
<tr>
<td><?php _e('Bezeichnung'); ?></td>
<td><input type="text" name="pi-control-label"<?php echo ' value="'.$data['main-pi-control-label'].'"'; ?> maxlength="32" /> <span class="small-info"><?php _e('Bennene dein Pi Control, um es in Benachrichtigungen besser identifizieren zu k&ouml;nnen.'); ?></span></td>
</tr>
<tr>
<td><?php _e('Sprache'); ?></td>
<td><select name="pi-control-language">
<option value="de"<?php if ($data['main-pi-control-language'] == 'de') echo ' selected="selected"'; ?>><?php _e('Deutsch'); ?></option>
<option value="en"<?php if ($data['main-pi-control-language'] == 'en') echo ' selected="selected"'; ?>><?php _e('Englisch'); ?></option>
</select></td>
</tr>
<tr>
<td><?php _e('Infoanzeige'); ?></td>
<td><select name="pi-control-header-info">
<option value="disable"<?php if ($data['main-pi-control-header-info'] == 'disable') echo ' selected="selected"'; ?>><?php _e('Deaktivieren'); ?></option>
<option value="label"<?php if ($data['main-pi-control-header-info'] == 'label') echo ' selected="selected"'; ?>><?php _e('Bezeichnung'); ?></option>
<option value="label-ip"<?php if ($data['main-pi-control-header-info'] == 'label-ip') echo ' selected="selected"'; ?>><?php echo _t('Bezeichnung').' ('._t('IP-Adresse').')'; ?></option>
<option value="label-hostname"<?php if ($data['main-pi-control-header-info'] == 'label-hostname') echo ' selected="selected"'; ?>><?php echo _t('Bezeichnung').' ('._t('Hostname').')'; ?></option>
<option value="ip"<?php if ($data['main-pi-control-header-info'] == 'ip') echo ' selected="selected"'; ?>><?php _e('IP-Adresse'); ?></option>
<option value="hostname"<?php if ($data['main-pi-control-header-info'] == 'hostname') echo ' selected="selected"'; ?>><?php _e('Hostname'); ?></option>
</select> <span class="small-info"><?php _e('W&auml;hle die Darstellung f&uuml;r die Infoanzeige.'); ?></span></td>
</tr>
<tr>
<td><?php _e('Externer Zugriff'); ?></td>
<td><input type="checkbox" id="cb-external-access" name="external-access" value="checked"<?php if ($data['main-external-access'] == 'true') echo ' checked="checked"'; ?> /><label for="cb-external-access" class="checkbox only-checkbox">&nbsp;</label> <span class="small-info"><?php _e('Auch außerhalb des lokalen Netzwerk erreichbar? Ggf. an Port-Weiterleitung denken.'); ?></span> <?php echo showHelper('6'); ?></td>
</tr>
</table>
</div>
<div class="inner-end">
<input type="submit" name="submit-main" value="<?php _e('Speichern'); ?>" />
</div>
</form>
</div>
<div class="box">
<div class="inner-header">
<span><?php _e('Temperatur&uuml;berwachung'); ?></span>
</div>
<div class="inner">
<?php _e('Aktiviere diese Option, um von deinem Raspberry Pi, beim &Uuml;berschreiten einer bestimmten Temperatur, benachrichtigt zu werden. F&uuml;r diesen Fall lassen sich auch spezifische Verhalten festlegen.'); ?>
</div>
<form action="?s=settings&amp;do=pi-control" method="post">
<div class="inner-table overflow-auto">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Aktivieren'); ?></td>
<td colspan="2"><input type="checkbox" name="temperature-activation" id="cb-temperature" value="checked"<?php if ($data['temperature-activation'] === true) echo ' checked="checked"'; ?> /><label for="cb-temperature" class="checkbox only-checkbox">&nbsp;</label><?php if (!empty($data['temperature-last-execution'])) { ?><strong class="red"><?php _e('Pausiert f&uuml;r %s', $data['temperature-last-execution']); ?></strong><?php } ?></td>
</tr>
<tr>
<td><?php _e('H&ouml;chsttemperatur'); ?></td>
<td colspan="2"><select name="temperature-maximum">
<option style="background: #4CAF50;" value="40"<?php if ($data['temperature-maximum'] == 40) echo ' selected="selected"'; ?>>40 °C</option>
<option style="background: #5ABC45;" value="45"<?php if ($data['temperature-maximum'] == 45) echo ' selected="selected"'; ?>>45 °C</option>
<option style="background: #73CA3C;" value="50"<?php if ($data['temperature-maximum'] == 50) echo ' selected="selected"'; ?>>50 °C</option>
<option style="background: #96D732;" value="55"<?php if ($data['temperature-maximum'] == 55) echo ' selected="selected"'; ?>>55 °C</option>
<option style="background: #DCEB1E;" value="60"<?php if ($data['temperature-maximum'] == 60) echo ' selected="selected"'; ?>>60 °C</option>
<option style="background: #FFC107;" value="65"<?php if ($data['temperature-maximum'] == 65) echo ' selected="selected"'; ?>>65 °C</option>
<option style="background: #F89613;" value="70"<?php if ($data['temperature-maximum'] == 70) echo ' selected="selected"'; ?>>70 °C</option>
<option style="background: #F2711F;" value="75"<?php if ($data['temperature-maximum'] == 75) echo ' selected="selected"'; ?>>75 °C</option>
<option style="background: #EE5C27;" value="80"<?php if ($data['temperature-maximum'] == 80) echo ' selected="selected"'; ?>>80 °C</option>
<option style="background: #E9492E;" value="85"<?php if ($data['temperature-maximum'] == 85) echo ' selected="selected"'; ?>>85 °C</option>
<option style="background: #E53935;" value="90"<?php if ($data['temperature-maximum'] == 90) echo ' selected="selected"'; ?>>90 °C</option>
</select></td>
</tr>
<tr>
<td><?php _e('Aktion'); ?></td>
<td style="width: 130px;"><input type="checkbox" name="temperature-action-email" id="cb-temperature-email" value="checked"<?php if ($data['temperature-action-email'] == true) echo ' checked="checked"'; ?> /><label for="cb-temperature-email" class="checkbox"><?php _e('E-Mail senden'); ?></label></td>
<td><input type="text" name="temperature-action-email-text"<?php echo ' value="'.$data['temperature-action-email-text'].'"'; ?> />
<?php if ($data['temperature-action-email-text'] != '') { echo ($data['temperature-action-email-status'] == 0) ? '<form action="?s=settings&amp;do=pi-control" method="post"><input type="submit" name="submit-temperature-confirmation" value="'._t('Best&auml;tigen').'" /></form> <a href="?s=settings&amp;do=pi-control&amp;mail_check" class="button">'._t('&Uuml;berpr&uuml;fen').'</a>' : '<strong class="green">'._t('Best&auml;tigt').'</strong>'; } ?></td>
</tr>
<tr>
<td></td>
<td><input type="checkbox" name="temperature-action-shell" id="cb-temperature-shell" value="checked"<?php if ($data['temperature-action-shell'] == true) echo ' checked="checked"'; ?> /><label for="cb-temperature-shell" class="checkbox"><?php _e('Shell Befehl'); ?></label></td>
<td><input type="text" name="temperature-action-shell-text"<?php echo ' value="'.$data['temperature-action-shell-text'].'"'; ?> /> <span class="small-info"><?php _e('Wird als %s ausgef&uuml;hrt.', $data['whoami']); ?></span></td>
</tr>
</table>
</div>
<div class="inner-end">
<input type="submit" name="submit-temperature" value="<?php _e('Speichern'); ?>" />
</div>
</form>
</div>
<div class="box">
<div class="inner-header">
<span><?php _e('Pi Control entfernen'); ?></span>
</div>
<div class="inner">
<?php _e('Wenn dir das Pi Control nicht gef&auml;llt und du es wieder entfernen m&ouml;chtest, schreib mir unten unter "Feedback" doch bitte den Grund. Somit kann ich besser auf m&ouml;gliche Probleme eingehen und Pi Control stetig verbessern.'); ?>
</div>
<div class="inner-end">
<a href="<?php echo $data['configHelp']; ?>" class="button" target="_blank"><?php _e('Anleitung zum Entfernen'); ?></a>
</div>
</div>
</div>

View File

@@ -0,0 +1,17 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Einstellungen zu Plugins - Plugin l&ouml;schen'); ?></span>
<?php showGoBackIcon('?s=settings&amp;do=plugins'); ?>
</div>
<form action="?s=settings&amp;do=plugins&amp;delete=<?php echo $data['plugin']['id']; ?>" method="post">
<div class="inner">
<?php _e('M&ouml;chtest du das Plugin <strong>%s</strong> wirklich unwiderruflich l&ouml;schen?', _t($data['plugin']['name'])); ?>
</div>
<div class="inner-end">
<input type="submit" name="submit" value="<?php _e('L&ouml;schen'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,26 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Einstellungen zu Plugins'); ?></span>
<?php showGoBackIcon('?s=plugins'); ?>
</div>
<?php $i = 0; foreach ($data['plugins'] as $plugin) { $i++; ?>
<div class="inner-table settings-plugins-table-list<?php echo ($i != count($data['plugins'])) ? ' padding-0' : ''; ?>">
<table class="table table-borderless<?php echo ($i%2 != 0) ? ' table-reverse' : ''; ?>">
<tr>
<td><strong><?php _e($plugin['name']); ?></strong><span><?php _e('Version %s', $plugin['version']['name']); ?></span></td>
<td><a href="?s=plugins&amp;id=<?php echo $plugin['id']; ?>&amp;settings" class="text-decoration-none"<?php if ($plugin['settings'] == false) echo ' style="visibility: hidden"'; ?>><span class="button button-small"><?php _e('Einstellungen'); ?></span></a>
<a href="?s=settings&amp;do=plugins&amp;status=<?php echo $plugin['id']; ?>" class="text-decoration-none"><span class="button button-small"><?php echo ($plugin['disabled'] == true) ? _t('Aktivieren') : _t('Deaktivieren'); ?></span></a>
<a href="?s=settings&amp;do=plugins&amp;delete=<?php echo $plugin['id']; ?>" class="text-decoration-none"><span class="button button-small"><?php _e('L&ouml;schen'); ?></span></a></td>
<td><?php _e($plugin['description']); ?></td>
</tr>
</table>
</div>
<?php } if (empty($data['plugins'])) { ?>
<div class="inner-info">
<div><?php _e('Es sind momentan noch keine Plugins installiert.'); ?></div>
</div>
<?php } ?>
</div>
</div>

View File

@@ -0,0 +1,38 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Einstellungen zur Statistik'); ?></span>
<?php showGoBackIcon('?s=statistic'); ?>
</div>
<div class="inner">
<?php _e('Blende nicht ben&ouml;tigte Statistiken aus, um die Ladezeiten zu verbessern und um besser den &Uuml;berblick zu behalten.'); ?>
</div>
<div class="inner-info">
<div><?php _e('Statistiken werden, unabh&auml;ngig vom Anzeigestatus, aufgezeichnet.'); ?></div>
</div>
<form action="?s=settings&amp;do=statistic" method="post">
<div class="inner-table">
<table class="table table-borderless">
<tr>
<th style="width: 5%;"></th>
<th style="width: 75%;"><?php _e('Name'); ?></th>
<th style="width: 10%;" class="table-center"><?php _e('Herunterladen'); ?></th>
<th style="width: 10%;"></th>
</tr>
<?php foreach ($data['statistics'] as $id => $statistic) { ?>
<tr>
<td align="center"><input type="checkbox" name="check[]" id="cb-<?php echo $id; ?>" value="<?php echo $id; ?>" <?php if ($statistic['visible'] == true) echo 'checked="checked"'; ?> /><label class="checkbox only-checkbox" for="cb-<?php echo $id; ?>">&nbsp;</label></td>
<td><?php echo $statistic['array']['title'] ?></td>
<td class="table-center"><a href="?s=settings&amp;do=statistic&amp;download=<?php echo $id; ?>" class="text-decoration-none"><span class="button button-small">CSV</span></a></td>
<td class="table-right"><a href="?s=settings&amp;do=statistic&amp;reset=<?php echo $id; ?>" class="text-decoration-none"><span class="button button-small"><?php _e('Zur&uuml;cksetzen'); ?></span></a></td>
</tr>
<?php } ?>
</table>
</div>
<div class="inner-end">
<input type="submit" name="submit" value="<?php _e('Speichern'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,17 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Einstellungen zur Statistik - Verlauf zur&uuml;cksetzen'); ?></span>
<?php showGoBackIcon('?s=settings&amp;do=statistic'); ?>
</div>
<form action="?s=settings&amp;do=statistic&amp;reset=<?php echo $data['log']; ?>&amp;confirm" method="post">
<div class="inner">
<?php _e('M&ouml;chtest du den Verlauf von %s wirklich zur&uuml;cksetzen?', '<strong>'.$data['label'].'</strong>'); ?>
</div>
<div class="inner-end">
<input type="submit" name="submit" value="<?php _e('Zur&uuml;cksetzen'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,93 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<script type="text/javascript" src="public_html/js/settings.troubleshooting.cron_selection.js"></script>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Problembehandlung'); ?></span>
<?php showGoBackIcon('?s=settings'); ?>
</div>
<div class="inner">
<?php _e('Die Problembehandlung kann dir bei Problemen helfen und bei Bedarf diese sogar beseitigen.'); ?>
</div>
</div>
<div class="box">
<div class="inner-header">
<span><?php _e('Dateien und Ordner'); ?></span>
</div>
<div class="inner-table overflow-auto">
<table class="table table-borderless">
<tr>
<th><?php _e('Datei'); ?> / <?php _e('Ordner'); ?></th>
<th class="table-center"><?php _e('Existiert'); ?></th>
<th class="table-center"><?php _e('Berechtigung'); ?></th>
<th class="table-center"><?php _e('Benutzer:Gruppe'); ?></th>
<th class="table-center"><?php _e('Gr&ouml;ße'); ?></th>
</tr>
<?php foreach ($data['filesFolders'] as $name => $fileFolder) { ?>
<tr>
<td class="<?php echo ($fileFolder['error'] === true) ? 'red' : 'green'; ?>"><?php echo $name; ?></td>
<td class="table-center <?php echo ($fileFolder['existsBool'] === true) ? 'green' : 'red'; ?>"><?php echo ($fileFolder['exists'] === true) ? '&#10004;' : '&#10006;'; ?></td>
<td class="table-center <?php echo ($fileFolder['permissionBool'] === true) ? 'green' : 'red'; ?>"><?php echo $fileFolder['permission']; ?></td>
<td class="table-center <?php echo ($fileFolder['userGroupBool'] === true) ? 'green' : 'red'; ?>"><?php echo $fileFolder['userGroup']; ?></td>
<td class="table-center <?php echo ($fileFolder['filesizeBool'] === true) ? 'green' : 'red'; ?>"><?php echo sizeUnit($fileFolder['filesize']); ?></td>
</tr>
<?php } ?>
</table>
</div>
<?php if ($data['filesFoldersError'] === true) { ?>
<div class="inner-end">
<a href="<?php echo $data['configHelpFilesFolders']; ?>" target="_blank" class="button"><?php _e('Anleitung zur Problembehebung'); ?></a>
</div>
<?php } ?>
</div>
<div class="box">
<div class="inner-header">
<span><?php _e('Cron f&uuml;r Pi Control'); ?></span>
</div>
<div class="inner">
<?php _e('Der Cron f&uuml;r dein Pi Control sieht folgendermaßen aus:'); ?><br /><br />
<span id="cron-entry" style="padding: 5px; background: #EFEFEF; display: inline-block; font-family: Consolas, 'Andale Mono', 'Lucida Console', 'Lucida Sans Typewriter', Monaco, 'Courier New', monospace" onDblClick="selecttxt('cron-entry')"><?php echo $data['cronEntry']; ?></span> <span class="small-info"><?php _e('Mit Doppelklick alles markieren.'); ?></span>
</div>
<div class="inner-table overflow-auto">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('In Crontab eingetragen'); ?></td>
<td class="<?php echo ($data['cronMatch'] === 1) ? 'green' : 'red'; ?>"><?php echo ($data['cronMatch'] === 1) ? '&#10004;' : '&#10006;'; ?></td>
</tr>
<tr>
<td><?php _e('PHP-CLI installiert'); ?></td>
<td class="<?php echo ($data['cronPHPCLI']) ? 'green' : 'red'; ?>"><?php echo ($data['cronPHPCLI']) ? '&#10004;' : '&#10006;'; ?></td>
</tr>
<tr>
<td><?php _e('Letzte Ausf&uuml;hrung'); ?></td>
<td class="<?php echo ($data['cronLastExecutionBool']) ? 'green' : 'red'; ?>"><?php echo $data['cronLastExecution']; ?></td>
</tr>
<tr>
<td><?php _e('Letzter Eintrag Log'); ?></td>
<td class="<?php echo ($data['cronLastExecutionLogBool']) ? 'green' : 'red'; ?>"><?php echo $data['cronLastExecutionLog']; ?></td>
</tr>
<tr>
<td><?php _e('Berechtigung'); ?></td>
<td class="<?php echo ($data['cronPermissionBool']) ? 'green' : 'red'; ?>"><?php echo $data['cronPermission']; ?></td>
</tr>
<tr>
<td><?php _e('Benutzer:Gruppe'); ?></td>
<td class="<?php echo ($data['cronUserGroupBool']) ? 'green' : 'red'; ?>"><?php echo $data['cronUserGroup']; ?></td>
</tr>
<tr>
<td><?php _e('Zeichenkodierung'); ?></td>
<td class="<?php echo ($data['cronCharacterEncodingBool']) ? 'green' : 'red'; ?>"><?php echo $data['cronCharacterEncoding']; ?></td>
</tr>
</table>
</div>
<?php if ($data['cronError'] === 1) { ?>
<div class="inner-end">
<form action="?s=settings&amp;do=troubleshooting" method="post"><input type="submit" name="cronSubmit" value="<?php _e('Problem beheben'); ?>" /></form>
</div>
<?php } elseif ($data['cronError'] === 2) { ?>
<div class="inner-end">
<a href="<?php echo $data['configHelpCron']; ?>" target="_blank" class="button"><?php _e('Anleitung zur Problembehebung'); ?></a>
</div>
<?php } ?>
</div>
</div>

View File

@@ -0,0 +1,72 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div class="sidebar order-2">
<div class="box">
<div class="inner-header">
<span><?php _e('Version'); ?></span>
</div>
<div class="inner">
<strong class="<?php echo ($data['updateStatus'] instanceof Update) ? 'red' : 'green'; ?>"><?php echo $data['configVersion']; ?></strong>
</div>
</div>
<div class="box">
<div class="inner-header">
<span><?php _e('E-Mail Benachrichtigung'); ?></span>
</div>
<div class="inner">
<?php _e('Wenn du zuk&uuml;nftig eine E-Mail bei einer neuen Version des Pi Control erhalten m&ouml;chtest, dann kannst du dich &uuml;ber den folgenden Button in die Liste eintragen.'); ?>
</div>
<div class="inner-end">
<a href="<?php echo $data['configMailUrl']; ?>" class="button" target="_blank"><?php _e('E-Mail eintragen'); ?></a>
</div>
</div>
</div>
<div class="container-600 order-1">
<div class="box">
<div class="inner-header">
<span><?php _e('Aktualisierung'); ?></span>
<?php showGoBackIcon('?s=settings'); ?>
</div>
<div class="inner">
<?php if ($data['updateStatus'] instanceof Update) { ?>
<strong class="red"><?php _e('Dein Pi Control ist nicht mehr aktuell. Version %s ist verf&uuml;gbar!', $data['updateStatus']->getName()); ?></strong><br /><br /><br />
<span class="subtitle"><?php _e('Neuerungen in Version %s', $data['updateStatus']->getName()); ?></span><br /><br />
<?php echo $data['updateStatus']->getChangelog(); ?>
<?php } elseif ($data['updateStatus'] === false) { ?>
<strong class="green"><?php _e('Dein Pi Control ist auf dem neusten Stand.'); ?></strong>
<?php } else { ?>
<strong class="red"><?php _e('Bei der Verbindung zum Server ist ein unerwarteter Fehler aufgetreten. Fehlercode: %d', $data['updateStatus']); ?></strong>
<?php } ?>
</div>
</div>
<div class="box">
<div class="inner-header">
<span><?php _e('Aktualisierung installieren'); ?></span>
</div>
<div class="inner">
<?php _e('Ist eine Aktualisierung verf&uuml;gbar, kannst du &uuml;ber folgenden Button dieses herunterladen und anschließend installieren.'); ?>
</div>
<div class="inner-end">
<form action="?s=settings&amp;do=update" method="post">
<input type="submit" name="update" value="<?php _e('Aktualisierung runterladen &amp; installieren'); ?>"<?php if (!$data['updateStatus'] instanceof Update || $data['updateError'] == true) { echo ' disabled="disabled"'; } ?> />
</form>
</div>
</div>
</div>
<div class="clear-both"></div>
<div class="order-3">
<div class="box">
<div class="inner-header">
<span><?php _e('Pi Control Beta'); ?></span>
</div>
<div class="inner">
<?php _e('Mit der Teilnahme an Pi Control Beta erh&auml;ltst du, bereits vor Ver&ouml;ffentlichung der finalen Version von Pi Control, einen ersten Einblick in kommende Funktionen und Neuerungen. Durch die Teilnahme bekommst du, neben der Aktualisierungen f&uuml;r die Beta, auch die regul&auml;ren und stabilen Aktualisierungen angeboten.<br />Du kannst jederzeit von Pi Control Beta zur&uuml;cktreten, ein Zur&uuml;ckstufen auf eine &auml;ltere/regul&auml;re Version ist allerdings nicht m&ouml;glich. Anschließend erh&auml;ltst du wieder wie gewohnt die stabilen Aktualisierungen.'); ?>
<br /><br />
<strong class="red"><?php _e('BEACHTE: W&auml;hrend der Beta kann Pi Control unerwartet Auffallen, sei es durch Fehler oder Datenverlust (nur Pi Control). Sende mir deshalb unbedingt bei Fehlern dein Feedback (siehe Unten).'); ?></strong>
</div>
<div class="inner-end">
<form action="?s=settings&amp;do=update" method="post">
<input type="submit" name="beta" value="<?php _e($data['updateStage'] == 'release' ? 'An Pi Control Beta teilnehmen' : 'Von Pi Control Beta zur&uuml;cktreten'); ?>" />
</form>
</div>
</div>
</div>

View File

@@ -0,0 +1,60 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Einstellungen zum Benutzer'); ?></span>
<?php showGoBackIcon('?s=settings'); ?>
</div>
<div class="inner-table overflow-auto">
<table class="table table-borderless">
<tr>
<th style="width: 30%;"><?php _e('Benutzername'); ?></th>
<th style="width: 20%;" class="table-center"><?php _e('Erstellt'); ?></th>
<th style="width: 20%;" class="table-center"><?php _e('Letzte Aktivit&auml;t'); ?></th>
<th style="width: 30%;"></th>
</tr>
<?php foreach ($data['allUsers'] as $key => $user) { ?>
<tr>
<td><?php echo $user['username']; ?></td>
<td class="table-center"><?php echo date('d.m.Y H:i', $user['created']); ?></td>
<td class="table-center"><?php echo ($user['last_login'] == 0) ? _t('Noch nie angemeldet') : date('d.m.Y H:i', $user['last_login']); ?></td>
<td class="table-right"><a href="?s=settings&amp;do=user&amp;edit=<?php echo substr($key, 5); ?>" class="button button-small"><?php _e('Bearbeiten'); ?></a> <a href="?s=settings&amp;do=user&amp;delete=<?php echo substr($key, 5); ?>" class="button button-small"><?php _e('L&ouml;schen'); ?></a></td>
</tr>
<?php } ?>
</table>
</div>
<div class="inner-end">
<a href="?s=settings&amp;do=user&amp;add" class="button"><?php _e('Hinzuf&uuml;gen'); ?></a>
</div>
</div>
<div class="box">
<div class="inner-header">
<span><?php _e('Angemeldete Benutzer'); ?></span>
</div>
<div class="inner-info">
<div><?php _e('Benutzer ohne fester Anmeldung werden nach 12 Stunden Inaktivit&auml;t automatisch abgemeldet.'); ?></div>
</div>
<div class="inner-table overflow-auto">
<form action="?s=settings&amp;do=user" method="post">
<table class="table table-borderless">
<tr>
<th style="width: 30%;"><?php _e('Benutzername'); ?></th>
<th style="width: 20%;" class="table-center"><?php _e('Angemeldet am'); ?></th>
<th style="width: 20%;" class="table-center"><?php _e('Angemeldet von'); ?></th>
<th style="width: 20%;" class="table-center"><?php _e('Angemeldet bleiben'); ?></th>
<th style="width: 10%;"></th>
</tr>
<?php foreach ($data['loggedInUsers'] as $key => $user) { ?>
<tr>
<td><?php echo $user['username']; if ($user['current_online']) { ?> <strong class="green">[<?php _e('Aktuelle Sitzung'); ?>] </strong><?php } ?></td>
<td class="table-center"><?php echo date('d.m.Y H:i', $user['created']); ?></td>
<td class="table-center"><?php echo $user['address']; ?></td>
<td class="table-center"><?php echo ($user['remember_me'] === true) ? _t('Ja') : _t('Nein'); ?></td>
<td class="table-right"><button class="button-small" name="logout" value="<?php echo substr($key, 6); ?>"><?php _e('Abmelden'); ?></button></td>
</tr>
<?php } ?>
</table>
</form>
</div>
</div>
</div>

View File

@@ -0,0 +1,30 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Einstellungen zum Benutzer - Benutzer hinzuf&uuml;gen'); ?></span>
<?php showGoBackIcon('?s=settings&amp;do=user'); ?>
</div>
<form action="?s=settings&amp;do=user&amp;add" method="post">
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Benutzername'); ?></td>
<td><input type="text" name="username" maxlength="32" /></td>
</tr>
<tr>
<td><?php _e('Passwort'); ?></td>
<td><input type="password" name="password" maxlength="64" /></td>
</tr>
<tr>
<td><?php _e('Passwort wiederholen'); ?></td>
<td><input type="password" name="password2" maxlength="64" /></td>
</tr>
</table>
</div>
<div class="inner-end">
<input type="submit" name="submit" value="<?php _e('Hinzuf&uuml;gen'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,29 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Einstellungen zum Benutzer - Benutzer l&ouml;schen'); ?></span>
<?php showGoBackIcon('?s=settings&amp;do=user'); ?>
</div>
<form action="?s=settings&amp;do=user&amp;delete=<?php echo $data['lowerUsername']; ?>" method="post">
<div class="inner">
<?php _e('Bitte gebe zur Best&auml;tigung das Passwort des Benutzers an.'); ?>
</div>
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Benutzername'); ?></td>
<td><?php echo $data['username']; ?></td>
</tr>
<tr>
<td><?php _e('Passwort'); ?></td>
<td><input type="password" name="password" maxlength="64" /></td>
</tr>
</table>
</div>
<div class="inner-end">
<input type="submit" name="submit" value="<?php _e('L&ouml;schen'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,34 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Einstellungen zum Benutzer - Benutzer bearbeiten'); ?></span>
<?php showGoBackIcon('?s=settings&amp;do=user'); ?>
</div>
<form action="?s=settings&amp;do=user&amp;edit=<?php echo $data['lowerUsername']; ?>" method="post">
<div class="inner-table">
<table class="table table-borderless table-form">
<tr>
<td><?php _e('Benutzername'); ?></td>
<td><?php echo $data['username']; ?></td>
</tr>
<tr>
<td><?php _e('Altes Passwort'); ?></td>
<td><input type="password" name="passwordOld" maxlength="64" /></td>
</tr>
<tr>
<td><?php _e('Neues Passwort'); ?></td>
<td><input type="password" name="passwordNew" maxlength="64" /></td>
</tr>
<tr>
<td><?php _e('Neues Passwort wiederholen'); ?></td>
<td><input type="password" name="passwordNew2" maxlength="64" /></td>
</tr>
</table>
</div>
<div class="inner-end">
<input type="submit" name="submit" value="<?php _e('Speichern'); ?>" />
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,11 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Raspberry Pi wird heruntergefahren'); ?></span>
</div>
<div class="inner">
<?php _e('Sollte dein Raspberry Pi wieder hochgefahren sein, kommst du hier <a href="%s">zur&uuml;ck zur &Uuml;bersicht.</a>', $data['overviewUrl']); ?>
</div>
</div>
</div>

View File

@@ -0,0 +1,50 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta name="apple-mobile-web-app-title" content="Pi Control" />
<meta name="application-name" content="Pi Control" />
<meta name="theme-color" content="#1565C0" />
<link type="text/css" rel="stylesheet" href="public_html/css/style.css.php" />
<link rel="apple-touch-icon" sizes="57x57" href="/public_html/img/favicon/apple-touch-icon-57x57.png" />
<link rel="apple-touch-icon" sizes="120x120" href="/public_html/img/favicon/apple-touch-icon-120x120.png" />
<link rel="apple-touch-icon" sizes="152x152" href="/public_html/img/favicon/apple-touch-icon-152x152.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/public_html/img/favicon/apple-touch-icon-180x180.png" />
<link rel="icon" type="image/png" href="public_html/img/favicon/android-chrome-192x192.png" sizes="192x192" />
<link rel="icon" type="image/png" href="public_html/img/favicon/favicon-96x96.png" sizes="96x96" />
<link rel="manifest" href="public_html/img/favicon/manifest.json" />
<link rel="mask-icon" href="public_html/img/favicon/safari-pinned-tab.svg" color="#1975d0" />
<link rel="shortcut icon" href="public_html/img/favicon/favicon.ico" />
<title>Pi Control</title>
</head>
<body>
<!-- Header -->
<div id="header">
<input type="checkbox" id="header-mobile" />
<div id="inner-header">
<label for="header-mobile"></label>
<a href="?s=overview" id="header-logo"><img src="public_html/img/logo.svg" /></a>
<div id="header-navi">
</div>
</div>
</div>
<!-- Content -->
<div id="content" style="min-height: auto;">
<div>
<div class="box" style="margin: 0;">
<?php echo $data['content']; ?>
</div>
</div>
</div>
<!-- Footer -->
<div id="footer" style="background: none; border: none; min-height: auto;">
<div id="footer-inner">
<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</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,88 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<!-- Container -->
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('SSH-Login'); ?></span>
</div>
<?php if ($data['logged_in'] === false) { ?>
<form action="?s=ssh_login" method="post">
<div class="inner">
<strong class="red"><?php _e('Du bist noch nicht angemeldet. Dadurch kannst du einige Funktionen nicht nutzen.'); ?></strong>
</div>
<input type="radio" id="ssh-login-passwd" name="ssh-login" value="password" checked="checked" />
<label for="ssh-login-passwd">
<div class="inner-table">
<div class="ssh-login-table-clickable-area"></div>
<table class="table table-borderless">
<tr>
<th colspan="2"><strong><?php _e('Anmeldung &uuml;ber ein Passwort'); ?></strong><span> [<?php _e('Klicken zum aktivieren'); ?>]</span></th>
</tr>
<tr>
<td style="width: 30%;"><strong><?php _e('SSH-Port'); ?></strong></td>
<td><input type="text" name="port" style="width: 50px;" value="<?php echo $data['ssh_info']['port']; ?>" maxlength="5" /> <span class="small-info"><?php _e('Standard: %d', 22); ?></span></td>
</tr>
<tr>
<td><strong><?php _e('SSH-Benutzername'); ?></strong></td>
<td><input type="text" name="username" style="width: 40%;" value="<?php echo $data['ssh_info']['username']; ?>" /></td>
</tr>
<tr>
<td><strong><?php _e('SSH-Passwort'); ?></strong></td>
<td><input type="password" name="password" style="width: 40%;" /></td>
</tr>
<tr>
<td><strong><?php _e('SSH-Login speichern?'); ?></strong></td>
<td><input type="checkbox" name="remember-me" value="checked" id="ssh-login-passwd-checkbox" /><label for="ssh-login-passwd-checkbox" class="checkbox only-checkbox">&nbsp;</label> <span class="small_info"><?php _e('Speichert das Passwort, damit nicht nach jeder Session neu angemeldet werden muss.'); ?></span></td>
</tr>
</table>
</div>
</label>
<div class="inner">
<div class="divider"><div></div><div><?php _e('ODER'); ?></div></div>
</div>
<input type="radio" id="ssh-login-pubkey" name="ssh-login" value="publickey" />
<label for="ssh-login-pubkey">
<div class="inner-table">
<div class="ssh-login-table-clickable-area"></div>
<table class="table table-borderless">
<tr>
<th colspan="2"><strong><?php _e('Anmeldung &uuml;ber einen Publickey'); ?></strong><span> [<?php _e('Klicken zum aktivieren'); ?>]</span></th>
</tr>
<tr>
<td style="width: 30%;"><strong><?php _e('SSH-Port'); ?></strong></td>
<td><input type="text" name="port_" style="width: 50px;" value="<?php echo $data['ssh_info']['port']; ?>" maxlength="5" /> <span class="small-info"><?php _e('Standard: 22'); ?></span></td>
</tr>
<tr>
<td><strong><?php _e('SSH-Benutzername'); ?></strong></td>
<td><input type="text" name="username_" style="width: 40%;" value="<?php echo $data['ssh_info']['username']; ?>" /></td>
</tr>
<tr>
<td><strong><?php _e('SSH-Privatekey'); ?></strong></td>
<td><textarea name="privatekey_" style="width: 80%; height: 100px;"></textarea></td>
</tr>
<tr>
<td><strong><?php _e('Privatekey-Passwort (falls n&ouml;tig)'); ?></strong></td>
<td><input type="password" name="password_" style="width: 40%;" /></td>
</tr>
<tr>
<td><strong><?php _e('SSH-Login speichern?'); ?></strong></td>
<td><input type="checkbox" name="remember-me_" value="checked" id="ssh-login-pubkey-checkbox" /><label for="ssh-login-pubkey-checkbox" class="checkbox only-checkbox">&nbsp;</label> <span class="small_info"><?php _e('Speichert das Passwort, damit nicht nach jeder Session neu angemeldet werden muss.'); ?></span></td>
</tr>
</table>
</div>
</label>
<div class="inner-end">
<input type="submit" name="submit" value="<?php _e('Anmelden'); ?>" />
</div>
</form>
<?php } else { ?>
<div class="inner">
<strong class="green"><?php _e('Du bist bereits angemeldet mit dem Benutzer %s.', $data['ssh_info']['username']); ?></strong>
</div>
<div class="inner-end">
<a href="?s=ssh_login&amp;logout"><button><?php _e('Abmelden'); ?></button></a>
</div>
<?php } ?>
</div>
</div>
<div class="clear_both"></div>

View File

@@ -0,0 +1,78 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<noscript>
<div class="box error">
<div>
<div class="inner-header">
<span><?php _e('JavaScript deaktiviert') ?></span>
</div>
<div class="inner">
<?php _e('Bitte aktiviere JavaScript, um dir die Statistiken anzusehen.'); ?>
</div>
</div>
</div>
</noscript>
<div class="sidebar order-2">
<div class="box">
<div class="inner-header">
<span><?php _e('Zeitraum'); ?></span>
</div>
<div class="inner">
<select id="range" onchange="changeRange(this)">
<option name="" value="seven"><?php _e('Alles (7 Tage)'); ?></option>
<option name="" value="six"><?php _e('Letzten 6 Tage'); ?></option>
<option name="" value="five"><?php _e('Letzten 5 Tage'); ?></option>
<option name="" value="four"><?php _e('Letzten 4 Tage'); ?></option>
<option name="" value="three"><?php _e('Letzten 3 Tage'); ?></option>
<option name="" value="two"><?php _e('Letzten 2 Tage'); ?></option>
<option name="" value="one"><?php _e('Letzten 24 Stunden'); ?></option>
</select>
</div>
</div>
</div>
<!-- Container -->
<div class="container-600 order-1">
<div class="box">
<div class="inner-header">
<span><?php _e('Statistik'); ?></span>
<?php showSettingsIcon('?s=settings&amp;do=statistic'); ?>
</div>
<?php if ($data['msgInfo'] == 'invisible') { ?>
<div class="inner-info">
<div><?php _e('Alle Statistiken sind ausgeblendet!'); ?></div>
</div>
<?php } elseif ($data['msgInfo'] == 'empty') { ?>
<div class="inner-info">
<div><?php _e('Es sind noch keine Statistiken verf&uuml;gbar. Werte werden alle 5 Minuten eingetragen.'); ?></div>
</div>
<?php } ?>
</div>
</div>
<div class="clear-both"></div>
<div class="order-3">
<?php foreach ($data['statistics'] as $statistic) { ?>
<div class="box google-controls" id="dashboard_log_<?php echo $statistic['array']['id']; ?>">
<div class="inner-header">
<span><?php _e($statistic['array']['title']); ?></span>
</div>
<div class="inner text-center padding-0" id="chart_log_<?php echo $statistic['array']['id']; ?>">
<img src="public_html/img/loader.svg" style="margin: 20px;" />
</div>
<div class="inner text-center" id="chart_control_log_<?php echo $statistic['array']['id']; ?>">
</div>
</div>
<?php } ?>
</div>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="public_html/js/statistic_builder.js"></script>
<script type="text/javascript">
google.load('visualization', '51', {
packages: ['controls']
});
google.setOnLoadCallback(createTable);
function createTable() {
<?php foreach ($data['statistics'] as $statistic) { ?>
statisticBuilder(<?php echo $statistic['json']; ?>, null);
<?php } ?>
}
</script>

View File

@@ -0,0 +1,55 @@
<?php if (!defined('PICONTROL')) exit(); ?>
<style>
.system_msg{color: #01a7db; font-style: italic;}
.user_name{font-weight:bold;}
.user_message{color: #FFFFFF;}
pre { margin: 0; }
</style>
<script language="javascript" type="text/javascript">
var ip = '<?php echo $_SERVER['SERVER_ADDR']; ?>';
var port = <?php echo $data['port']; ?>;
var cookie = '<?php echo $data['cookie']; ?>';
</script>
<script language="javascript" type="text/javascript" src="public_html/js/terminal.websocket.js"></script>
<div class="sidebar">
<div class="box">
<div class="inner-header">
<span><?php _e('Status'); ?></span>
</div>
<div class="inner">
<strong id="status"><?php _e('Lade...'); ?></strong><br /><br />
<select name="terminal">
<?php foreach ($data['ports'] as $index => $port) { ?>
<option style="background: <?php echo ($port['active'] === true) ? '#73CA3C' : '#E9492E'; ?>;" value="<?php echo $port['port']; ?>"<?php if ($data['port'] == $port['port']) echo ' selected="selected"'; ?>><?php _e('Terminal %d (%s)', $index+1, ($port['active'] === true) ? _t('Online') : _t('Offline')); ?></option>
<?php } ?>
</select>
<div id="frame"></div>
</div>
<div class="inner-end">
<input type="button" name="close" value="<?php _e('Verbindung trennen'); ?>" />
</div>
</div>
</div>
<!-- Container -->
<div class="container-600">
<div class="box">
<div class="inner-header">
<span><?php _e('Terminal'); ?></span>
</div>
<div class="inner">
<?php _e('Das Terminal bietet dir die M&ouml;glichkeit, einfache Befehle direkt im Pi Control auszuf&uuml;hren.'); ?>
</div>
<div class="inner overflow-auto" id="terminal" style="background: #000000; color: #CCCCCC; padding: 5px; font-family: monospace; height: 360px;"></div>
<div class="inner" style="padding-top: 15px;">
<table style="width: 100%;">
<tr>
<td style="width: 5%;"><?php _e('Befehl: '); ?></td>
<td><input type="text" name="command" id="command" style="width: 100%; box-sizing: border-box;" /></td>
<td style="width: 5%;"><input type="button" id="submit" value="<?php _e('Abschicken'); ?>" /></td>
</tr>
</table>
<br /><input type="button" id="cancel" value="Strg + C" />
</div>
</div>
</div>
<div class="clear_both"></div>

View File

@@ -0,0 +1,30 @@
<div>
<div class="box">
<div class="inner-header">
<span><?php _e('Benutzer/Gruppen'); ?></span>
<?php if ($data['users_cache_hint'] != NULL) echo $data['users_cache_hint']; ?>
</div>
<div class="inner-table overflow-auto">
<table class="table table-borderless">
<tr>
<th style="width: 30%;"><?php _e('Benutzername'); ?></th>
<th style="width: 15%;" class="table-center"><?php _e('Benutzer-ID'); ?></th>
<th style="width: 15%;" class="table-center"><?php _e('Gruppen-ID'); ?></th>
<th style="width: 8%;" class="table-center"><?php _e('Port'); ?></th>
<th style="width: 17%;" class="table-center"><?php _e('Letzte Anmeldung'); ?></th>
<th style="width: 15%;" class="table-center"><?php _e('Von'); ?></th>
</tr>
<?php foreach ($data['all_users'] as $value) { ?>
<tr>
<td><?php if ($value['isLoggedIn'] === true) { ?><strong class="green">[<?php _e('Angemeldet'); ?>] </strong><?php } echo $value['username']; if ($value['isLoggedIn'] === true) { ?><div style="color: #666666; margin-top: 3px; margin-left: 20px;"><?php foreach ($value['loggedIn'] as $value2) { _e('An %s am %s um %s von %s', $value2['port'], formatTime($value2['lastLogin'], 'd.m.Y'), formatTime($value2['lastLogin'], 'H:i'), '<a href="http://'.$value2['lastLoginAddress'].'" target="_blank">'.$value2['lastLoginAddress'].'</a>'); ?><br /><?php } ?></div><?php } ?></td>
<td valign="top" class="table-center"><?php echo $value['userId']; ?></td>
<td valign="top" class="table-center"><?php echo $value['groupId']; ?></td>
<td valign="top" class="table-center"><?php echo ($value['port'] == '') ? '-' : $value['port']; ?></td>
<td valign="top" class="table-center"><?php if ($value['lastLogin'] == 0) { _e('Noch nie angemeldet'); } else { echo formatTime($value['lastLogin']); } ?></td>
<td valign="top" class="table-center"><?php if ($value['lastLoginAddress'] == '') { echo '-'; } else { echo '<a href="http://'.$value['lastLoginAddress'].'" target="_blank">'.$value['lastLoginAddress'].'</a>'; } ?></td>
</tr>
<?php } ?>
</table>
</div>
</div>
</div>