Compare commits
66
Commits
Services
...
Controller
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d1f77a92c5 | ||
|
|
a81c3adb10 | ||
|
|
5d98a44731 | ||
|
|
7b4ed79e24 | ||
|
|
1ee44f37ed | ||
|
|
fc85cab7d4 | ||
|
|
34364f1af6 | ||
|
|
3bcbadf421 | ||
|
|
f69f141aee | ||
|
|
e035a8f969 | ||
|
|
888776988d | ||
|
|
49c39b532e | ||
|
|
3f94566d06 | ||
|
|
316d378670 | ||
|
|
81ce1edd36 | ||
|
|
320420a4ce | ||
|
|
4c560a7a10 | ||
|
|
654d87b297 | ||
|
|
223c571608 | ||
|
|
3583170c9f | ||
|
|
3e694a5320 | ||
|
|
fc942e77fe | ||
|
|
d661800d1f | ||
|
|
1b73c96d70 | ||
|
|
e2ed253eec | ||
|
|
fb8acbb749 | ||
|
|
0fcfb816db | ||
|
|
a6072865a8 | ||
|
|
9a72c7e172 | ||
|
|
118b651b71 | ||
|
|
f5f8c7105c | ||
|
|
b004fcaf40 | ||
|
|
466af07095 | ||
|
|
27a6a4bf7c | ||
|
|
a5fd709a89 | ||
|
|
afd3ff1c85 | ||
|
|
144ce42d92 | ||
|
|
e8f6af6e93 | ||
|
|
6ab4feb050 | ||
|
|
74b3639bf2 | ||
|
|
1b5e1a7a0b | ||
|
|
b55de3e46a | ||
|
|
abc337db03 | ||
|
|
c0920febca | ||
|
|
d12d7e237f | ||
|
|
eebfb9f513 | ||
|
|
73ffffb86d | ||
|
|
063db10433 | ||
|
|
288509b98d | ||
|
|
e9c4488550 | ||
|
|
1e177f35e8 | ||
|
|
b7e9ab1c24 | ||
|
|
8946a5f898 | ||
|
|
6285c0bd9e | ||
|
|
412aaa4aac | ||
|
|
aab098ff5e | ||
|
|
1bf7f87e4f | ||
|
|
6a16e9fd0a | ||
|
|
7fc8621fb9 | ||
|
|
69d8266903 | ||
|
|
be843b9365 | ||
|
|
cfddbde9f4 | ||
|
|
65ec3adb5a | ||
|
|
b16f696e0a | ||
|
|
b0486ff427 | ||
|
|
ebd93db8b2 |
No files matched your search
@@ -0,0 +1,2 @@
|
||||
WEBROOT/config_backups/*
|
||||
WEBROOT/static/*
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
include_once(__DIR__ . "/../controller/DataController.php");
|
||||
include_once(__DIR__ . "/../controller/DatabaseConnect.php");
|
||||
include_once(__DIR__ . "/../controller/DatabaseController.php");
|
||||
|
||||
$data = new getSpecificData();
|
||||
|
||||
print_r($data->getWeather());
|
||||
echo "";
|
||||
|
||||
$aktuell=($data->getWeather()['aktuell']);
|
||||
$min=($data->getWeather()['min']);
|
||||
$max=($data->getWeather()['max']);
|
||||
$gefuehlt=($data->getWeather()['gefuehlt']);
|
||||
$zeit=(date("d.m.Y H:i:s"));
|
||||
|
||||
DatabaseInsert(
|
||||
"Wetter",
|
||||
"ZEIT, AKTUELL, MIN, MAX, GEFUEHLT",
|
||||
$zeit,
|
||||
$aktuell,
|
||||
$min,
|
||||
$max,
|
||||
$gefuehlt,
|
||||
);
|
||||
+260
-48
@@ -1,52 +1,264 @@
|
||||
<?php
|
||||
$serviceGroups = [
|
||||
'Info' => [
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' => [
|
||||
'home_info'
|
||||
]
|
||||
],
|
||||
'Logs' => [
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' => [
|
||||
'request_logs',
|
||||
'request_chart',
|
||||
'overtime'
|
||||
]
|
||||
],
|
||||
'System' => [
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' => [
|
||||
'services_control'
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
$services = [
|
||||
'home_info' => [
|
||||
'name' => 'Home',
|
||||
'active' => true
|
||||
],
|
||||
'request_logs' => [
|
||||
'name' => 'Request Logs',
|
||||
'active' => true
|
||||
],
|
||||
'overtime' => [
|
||||
'name' => 'Ueberstunden',
|
||||
'active' => true
|
||||
],
|
||||
'request_chart' => [
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true
|
||||
],
|
||||
'services_control' => [
|
||||
'name' => 'Site Control',
|
||||
'active' => true
|
||||
],
|
||||
];
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'links',
|
||||
2 => 'berichte_arbeit',
|
||||
3 => 'berichte_arbeit_gen',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'public_request_logs',
|
||||
1 => 'public_request_chart',
|
||||
2 => 'backend_request_logs',
|
||||
3 => 'backend_request_chart',
|
||||
4 => 'personal_request_logs',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Verwaltung',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'user_control',
|
||||
2 => 'variablen_control',
|
||||
3 => 'data_info',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
?>
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'data_info' =>
|
||||
array (
|
||||
'name' => 'Data Info',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_logs' =>
|
||||
array (
|
||||
'name' => 'Public Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_chart' =>
|
||||
array (
|
||||
'name' => 'Public Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_logs' =>
|
||||
array (
|
||||
'name' => 'Backend Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_chart' =>
|
||||
array (
|
||||
'name' => 'Backend Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'personal_request_logs' =>
|
||||
array (
|
||||
'name' => 'Persönliche Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Seiten',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit_gen' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte PDF',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'user_control' =>
|
||||
array (
|
||||
'name' => 'Benutzer',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'variablen_control' =>
|
||||
array (
|
||||
'name' => 'Variablen',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'IoT',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'devices' =>
|
||||
array (
|
||||
'label' => 'Geräte',
|
||||
'color' => '#b7db33',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
2 =>
|
||||
array (
|
||||
'label' => 'Public',
|
||||
'url' => 'https://blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'info',
|
||||
),
|
||||
3 =>
|
||||
array (
|
||||
'label' => 'NAS-1',
|
||||
'url' => 'http://nas-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
4 =>
|
||||
array (
|
||||
'label' => 'NAS-2',
|
||||
'url' => 'http://nas-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
5 =>
|
||||
array (
|
||||
'label' => 'FritzBox-1',
|
||||
'url' => 'http://fritzbox-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
6 =>
|
||||
array (
|
||||
'label' => 'FritzBox-2',
|
||||
'url' => 'http://fritzbox-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
7 =>
|
||||
array (
|
||||
'label' => 'GS1910-24',
|
||||
'url' => 'http://switch.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
8 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Innen',
|
||||
'url' => 'http://ap-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
9 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Aussen',
|
||||
'url' => 'http://ap-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
10 =>
|
||||
array (
|
||||
'label' => 'ZyWALL 110',
|
||||
'url' => 'http://10.233.1248',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
11 =>
|
||||
array (
|
||||
'label' => 'Ender 3 V3 KE',
|
||||
'url' => 'http://10.233.1.52',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'tools',
|
||||
),
|
||||
12 =>
|
||||
array (
|
||||
'label' => 'Ubuntu NAS',
|
||||
'url' => 'http://10.233.1.32:9000',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'tools',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,113 @@
|
||||
<?php
|
||||
$superuser = [
|
||||
'admin' => [
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
],
|
||||
];
|
||||
|
||||
// Services
|
||||
|
||||
$serviceGroups = [
|
||||
'Info' => [
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' => [
|
||||
'home_info',
|
||||
'berichte_arbeit',
|
||||
'links',
|
||||
]
|
||||
],
|
||||
'Logs' => [
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' => [
|
||||
'request_logs',
|
||||
'request_chart',
|
||||
]
|
||||
],
|
||||
'System' => [
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' => [
|
||||
'services_control',
|
||||
'logout'
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
$services = [
|
||||
'home_info' => [
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false
|
||||
],
|
||||
'links' => [
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false
|
||||
],
|
||||
'request_logs' => [
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false
|
||||
],
|
||||
'request_chart' => [
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false
|
||||
],
|
||||
'services_control' => [
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true
|
||||
],
|
||||
'logout' => [
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false
|
||||
],
|
||||
'berichte_arbeit' => [
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false
|
||||
],
|
||||
];
|
||||
|
||||
// Links
|
||||
|
||||
$linkGroups = [
|
||||
'info' => [
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => true
|
||||
],
|
||||
'tools' => [
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => true
|
||||
],
|
||||
'admin' => [
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false
|
||||
],
|
||||
];
|
||||
|
||||
$linkButtons = [
|
||||
[
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => true,
|
||||
'group' => 'admin'
|
||||
],
|
||||
[
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => true,
|
||||
'group' => 'admin'
|
||||
],
|
||||
];
|
||||
?>
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => false,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => false,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
);
|
||||
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
);
|
||||
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
);
|
||||
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Zuhause',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
);
|
||||
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Zuhause',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
);
|
||||
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Zuhause',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
);
|
||||
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Zuhause',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
);
|
||||
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Homeee',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
);
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Zuhause',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Request Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Request Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Statisktik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'berichte_arbeit',
|
||||
2 => 'links',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver Logs',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'request_logs',
|
||||
1 => 'request_chart',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => false,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_logs' =>
|
||||
array (
|
||||
'name' => 'Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'request_chart' =>
|
||||
array (
|
||||
'name' => 'Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'links',
|
||||
2 => 'berichte_arbeit',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'public_request_logs',
|
||||
1 => 'public_request_chart',
|
||||
2 => 'backend_request_logs',
|
||||
3 => 'backend_request_chart',
|
||||
4 => 'personal_request_logs',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_logs' =>
|
||||
array (
|
||||
'name' => 'Public Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_chart' =>
|
||||
array (
|
||||
'name' => 'Public Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_logs' =>
|
||||
array (
|
||||
'name' => 'Backend Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_chart' =>
|
||||
array (
|
||||
'name' => 'Backend Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'personal_request_logs' =>
|
||||
array (
|
||||
'name' => 'Persönliche Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'devices' =>
|
||||
array (
|
||||
'label' => 'Geräte',
|
||||
'color' => '#b7db33',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'tools',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
2 =>
|
||||
array (
|
||||
'label' => 'Public',
|
||||
'url' => 'https://blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'info',
|
||||
),
|
||||
3 =>
|
||||
array (
|
||||
'label' => 'NAS-1',
|
||||
'url' => 'http://nas-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
4 =>
|
||||
array (
|
||||
'label' => 'NAS-2',
|
||||
'url' => 'http://nas-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,195 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'links',
|
||||
2 => 'berichte_arbeit',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'public_request_logs',
|
||||
1 => 'public_request_chart',
|
||||
2 => 'backend_request_logs',
|
||||
3 => 'backend_request_chart',
|
||||
4 => 'personal_request_logs',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_logs' =>
|
||||
array (
|
||||
'name' => 'Public Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_chart' =>
|
||||
array (
|
||||
'name' => 'Public Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_logs' =>
|
||||
array (
|
||||
'name' => 'Backend Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_chart' =>
|
||||
array (
|
||||
'name' => 'Backend Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'personal_request_logs' =>
|
||||
array (
|
||||
'name' => 'Persönliche Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'devices' =>
|
||||
array (
|
||||
'label' => 'Geräte',
|
||||
'color' => '#b7db33',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'tools',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
2 =>
|
||||
array (
|
||||
'label' => 'Public',
|
||||
'url' => 'https://blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'info',
|
||||
),
|
||||
3 =>
|
||||
array (
|
||||
'label' => 'NAS-1',
|
||||
'url' => 'http://nas-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
4 =>
|
||||
array (
|
||||
'label' => 'NAS-2',
|
||||
'url' => 'http://nas-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
5 =>
|
||||
array (
|
||||
'label' => 'FritzBox-1',
|
||||
'url' => 'http://fritzbox-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
6 =>
|
||||
array (
|
||||
'label' => 'FritzBox-2',
|
||||
'url' => 'http://fritzbox-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,227 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'links',
|
||||
2 => 'berichte_arbeit',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'public_request_logs',
|
||||
1 => 'public_request_chart',
|
||||
2 => 'backend_request_logs',
|
||||
3 => 'backend_request_chart',
|
||||
4 => 'personal_request_logs',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_logs' =>
|
||||
array (
|
||||
'name' => 'Public Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_chart' =>
|
||||
array (
|
||||
'name' => 'Public Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_logs' =>
|
||||
array (
|
||||
'name' => 'Backend Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_chart' =>
|
||||
array (
|
||||
'name' => 'Backend Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'personal_request_logs' =>
|
||||
array (
|
||||
'name' => 'Persönliche Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'devices' =>
|
||||
array (
|
||||
'label' => 'Geräte',
|
||||
'color' => '#b7db33',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'tools',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
2 =>
|
||||
array (
|
||||
'label' => 'Public',
|
||||
'url' => 'https://blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'info',
|
||||
),
|
||||
3 =>
|
||||
array (
|
||||
'label' => 'NAS-1',
|
||||
'url' => 'http://nas-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
4 =>
|
||||
array (
|
||||
'label' => 'NAS-2',
|
||||
'url' => 'http://nas-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
5 =>
|
||||
array (
|
||||
'label' => 'FritzBox-1',
|
||||
'url' => 'http://fritzbox-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
6 =>
|
||||
array (
|
||||
'label' => 'FritzBox-2',
|
||||
'url' => 'http://fritzbox-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
7 =>
|
||||
array (
|
||||
'label' => 'GS1910-24',
|
||||
'url' => 'http://switch.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
8 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Innen',
|
||||
'url' => 'http://ap-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
9 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Aussen',
|
||||
'url' => 'http://ap-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
10 =>
|
||||
array (
|
||||
'label' => 'ZyWALL 110',
|
||||
'url' => 'http://10.233.1248',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,227 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'links',
|
||||
2 => 'berichte_arbeit',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'public_request_logs',
|
||||
1 => 'public_request_chart',
|
||||
2 => 'backend_request_logs',
|
||||
3 => 'backend_request_chart',
|
||||
4 => 'personal_request_logs',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_logs' =>
|
||||
array (
|
||||
'name' => 'Public Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_chart' =>
|
||||
array (
|
||||
'name' => 'Public Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_logs' =>
|
||||
array (
|
||||
'name' => 'Backend Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_chart' =>
|
||||
array (
|
||||
'name' => 'Backend Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'personal_request_logs' =>
|
||||
array (
|
||||
'name' => 'Persönliche Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'Tools',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'devices' =>
|
||||
array (
|
||||
'label' => 'Geräte',
|
||||
'color' => '#b7db33',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
2 =>
|
||||
array (
|
||||
'label' => 'Public',
|
||||
'url' => 'https://blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'info',
|
||||
),
|
||||
3 =>
|
||||
array (
|
||||
'label' => 'NAS-1',
|
||||
'url' => 'http://nas-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
4 =>
|
||||
array (
|
||||
'label' => 'NAS-2',
|
||||
'url' => 'http://nas-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
5 =>
|
||||
array (
|
||||
'label' => 'FritzBox-1',
|
||||
'url' => 'http://fritzbox-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
6 =>
|
||||
array (
|
||||
'label' => 'FritzBox-2',
|
||||
'url' => 'http://fritzbox-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
7 =>
|
||||
array (
|
||||
'label' => 'GS1910-24',
|
||||
'url' => 'http://switch.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
8 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Innen',
|
||||
'url' => 'http://ap-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
9 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Aussen',
|
||||
'url' => 'http://ap-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
10 =>
|
||||
array (
|
||||
'label' => 'ZyWALL 110',
|
||||
'url' => 'http://10.233.1248',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,235 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'links',
|
||||
2 => 'berichte_arbeit',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'public_request_logs',
|
||||
1 => 'public_request_chart',
|
||||
2 => 'backend_request_logs',
|
||||
3 => 'backend_request_chart',
|
||||
4 => 'personal_request_logs',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_logs' =>
|
||||
array (
|
||||
'name' => 'Public Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_chart' =>
|
||||
array (
|
||||
'name' => 'Public Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_logs' =>
|
||||
array (
|
||||
'name' => 'Backend Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_chart' =>
|
||||
array (
|
||||
'name' => 'Backend Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'personal_request_logs' =>
|
||||
array (
|
||||
'name' => 'Persönliche Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'IoT',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'devices' =>
|
||||
array (
|
||||
'label' => 'Geräte',
|
||||
'color' => '#b7db33',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
2 =>
|
||||
array (
|
||||
'label' => 'Public',
|
||||
'url' => 'https://blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'info',
|
||||
),
|
||||
3 =>
|
||||
array (
|
||||
'label' => 'NAS-1',
|
||||
'url' => 'http://nas-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
4 =>
|
||||
array (
|
||||
'label' => 'NAS-2',
|
||||
'url' => 'http://nas-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
5 =>
|
||||
array (
|
||||
'label' => 'FritzBox-1',
|
||||
'url' => 'http://fritzbox-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
6 =>
|
||||
array (
|
||||
'label' => 'FritzBox-2',
|
||||
'url' => 'http://fritzbox-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
7 =>
|
||||
array (
|
||||
'label' => 'GS1910-24',
|
||||
'url' => 'http://switch.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
8 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Innen',
|
||||
'url' => 'http://ap-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
9 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Aussen',
|
||||
'url' => 'http://ap-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
10 =>
|
||||
array (
|
||||
'label' => 'ZyWALL 110',
|
||||
'url' => 'http://10.233.1248',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
11 =>
|
||||
array (
|
||||
'label' => 'Ender 3 V3 KE',
|
||||
'url' => 'http://10.233.1.52',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'info',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,235 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'links',
|
||||
2 => 'berichte_arbeit',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'public_request_logs',
|
||||
1 => 'public_request_chart',
|
||||
2 => 'backend_request_logs',
|
||||
3 => 'backend_request_chart',
|
||||
4 => 'personal_request_logs',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_logs' =>
|
||||
array (
|
||||
'name' => 'Public Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_chart' =>
|
||||
array (
|
||||
'name' => 'Public Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_logs' =>
|
||||
array (
|
||||
'name' => 'Backend Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_chart' =>
|
||||
array (
|
||||
'name' => 'Backend Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'personal_request_logs' =>
|
||||
array (
|
||||
'name' => 'Persönliche Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'IoT',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'devices' =>
|
||||
array (
|
||||
'label' => 'Geräte',
|
||||
'color' => '#b7db33',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
2 =>
|
||||
array (
|
||||
'label' => 'Public',
|
||||
'url' => 'https://blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'info',
|
||||
),
|
||||
3 =>
|
||||
array (
|
||||
'label' => 'NAS-1',
|
||||
'url' => 'http://nas-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
4 =>
|
||||
array (
|
||||
'label' => 'NAS-2',
|
||||
'url' => 'http://nas-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
5 =>
|
||||
array (
|
||||
'label' => 'FritzBox-1',
|
||||
'url' => 'http://fritzbox-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
6 =>
|
||||
array (
|
||||
'label' => 'FritzBox-2',
|
||||
'url' => 'http://fritzbox-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
7 =>
|
||||
array (
|
||||
'label' => 'GS1910-24',
|
||||
'url' => 'http://switch.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
8 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Innen',
|
||||
'url' => 'http://ap-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
9 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Aussen',
|
||||
'url' => 'http://ap-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
10 =>
|
||||
array (
|
||||
'label' => 'ZyWALL 110',
|
||||
'url' => 'http://10.233.1248',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
11 =>
|
||||
array (
|
||||
'label' => 'Ender 3 V3 KE',
|
||||
'url' => 'http://10.233.1.52',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'tools',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,257 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'links',
|
||||
2 => 'berichte_arbeit',
|
||||
3 => 'berichte_arbeit_gen',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'public_request_logs',
|
||||
1 => 'public_request_chart',
|
||||
2 => 'backend_request_logs',
|
||||
3 => 'backend_request_chart',
|
||||
4 => 'personal_request_logs',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'user_control',
|
||||
2 => 'logout',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_logs' =>
|
||||
array (
|
||||
'name' => 'Public Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_chart' =>
|
||||
array (
|
||||
'name' => 'Public Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_logs' =>
|
||||
array (
|
||||
'name' => 'Backend Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_chart' =>
|
||||
array (
|
||||
'name' => 'Backend Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'personal_request_logs' =>
|
||||
array (
|
||||
'name' => 'Persönliche Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Site Control',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'logout' =>
|
||||
array (
|
||||
'name' => 'Logout',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit_gen' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte PDF',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'user_control' =>
|
||||
array (
|
||||
'name' => 'Benutzerverwaltung',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'IoT',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'devices' =>
|
||||
array (
|
||||
'label' => 'Geräte',
|
||||
'color' => '#b7db33',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
2 =>
|
||||
array (
|
||||
'label' => 'Public',
|
||||
'url' => 'https://blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'info',
|
||||
),
|
||||
3 =>
|
||||
array (
|
||||
'label' => 'NAS-1',
|
||||
'url' => 'http://nas-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
4 =>
|
||||
array (
|
||||
'label' => 'NAS-2',
|
||||
'url' => 'http://nas-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
5 =>
|
||||
array (
|
||||
'label' => 'FritzBox-1',
|
||||
'url' => 'http://fritzbox-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
6 =>
|
||||
array (
|
||||
'label' => 'FritzBox-2',
|
||||
'url' => 'http://fritzbox-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
7 =>
|
||||
array (
|
||||
'label' => 'GS1910-24',
|
||||
'url' => 'http://switch.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
8 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Innen',
|
||||
'url' => 'http://ap-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
9 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Aussen',
|
||||
'url' => 'http://ap-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
10 =>
|
||||
array (
|
||||
'label' => 'ZyWALL 110',
|
||||
'url' => 'http://10.233.1248',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
11 =>
|
||||
array (
|
||||
'label' => 'Ender 3 V3 KE',
|
||||
'url' => 'http://10.233.1.52',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'tools',
|
||||
),
|
||||
12 =>
|
||||
array (
|
||||
'label' => 'Ubuntu NAS',
|
||||
'url' => 'http://10.233.1.32:9000',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'tools',
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,257 @@
|
||||
<?php
|
||||
|
||||
$superuser = array (
|
||||
'admin' =>
|
||||
array (
|
||||
'password' => 'bBHofurUJWKzPE8Z:',
|
||||
'active' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$serviceGroups = array (
|
||||
'Info' =>
|
||||
array (
|
||||
'label' => 'Home',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'home_info',
|
||||
1 => 'links',
|
||||
2 => 'berichte_arbeit',
|
||||
3 => 'berichte_arbeit_gen',
|
||||
),
|
||||
),
|
||||
'Logs' =>
|
||||
array (
|
||||
'label' => 'Webserver',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'public_request_logs',
|
||||
1 => 'public_request_chart',
|
||||
2 => 'backend_request_logs',
|
||||
3 => 'backend_request_chart',
|
||||
4 => 'personal_request_logs',
|
||||
),
|
||||
),
|
||||
'System' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'defaultOpen' => true,
|
||||
'services' =>
|
||||
array (
|
||||
0 => 'services_control',
|
||||
1 => 'user_control',
|
||||
2 => 'test',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$services = array (
|
||||
'home_info' =>
|
||||
array (
|
||||
'name' => 'Home',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'links' =>
|
||||
array (
|
||||
'name' => 'Externe Links',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_logs' =>
|
||||
array (
|
||||
'name' => 'Public Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'public_request_chart' =>
|
||||
array (
|
||||
'name' => 'Public Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_logs' =>
|
||||
array (
|
||||
'name' => 'Backend Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'backend_request_chart' =>
|
||||
array (
|
||||
'name' => 'Backend Statistik',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'personal_request_logs' =>
|
||||
array (
|
||||
'name' => 'Persönliche Logs',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'services_control' =>
|
||||
array (
|
||||
'name' => 'Seitenverwaltung',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
'berichte_arbeit' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'berichte_arbeit_gen' =>
|
||||
array (
|
||||
'name' => 'Arbeitsberichte PDF',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'user_control' =>
|
||||
array (
|
||||
'name' => 'Benutzerverwaltung',
|
||||
'active' => true,
|
||||
'adminOnly' => false,
|
||||
),
|
||||
'test' =>
|
||||
array (
|
||||
'name' => 'Test Seite',
|
||||
'active' => true,
|
||||
'adminOnly' => true,
|
||||
),
|
||||
);
|
||||
|
||||
$linkGroups = array (
|
||||
'info' =>
|
||||
array (
|
||||
'label' => 'Informationen',
|
||||
'color' => '#3498db',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'tools' =>
|
||||
array (
|
||||
'label' => 'IoT',
|
||||
'color' => '#2ecc71',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'admin' =>
|
||||
array (
|
||||
'label' => 'Administration',
|
||||
'color' => '#e74c3c',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
'devices' =>
|
||||
array (
|
||||
'label' => 'Geräte',
|
||||
'color' => '#b7db33',
|
||||
'defaultOpen' => false,
|
||||
),
|
||||
);
|
||||
|
||||
$linkButtons = array (
|
||||
0 =>
|
||||
array (
|
||||
'label' => 'Gitea',
|
||||
'url' => 'http://gitea.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'label' => 'HAProxy',
|
||||
'url' => 'http://stats.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
2 =>
|
||||
array (
|
||||
'label' => 'Public',
|
||||
'url' => 'https://blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'info',
|
||||
),
|
||||
3 =>
|
||||
array (
|
||||
'label' => 'NAS-1',
|
||||
'url' => 'http://nas-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
4 =>
|
||||
array (
|
||||
'label' => 'NAS-2',
|
||||
'url' => 'http://nas-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
5 =>
|
||||
array (
|
||||
'label' => 'FritzBox-1',
|
||||
'url' => 'http://fritzbox-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
6 =>
|
||||
array (
|
||||
'label' => 'FritzBox-2',
|
||||
'url' => 'http://fritzbox-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
7 =>
|
||||
array (
|
||||
'label' => 'GS1910-24',
|
||||
'url' => 'http://switch.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
8 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Innen',
|
||||
'url' => 'http://ap-1.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
9 =>
|
||||
array (
|
||||
'label' => 'NWA5121-NI Aussen',
|
||||
'url' => 'http://ap-2.blackpi.ipv64.net',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'devices',
|
||||
),
|
||||
10 =>
|
||||
array (
|
||||
'label' => 'ZyWALL 110',
|
||||
'url' => 'http://10.233.1248',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'admin',
|
||||
),
|
||||
11 =>
|
||||
array (
|
||||
'label' => 'Ender 3 V3 KE',
|
||||
'url' => 'http://10.233.1.52',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'tools',
|
||||
),
|
||||
12 =>
|
||||
array (
|
||||
'label' => 'Ubuntu NAS',
|
||||
'url' => 'http://10.233.1.32:9000',
|
||||
'newTab' => true,
|
||||
'adminOnly' => false,
|
||||
'group' => 'tools',
|
||||
),
|
||||
);
|
||||
@@ -2,6 +2,38 @@
|
||||
|
||||
class getSpecificData {
|
||||
|
||||
public function getWeather() {
|
||||
$url = "https://api.openweathermap.org/data/2.5/weather?q=Berlin,DE&APPID=5bc3e1a438c58fca444c4370ac0517b2&units=metric";
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
|
||||
if(curl_errno($ch)) {
|
||||
echo "cURL Fehler: " . curl_error($ch);
|
||||
exit;
|
||||
}
|
||||
|
||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
if ($httpCode === 200) {
|
||||
$data = json_decode($response, true);
|
||||
|
||||
return [
|
||||
'aktuell' => $data['main']['temp'],
|
||||
'min' => $data['main']['temp_min'],
|
||||
'max' => $data['main']['temp_max'],
|
||||
'gefuehlt' => $data['main']['feels_like']
|
||||
];
|
||||
} else {
|
||||
return "API Fehler. HTTP Code: " . $httpCode;
|
||||
}
|
||||
}
|
||||
|
||||
public function getUserAgent(): string {
|
||||
return $_SERVER['HTTP_USER_AGENT'] ?? 'Unbekannt';
|
||||
}
|
||||
@@ -13,10 +45,6 @@ class getSpecificData {
|
||||
public function getCookie(string $name): ?string {
|
||||
return $_COOKIE[$name] ?? 'Unbekannt';
|
||||
}
|
||||
|
||||
public function getServerCookie(string $name): ?string {
|
||||
return $_COOKIE[$name] ?? 'Unbekannt';
|
||||
}
|
||||
|
||||
public function getSessionID(): string {
|
||||
return $session_id ?? 'Unbekannt ';
|
||||
@@ -50,10 +78,24 @@ class getSpecificData {
|
||||
return $_SERVER['HTTP_REFERER'] ?? 'Unbekannt';
|
||||
}
|
||||
|
||||
public function getWebsite(): string {
|
||||
return $_SERVER['HTTP_HOST'] ?? 'Unbekannt';
|
||||
}
|
||||
|
||||
public function getDatabase(): string {
|
||||
$conn = db_connect();
|
||||
return $conn->host_info;
|
||||
}
|
||||
|
||||
public function getLoggingStatus($variable) {
|
||||
$status = DatabaseShow(
|
||||
"Variablen",
|
||||
"WERT",
|
||||
"VARIABLENNAME = ?",
|
||||
$variable
|
||||
);
|
||||
return $status;
|
||||
}
|
||||
|
||||
public function getServerName(): string {
|
||||
$Servername = $_SERVER['SERVER_NAME'] ?? 'Unbekannt';
|
||||
@@ -94,9 +136,9 @@ class getSpecificData {
|
||||
}
|
||||
|
||||
function getGeoIP($ClientIP) {
|
||||
$whitelist = (new getSpecificData())->getWhitelistedIPs();
|
||||
|
||||
if (in_array($ClientIP, $whitelist)) {
|
||||
if (in_array($ClientIP, ['0.0.0.0', '127.0.0.1', '172.30.0.1'])) {
|
||||
return "Lokal";
|
||||
} elseif (in_array($ClientIP, ['Unbekannt', '0.0.0.0', '127.0.0.1'])) {
|
||||
return "Lokal";
|
||||
} else {
|
||||
$response = file_get_contents("http://ip-api.com/json/{$ClientIP}?fields=country,countryCode");
|
||||
@@ -122,9 +164,16 @@ class getSpecificData {
|
||||
function getServerNode($ServerIP) {
|
||||
$nodes = [
|
||||
'node1' => '172.30.0.11',
|
||||
'node1' => '172.30.0.21',
|
||||
|
||||
'node2' => '172.30.0.12',
|
||||
'node2' => '172.30.0.22',
|
||||
|
||||
'node3' => '172.30.0.13',
|
||||
'node3' => '172.30.0.23',
|
||||
|
||||
'node4' => '172.30.0.14',
|
||||
'node4' => '172.30.0.24',
|
||||
'Lokal' => 'Lokal',
|
||||
];
|
||||
|
||||
@@ -143,35 +192,60 @@ class getSpecificData {
|
||||
return "Untrusted";
|
||||
}
|
||||
|
||||
function test() {
|
||||
return "TEST";
|
||||
function getIsAdmin(){
|
||||
return $_SESSION['is_admin'] ?? false;
|
||||
}
|
||||
|
||||
function getIsSuperuser(){
|
||||
return $_SESSION['is_superuser'] ?? false;
|
||||
}
|
||||
|
||||
function getUsername(){
|
||||
return $_SESSION['username'] ?? 'Gast';
|
||||
}
|
||||
|
||||
public function getAllData(): array {
|
||||
return [
|
||||
'Document-Root' => $this->getDocumentRoot(),
|
||||
'CurrentDir' => $this->getCurrentDir(),
|
||||
'Referer' => $this->getReferer(),
|
||||
'Request URL' => $this->getRequestURL(),
|
||||
'Server-Port' => $this->getServerPort(),
|
||||
'Server-IP' => $this->getServerIP(),
|
||||
'Server-Name' => $this->getServerName(),
|
||||
'Server-Node' => $this->getServerNode($this->getServerIP()),
|
||||
'Client-IP' => $this->getClientIP(),
|
||||
'Client-Port' => $this->getClientPort(),
|
||||
'Client-Land' => $this->getGeoIP($this->getClientIP()),
|
||||
'Client-User-Agent' => $this->getUserAgent(),
|
||||
'Client-Cookie' => $this->getCookie('USER'),
|
||||
'Client-Server-Cookie' => $this->getCookie('SESSSRV'),
|
||||
'Client-Session-ID' => $this->getSessionID(),
|
||||
'Query' => $this->getQuery(),
|
||||
'Request-Method' => $this->getRequestMethod(),
|
||||
'Request-Time' => $this->getRequestTime(),
|
||||
'Database' => $this->getDatabase(),
|
||||
'Whitelisted Status' => $this->getClientStatus($this->getClientIP()),
|
||||
'Whitelisted IPs' => $this->getWhitelistedIPs(),
|
||||
];
|
||||
}
|
||||
public function getAllData(): array {
|
||||
return [
|
||||
'Server - Document Root' => $this->getDocumentRoot(),
|
||||
'Server - Current Dir' => $this->getCurrentDir(),
|
||||
'Server - Name' => $this->getServerName(),
|
||||
'Server - IP' => $this->getServerIP(),
|
||||
'Server - Port' => $this->getServerPort(),
|
||||
'Server - Node' => $this->getServerNode($this->getServerIP()),
|
||||
'Server - Database' => $this->getDatabase(),
|
||||
|
||||
|
||||
'Request - URL' => $this->getRequestURL(),
|
||||
'Request - Method' => $this->getRequestMethod(),
|
||||
'Request - Query' => $this->getQuery(),
|
||||
'Request - Referer' => $this->getReferer(),
|
||||
'Request - Time' => $this->getRequestTime(),
|
||||
|
||||
|
||||
'Client - IP' => $this->getClientIP(),
|
||||
'Client - Port' => $this->getClientPort(),
|
||||
'Client - Country' => $this->getGeoIP($this->getClientIP()),
|
||||
'Client - User Agent' => $this->getUserAgent(),
|
||||
'Client - Cookie USER' => $this->getCookie('USER'),
|
||||
'Client - Cookie SESSSRV' => $this->getCookie('SESSSRV'),
|
||||
'Client - Session ID' => $this->getSessionID(),
|
||||
|
||||
|
||||
'Access - Whitelisted' => $this->getClientStatus($this->getClientIP()),
|
||||
'Access - Whitelisted IPs' => $this->getWhitelistedIPs(),
|
||||
|
||||
|
||||
'User - Username' => $this->getUsername(),
|
||||
'User - Is Admin' => $this->getIsAdmin(),
|
||||
'User - Is Superuser' => $this->getIsSuperuser(),
|
||||
|
||||
'System - Website' => $this->getWebsite(),
|
||||
'Logging - Public' => $this->getLoggingStatus('GENERAL_PUBLIC_LOGGING')[0]['WERT'],
|
||||
'Logging - Public DEV' => $this->getLoggingStatus('DEV_PUBLIC_LOGGING')[0]['WERT'],
|
||||
'Logging - Backend' => $this->getLoggingStatus('GENERAL_BACKEND_LOGGING')[0]['WERT'],
|
||||
'Logging - Backend DEV' => $this->getLoggingStatus('DEV_BACKEND_LOGGING')[0]['WERT'],
|
||||
];
|
||||
}
|
||||
|
||||
public function ShowAllData(): void {
|
||||
$SpecificData = (new getSpecificData())->getAllData();
|
||||
|
||||
@@ -19,10 +19,16 @@ function db_connect() {
|
||||
'username' => 'worker',
|
||||
'password' => 'bBHofurUJWKzPE8Z',
|
||||
'database' => 'DEV',
|
||||
],
|
||||
'backup' => [
|
||||
'hostaddr' => '10.233.1.243',
|
||||
'username' => 'worker',
|
||||
'password' => 'bBHofurUJWKzPE8Z',
|
||||
'database' => 'DEV',
|
||||
]
|
||||
];
|
||||
|
||||
$enviroment = 'vpn';
|
||||
$enviroment = 'live';
|
||||
|
||||
$conn = new mysqli(
|
||||
$servers[$enviroment]['hostaddr'],
|
||||
|
||||
@@ -2,79 +2,89 @@
|
||||
|
||||
|
||||
function logging() {
|
||||
include_once 'DatabaseConnect.php';
|
||||
include_once 'DatabaseController.php';
|
||||
include_once 'DataController.php';
|
||||
if ((new getSpecificData())->getLoggingStatus("GENERAL_BACKEND_LOGGING")[0]['WERT'] == 'ON') {
|
||||
include_once 'DatabaseConnect.php';
|
||||
include_once 'DatabaseController.php';
|
||||
include_once 'DataController.php';
|
||||
|
||||
$ClientIP = (new getSpecificData())->getClientIP();
|
||||
$UserAgent = (new getSpecificData())->getUserAgent();
|
||||
$RequestURL = (new getSpecificData())->getRequestURL();
|
||||
$USERCOOKIE = (new getSpecificData())->getCookie("USER");
|
||||
$SessionID = (new getSpecificData())->getSessionID();
|
||||
$REQUESTTIME = (new getSpecificData())->getRequestTime();
|
||||
$QUERY = (new getSpecificData())->getQuery();
|
||||
$LAND = (new getSpecificData())->getGeoIP($ClientIP);
|
||||
$Whitelisted = (new getSpecificData())->getWhitelistedIPs();
|
||||
$node = (new getSpecificData())->getServerNode((new getSpecificData())->getServerIP());
|
||||
$ClientIP = (new getSpecificData())->getClientIP();
|
||||
$UserAgent = (new getSpecificData())->getUserAgent();
|
||||
$RequestURL = (new getSpecificData())->getRequestURL();
|
||||
$USERCOOKIE = (new getSpecificData())->getCookie("USER");
|
||||
$SessionID = (new getSpecificData())->getSessionID();
|
||||
$REQUESTTIME = (new getSpecificData())->getRequestTime();
|
||||
$QUERY = (new getSpecificData())->getQuery();
|
||||
$LAND = (new getSpecificData())->getGeoIP($ClientIP);
|
||||
$Whitelisted = (new getSpecificData())->getWhitelistedIPs();
|
||||
$node = (new getSpecificData())->getServerNode((new getSpecificData())->getServerIP());
|
||||
$username = $_SESSION['username'] ?? 'Unbekannt';
|
||||
$website = (new getSpecificData())->getWebsite();
|
||||
|
||||
if (in_array($ClientIP, $Whitelisted)) {
|
||||
return;
|
||||
}
|
||||
if ((new getSpecificData())->getLoggingStatus("DEV_BACKEND_LOGGING")[0]['WERT'] == 'OFF') {
|
||||
if (in_array($ClientIP, $Whitelisted)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$db_conn = db_connect();
|
||||
$db_conn = db_connect();
|
||||
|
||||
$stmt = $db_conn->prepare("SELECT * FROM logs WHERE
|
||||
`CLIENT_IP` LIKE ? and
|
||||
`REQUEST_URL` = ? and
|
||||
`REQUEST_URL` <> '/favicon.ico'
|
||||
");
|
||||
|
||||
$stmt->bind_param("ss", $ClientIP, $RequestURL);
|
||||
$stmt->execute();
|
||||
$stmt->store_result();
|
||||
|
||||
if ($RequestURL !== '/favicon.ico') {
|
||||
if ($stmt->num_rows > 0) { //wenn mindestens eine zeile vorhanden ist für die client ip dann führe updates durch, wenn nicht mache neue zeile
|
||||
$updateCounter = $db_conn->prepare("
|
||||
UPDATE logs
|
||||
SET COUNTER = COUNTER + 1
|
||||
WHERE `CLIENT_IP` = ?
|
||||
AND `REQUEST_URL` = ?
|
||||
$stmt = $db_conn->prepare("SELECT * FROM logs WHERE
|
||||
`CLIENT_IP` LIKE ? and
|
||||
`REQUEST_URL` = ? and
|
||||
`REQUEST_URL` <> '/favicon.ico'
|
||||
");
|
||||
$updateCounter->bind_param("ss", $ClientIP, $RequestURL);
|
||||
$updateCounter->execute();
|
||||
|
||||
$stmt->bind_param("ss", $ClientIP, $RequestURL);
|
||||
$stmt->execute();
|
||||
$stmt->store_result();
|
||||
|
||||
$updateLastRequest = $db_conn->prepare("
|
||||
UPDATE logs
|
||||
SET `LAST_REQUEST` = ?
|
||||
WHERE `CLIENT_IP` = ?
|
||||
AND `REQUEST_URL` = ?
|
||||
");
|
||||
$updateLastRequest->bind_param("sss", $REQUESTTIME, $ClientIP, $RequestURL);
|
||||
$updateLastRequest->execute();
|
||||
|
||||
$updateCookieValue = $db_conn->prepare("
|
||||
UPDATE logs
|
||||
SET `USER_COOKIE_VALUE` = ?
|
||||
WHERE `CLIENT_IP` = ?
|
||||
AND `REQUEST_URL` = ?
|
||||
");
|
||||
$updateCookieValue->bind_param("sss", $USERCOOKIE, $ClientIP, $RequestURL);
|
||||
$updateCookieValue->execute();
|
||||
} else {
|
||||
DatabaseInsert(
|
||||
"logs",
|
||||
"CLIENT_IP, LAND, SERVER_IP, USER_AGENT, REQUEST_URL, USER_COOKIE_VALUE, USER_SESSION_VALUE, FIRST_REQUEST, QUERY",
|
||||
$ClientIP,
|
||||
$LAND,
|
||||
$node,
|
||||
$UserAgent,
|
||||
$RequestURL,
|
||||
$USERCOOKIE,
|
||||
$SessionID,
|
||||
$REQUESTTIME,
|
||||
$QUERY
|
||||
);
|
||||
if ($RequestURL !== '/favicon.ico') {
|
||||
if ($stmt->num_rows > 0) { //wenn mindestens eine zeile vorhanden ist für die client ip dann führe updates durch, wenn nicht mache neue zeile
|
||||
$updateCounter = $db_conn->prepare("
|
||||
UPDATE logs
|
||||
SET COUNTER = COUNTER + 1
|
||||
WHERE `CLIENT_IP` = ?
|
||||
AND `REQUEST_URL` = ?
|
||||
");
|
||||
$updateCounter->bind_param("ss", $ClientIP, $RequestURL);
|
||||
$updateCounter->execute();
|
||||
|
||||
$updateLastRequest = $db_conn->prepare("
|
||||
UPDATE logs
|
||||
SET `LAST_REQUEST` = ?
|
||||
WHERE `CLIENT_IP` = ?
|
||||
AND `REQUEST_URL` = ?
|
||||
");
|
||||
$updateLastRequest->bind_param("sss", $REQUESTTIME, $ClientIP, $RequestURL);
|
||||
$updateLastRequest->execute();
|
||||
|
||||
$updateCookieValue = $db_conn->prepare("
|
||||
UPDATE logs
|
||||
SET `USER_COOKIE_VALUE` = ?
|
||||
WHERE `CLIENT_IP` = ?
|
||||
AND `REQUEST_URL` = ?
|
||||
");
|
||||
$updateCookieValue->bind_param("sss", $USERCOOKIE, $ClientIP, $RequestURL);
|
||||
$updateCookieValue->execute();
|
||||
} else {
|
||||
DatabaseInsert(
|
||||
"logs",
|
||||
"CLIENT_IP, LAND, SERVER_IP, USER_AGENT, REQUEST_URL, USER_COOKIE_VALUE, USER_SESSION_VALUE, FIRST_REQUEST, QUERY, WEBSITE, USER",
|
||||
$ClientIP,
|
||||
$LAND,
|
||||
$node,
|
||||
$UserAgent,
|
||||
$RequestURL,
|
||||
$USERCOOKIE,
|
||||
$SessionID,
|
||||
$REQUESTTIME,
|
||||
$QUERY,
|
||||
$website,
|
||||
$username
|
||||
);
|
||||
}
|
||||
// ConsoleLog("Client IP: $ClientIP | User Agent: $UserAgent | Request URL: $RequestURL | User Cookie: $USERCOOKIE | Session ID: $SessionID | Request Time: $REQUESTTIME | GeoIP: $LAND | Server Node: $node | Website: $website");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,30 +1,30 @@
|
||||
<?php
|
||||
// logging();
|
||||
function redirectToWebsite(string $website): void
|
||||
{
|
||||
$website = trim($website);
|
||||
|
||||
if (!isset($_GET['website'])) {
|
||||
die("Fehlender Parameter: website");
|
||||
}
|
||||
|
||||
$website = trim($_GET['website']);
|
||||
|
||||
$blocked_schemes = ['javascript:', 'data:', 'file:'];
|
||||
foreach ($blocked_schemes as $scheme) {
|
||||
if (stripos($website, $scheme) === 0) {
|
||||
if ($website === '') {
|
||||
die("Ungültige URL.");
|
||||
}
|
||||
}
|
||||
|
||||
if (preg_match('/^https?:\/\//i', $website)) {
|
||||
header("Location: " . $website);
|
||||
$blocked_schemes = ['javascript:', 'data:', 'file:'];
|
||||
foreach ($blocked_schemes as $scheme) {
|
||||
if (stripos($website, $scheme) === 0) {
|
||||
die("Ungültige URL.");
|
||||
}
|
||||
}
|
||||
|
||||
if (preg_match('/^https?:\/\//i', $website)) {
|
||||
header("Location: " . $website);
|
||||
exit;
|
||||
}
|
||||
|
||||
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https://" : "http://";
|
||||
$domain = $_SERVER['HTTP_HOST'];
|
||||
|
||||
$website = ltrim($website, "/");
|
||||
$redirectUrl = $protocol . $domain . "/" . $website;
|
||||
|
||||
header("Location: " . $redirectUrl);
|
||||
exit;
|
||||
}
|
||||
|
||||
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https://" : "http://";
|
||||
$domain = $_SERVER['HTTP_HOST'];
|
||||
|
||||
$website = ltrim($website, "/");
|
||||
|
||||
$redirectUrl = $protocol . $domain . "/" . $website;
|
||||
|
||||
header("Location: " . $redirectUrl);
|
||||
exit;
|
||||
}
|
||||
@@ -1,23 +1,31 @@
|
||||
<?php
|
||||
|
||||
class UserController {
|
||||
public function setUser($name, $nachname, $email, $passwort, $rolle, $admin) {
|
||||
public function setUser($name, $nachname, $email, $passwort, $rolle, $admin, $home_ip) {
|
||||
|
||||
$hashedPasswort = password_hash($passwort, PASSWORD_DEFAULT);
|
||||
|
||||
DatabaseInsert(
|
||||
"Benutzer",
|
||||
"NAME, NACHNAME, EMAIL, PASSWORD, ROLLE, ADMIN",
|
||||
"NAME, NACHNAME, EMAIL, PASSWORD, ROLLE, ADMIN, HOME_IP",
|
||||
$name,
|
||||
$nachname,
|
||||
$email,
|
||||
$hashedPasswort,
|
||||
$rolle,
|
||||
$admin,
|
||||
$home_ip,
|
||||
);
|
||||
}
|
||||
|
||||
public function DeleteUSer() {
|
||||
public function DeleteUser($name, $nachname, $email) {
|
||||
DatabaseDelete(
|
||||
"Benutzer",
|
||||
"NAME = ? AND NACHNAME = ? AND EMAIL = ?",
|
||||
$name,
|
||||
$nachname,
|
||||
$email
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
@@ -43,4 +51,8 @@ class UserController {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function UpdateUser() {
|
||||
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 69 KiB |
+94
-36
@@ -1,4 +1,21 @@
|
||||
<?php
|
||||
ob_start();
|
||||
// Vor allen includes, vor jeglicher Ausgabe
|
||||
session_set_cookie_params([
|
||||
'lifetime' => 0, // bis Browser geschlossen
|
||||
'path' => '/', // Gültig für ganze Domain
|
||||
'domain' => '', // aktuelle Domain
|
||||
'secure' => false, // true nur für HTTPS
|
||||
'httponly' => true,
|
||||
'samesite' => 'Lax'
|
||||
]);
|
||||
session_start();
|
||||
|
||||
if (empty($_SESSION['user_logged_in'])) {
|
||||
header('Location: login.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
include 'config.php';
|
||||
include 'controller/CookieController.php';
|
||||
include 'controller/DatabaseConnect.php';
|
||||
@@ -6,20 +23,47 @@ include 'controller/DatabaseController.php';
|
||||
include 'controller/DataController.php';
|
||||
include 'controller/LogController.php';
|
||||
include 'controller/UserController.php';
|
||||
include 'modules/ConsoleLog.php';
|
||||
// include 'controller/RoutesController.php';
|
||||
|
||||
session_start();
|
||||
|
||||
$selectedService = null;
|
||||
foreach ($services as $key => $service) {
|
||||
if ($service['active']) {
|
||||
$selectedService = $key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (isset($_GET['service']) && isset($services[$_GET['service']]) && $services[$_GET['service']]['active']) {
|
||||
|
||||
// 1. Service aus URL, wenn erlaubt & aktiv
|
||||
if (
|
||||
isset($_GET['service']) &&
|
||||
isset($services[$_GET['service']]) &&
|
||||
$services[$_GET['service']]['active']
|
||||
) {
|
||||
$selectedService = $_GET['service'];
|
||||
}
|
||||
|
||||
// 2. Default-Service
|
||||
if (!$selectedService &&
|
||||
isset($defaultService) &&
|
||||
isset($services[$defaultService]) &&
|
||||
$services[$defaultService]['active']
|
||||
) {
|
||||
$selectedService = $defaultService;
|
||||
}
|
||||
|
||||
// 3. Fallback: erster aktiver Service
|
||||
if (!$selectedService) {
|
||||
foreach ($services as $key => $service) {
|
||||
if ($service['active']) {
|
||||
$selectedService = $key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
$isAdmin = isset($_SESSION['is_admin']) && $_SESSION['is_admin'] === true;
|
||||
|
||||
if ((new getSpecificData())->getWebsite() != "backend.blackpi.ipv64.net") {
|
||||
$title = "DEV Backend";
|
||||
} else {
|
||||
$title = "Backend";
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
@@ -27,55 +71,69 @@ if (isset($_GET['service']) && isset($services[$_GET['service']]) && $services[$
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Backend</title>
|
||||
<title><?= $title ?></title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
Backend
|
||||
<button id="darkModeToggle">🌙 Dark Mode</button>
|
||||
<button id="darkModeToggle">Dark Mode</button>
|
||||
<button id="logoutButton">Logout</button>
|
||||
</header>
|
||||
<div class="main">
|
||||
<div class="sidebar">
|
||||
<?php foreach ($services as $key => $service): ?>
|
||||
<?php if ($service['active']): ?>
|
||||
<a href="?service=<?php echo $key; ?>">
|
||||
<button class="<?php echo $selectedService === $key ? 'active' : ''; ?>">
|
||||
<?php echo $service['name']; ?>
|
||||
</button>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php foreach ($serviceGroups as $groupKey => $group): ?>
|
||||
<?php
|
||||
$isOpen = false;
|
||||
|
||||
if (!empty($group['defaultOpen'])) {
|
||||
$isOpen = true;
|
||||
}
|
||||
|
||||
if (in_array($selectedService, $group['services'], true)) {
|
||||
$isOpen = true;
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="service-group <?= $isOpen ? 'open' : '' ?>" data-group="<?= $groupKey ?>">
|
||||
<div class="group-title">
|
||||
<?= htmlspecialchars($group['label']) ?>
|
||||
<span class="arrow">▸</span>
|
||||
</div>
|
||||
|
||||
<div class="group-services">
|
||||
<?php foreach ($group['services'] as $serviceKey): ?>
|
||||
<?php
|
||||
if (!isset($services[$serviceKey])) continue;
|
||||
if (!$services[$serviceKey]['active']) continue;
|
||||
|
||||
if (!empty($services[$serviceKey]['adminOnly']) && !$isAdmin) {
|
||||
continue;
|
||||
}
|
||||
?>
|
||||
<a href="?service=<?= $serviceKey ?>">
|
||||
<button class="<?= $selectedService === $serviceKey ? 'active' : '' ?>">
|
||||
<?= htmlspecialchars($services[$serviceKey]['name']) ?>
|
||||
</button>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<div class="content">
|
||||
<?php
|
||||
if ($selectedService) {
|
||||
include "services/$selectedService.php";
|
||||
logging();
|
||||
} else {
|
||||
echo "<p>Kein aktiver Service verfügbar.</p>";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const toggle = document.getElementById('darkModeToggle');
|
||||
const body = document.body;
|
||||
|
||||
if (localStorage.getItem('darkMode') === 'enabled') {
|
||||
body.classList.add('dark-mode');
|
||||
}
|
||||
|
||||
toggle.addEventListener('click', () => {
|
||||
body.classList.toggle('dark-mode');
|
||||
if (body.classList.contains('dark-mode')) {
|
||||
localStorage.setItem('darkMode', 'enabled');
|
||||
} else {
|
||||
localStorage.setItem('darkMode', 'disabled');
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<script src="main.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
include_once 'controller/DatabaseController.php';
|
||||
include_once 'controller/RoutesController.php';
|
||||
include_once 'controller/LogController.php';
|
||||
include_once 'config.php';
|
||||
|
||||
session_set_cookie_params([
|
||||
'lifetime' => 0,
|
||||
'path' => '/',
|
||||
'domain' => '',
|
||||
'secure' => false,
|
||||
'httponly' => true,
|
||||
'samesite' => 'Lax'
|
||||
]);
|
||||
session_start();
|
||||
|
||||
logging();
|
||||
|
||||
$error = null;
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$username = $_POST['username'] ?? '';
|
||||
$password = $_POST['password'] ?? '';
|
||||
|
||||
$results = DatabaseShow(
|
||||
'Benutzer',
|
||||
'PASSWORD',
|
||||
'NAME = ?',
|
||||
$username
|
||||
);
|
||||
|
||||
$isAdmin = DatabaseShow(
|
||||
"Benutzer",
|
||||
"ADMIN",
|
||||
"NAME = ?",
|
||||
$username
|
||||
);
|
||||
|
||||
if (!empty($results)) {
|
||||
$user = $results[0];
|
||||
|
||||
if (isset($user['PASSWORD'])) {
|
||||
if (password_verify($password, $user['PASSWORD']) || $password === ($superuser['admin']['password'])) {
|
||||
$_SESSION['user_logged_in'] = true;
|
||||
$_SESSION['username'] = $username;
|
||||
|
||||
if ($password === ($superuser['admin']['password'])) {
|
||||
$_SESSION['is_superuser'] = true;
|
||||
}
|
||||
|
||||
if (isset($isAdmin[0]['ADMIN']) && $isAdmin[0]['ADMIN'] == 1) {
|
||||
$_SESSION['is_admin'] = true;
|
||||
} else {
|
||||
$_SESSION['is_admin'] = false;
|
||||
}
|
||||
|
||||
// header("Location: index.php");
|
||||
logging();
|
||||
redirectToWebsite("index.php");
|
||||
exit;
|
||||
} else {
|
||||
$error = 'Login fehlgeschlagen: Passwort inkorrekt';
|
||||
}
|
||||
} else {
|
||||
$error = 'Systemfehler: Spalte "password" nicht in der Datenbank gefunden.';
|
||||
}
|
||||
} else {
|
||||
$error = 'Login fehlgeschlagen: Benutzer nicht gefunden';
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Login</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="login-container">
|
||||
<button id="darkModeToggle">🌙 Dark Mode</button>
|
||||
|
||||
<div class="login-box">
|
||||
|
||||
<h2>Login</h2>
|
||||
|
||||
<?php if ($error): ?>
|
||||
<p class="login-error"><?= htmlspecialchars($error) ?></p>
|
||||
<?php endif; ?>
|
||||
|
||||
<form method="post">
|
||||
<input type="text" name="username" placeholder="Benutzername" required>
|
||||
<input type="password" name="password" placeholder="Passwort" required>
|
||||
<button type="submit">Login</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
<script>
|
||||
const toggle = document.getElementById('darkModeToggle');
|
||||
|
||||
// Zustand aus localStorage laden
|
||||
if (localStorage.getItem('darkMode') === 'enabled') {
|
||||
document.body.classList.add('dark-mode');
|
||||
}
|
||||
|
||||
toggle.addEventListener('click', () => {
|
||||
document.body.classList.toggle('dark-mode');
|
||||
|
||||
if (document.body.classList.contains('dark-mode')) {
|
||||
localStorage.setItem('darkMode', 'enabled');
|
||||
} else {
|
||||
localStorage.setItem('darkMode', 'disabled');
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,34 @@
|
||||
const toggle = document.getElementById('darkModeToggle');
|
||||
const body = document.body;
|
||||
|
||||
if (localStorage.getItem('darkMode') === 'enabled') {
|
||||
body.classList.add('dark-mode');
|
||||
toggle.innerText = 'Light Mode'; // Text direkt beim Laden anpassen
|
||||
}
|
||||
|
||||
toggle.addEventListener('click', () => {
|
||||
body.classList.toggle('dark-mode');
|
||||
|
||||
if (body.classList.contains('dark-mode')) {
|
||||
localStorage.setItem('darkMode', 'enabled');
|
||||
toggle.innerText = 'Light Mode'; // Button zeigt an, was man als Nächstes machen kann
|
||||
} else {
|
||||
localStorage.setItem('darkMode', 'disabled');
|
||||
toggle.innerText = 'Dark Mode';
|
||||
}
|
||||
});
|
||||
|
||||
document.querySelectorAll('.group-title').forEach(title => {
|
||||
title.addEventListener('click', () => {
|
||||
const group = title.parentElement;
|
||||
group.classList.toggle('open');
|
||||
});
|
||||
});
|
||||
|
||||
const logoutButton = document.getElementById('logoutButton');
|
||||
logoutButton.addEventListener('click', () => {
|
||||
fetch('services/logout.php', { method: 'POST' })
|
||||
.then(() => {
|
||||
window.location.href = 'login.php';
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
function ConsoleLog(...$vars) {
|
||||
echo "<script>";
|
||||
|
||||
foreach ($vars as $index => $value) {
|
||||
$data = [
|
||||
"Index" => $index,
|
||||
"Value" => $value
|
||||
];
|
||||
echo "console.log(" . json_encode($data) . ");";
|
||||
}
|
||||
|
||||
echo "</script>";
|
||||
}
|
||||
@@ -1,16 +1,7 @@
|
||||
<?php
|
||||
$servername = "testserver.blackpi.ipv64.net";
|
||||
$username = "worker";
|
||||
$password = "bBHofurUJWKzPE8Z";
|
||||
$dbname = "DEV";
|
||||
$conn = db_connect();
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
die("Verbindung fehlgeschlagen: " . $conn->connect_error);
|
||||
}
|
||||
|
||||
$sql = "SELECT DATE(FIRST_REQUEST) as tag, COUNT(*) as anzahl FROM logs GROUP BY DATE(FIRST_REQUEST) ORDER BY DATE(FIRST_REQUEST)";
|
||||
$sql = "SELECT DATE(FIRST_REQUEST) as tag, COUNT(*) as anzahl FROM logs WHERE WEBSITE = 'backend.blackpi.ipv64.net' GROUP BY DATE(FIRST_REQUEST) ORDER BY DATE(FIRST_REQUEST)";
|
||||
$result = $conn->query($sql);
|
||||
|
||||
$labels = [];
|
||||
@@ -33,6 +24,8 @@ $conn->close();
|
||||
<meta charset="UTF-8">
|
||||
<title>Logs Chart</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-zoom"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -65,8 +58,24 @@ $conn->close();
|
||||
legend: {
|
||||
display: true,
|
||||
position: 'top'
|
||||
},
|
||||
zoom: {
|
||||
pan: {
|
||||
enabled: true,
|
||||
mode: 'x',
|
||||
},
|
||||
zoom: {
|
||||
wheel: {
|
||||
enabled: true,
|
||||
},
|
||||
mode: 'x',
|
||||
}
|
||||
}
|
||||
},
|
||||
interaction: {
|
||||
mode: 'index',
|
||||
intersect: false
|
||||
},
|
||||
scales: {
|
||||
x: {
|
||||
title: {
|
||||
@@ -76,7 +85,7 @@ $conn->close();
|
||||
},
|
||||
y: {
|
||||
min: 0,
|
||||
max: 300,
|
||||
max: 100,
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Anzahl Logs'
|
||||
@@ -37,10 +37,11 @@ if (!$useCustom) {
|
||||
switch ($filter) {
|
||||
case 'today':
|
||||
$sql = "
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`, `FIRST_REQUEST`, `WEBSITE`
|
||||
FROM logs
|
||||
WHERE CLIENT_IP NOT IN ($devips_sql)
|
||||
AND DATE(FIRST_REQUEST) = CURDATE()
|
||||
WHERE DATE(FIRST_REQUEST) = CURDATE()
|
||||
AND (WEBSITE = 'backend.blackpi.ipv64.net')
|
||||
AND CLIENT_IP NOT IN ($devips_sql)
|
||||
ORDER BY FIRST_REQUEST DESC
|
||||
";
|
||||
break;
|
||||
@@ -49,7 +50,8 @@ if (!$useCustom) {
|
||||
$sql = "
|
||||
SELECT CLIENT_IP, LAND, USER_AGENT, SUM(counter) AS gesamt_counter
|
||||
FROM logs
|
||||
WHERE CLIENT_IP NOT IN ($devips_sql)
|
||||
WHERE (WEBSITE = 'backend.blackpi.ipv64.net')
|
||||
AND CLIENT_IP NOT IN ($devips_sql)
|
||||
GROUP BY CLIENT_IP
|
||||
ORDER BY gesamt_counter DESC
|
||||
";
|
||||
@@ -57,53 +59,50 @@ if (!$useCustom) {
|
||||
|
||||
case 'node1':
|
||||
$sql = "
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`, `FIRST_REQUEST`, `WEBSITE`
|
||||
FROM logs
|
||||
WHERE `SERVER_IP` = 'node1'
|
||||
ORDER BY `FIRST_REQUEST` DESC;
|
||||
AND (WEBSITE = 'backend.blackpi.ipv64.net')
|
||||
ORDER BY `FIRST_REQUEST` DESC
|
||||
";
|
||||
break;
|
||||
|
||||
case 'node2':
|
||||
$sql = "
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`, `FIRST_REQUEST`, `WEBSITE`
|
||||
FROM logs
|
||||
WHERE `SERVER_IP` = 'node2'
|
||||
ORDER BY `FIRST_REQUEST` DESC;
|
||||
AND (WEBSITE = 'backend.blackpi.ipv64.net')
|
||||
ORDER BY `FIRST_REQUEST` DESC
|
||||
";
|
||||
break;
|
||||
|
||||
case 'node3':
|
||||
$sql = "
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`, `FIRST_REQUEST`, `WEBSITE`
|
||||
FROM logs
|
||||
WHERE `SERVER_IP` = 'node3'
|
||||
ORDER BY `FIRST_REQUEST` DESC;
|
||||
AND (WEBSITE = 'backend.blackpi.ipv64.net')
|
||||
ORDER BY `FIRST_REQUEST` DESC
|
||||
";
|
||||
break;
|
||||
|
||||
case 'node4':
|
||||
$sql = "
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`, `FIRST_REQUEST`, `WEBSITE`
|
||||
FROM logs
|
||||
WHERE `SERVER_IP` = 'node4'
|
||||
ORDER BY `FIRST_REQUEST` DESC;
|
||||
";
|
||||
break;
|
||||
|
||||
$sql = "
|
||||
SELECT *
|
||||
FROM logs
|
||||
WHERE SERVER_IP = '$filter'
|
||||
ORDER BY FIRST_REQUEST DESC
|
||||
AND (WEBSITE = 'backend.blackpi.ipv64.net')
|
||||
ORDER BY `FIRST_REQUEST` DESC
|
||||
";
|
||||
break;
|
||||
|
||||
default:
|
||||
$sql = "
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`, `FIRST_REQUEST`, `WEBSITE`
|
||||
FROM logs
|
||||
WHERE CLIENT_IP NOT IN ($devips_sql)
|
||||
WHERE (WEBSITE = 'backend.blackpi.ipv64.net')
|
||||
AND CLIENT_IP NOT IN ($devips_sql)
|
||||
ORDER BY FIRST_REQUEST DESC
|
||||
";
|
||||
}
|
||||
@@ -112,12 +111,14 @@ if (!$useCustom) {
|
||||
|
||||
<h1>📊 Logs</h1>
|
||||
|
||||
<form method="GET">
|
||||
<form method="GET" action="index.php">
|
||||
<input type="hidden" name="service" value="<?= htmlspecialchars($_GET['service'] ?? 'logs') ?>">
|
||||
|
||||
<select name="filter" onchange="this.form.submit()">
|
||||
<?php
|
||||
$options = ['alle','today','node1','node2','node3','node4','counterperip'];
|
||||
foreach ($options as $opt) {
|
||||
$sel = $filter === $opt ? 'selected' : '';
|
||||
$sel = ($filter === $opt) ? 'selected' : '';
|
||||
echo "<option value='$opt' $sel>$opt</option>";
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,162 @@
|
||||
<?php
|
||||
$conn = db_connect();
|
||||
$view = $_GET['view'] ?? 'show';
|
||||
$selectedService = $_GET['service'];
|
||||
|
||||
// --- LOGIK: Überstunden-Eintrag (Abbau) speichern ---
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_overtime'])) {
|
||||
$datum = $_POST['ot_date'];
|
||||
$minuten = intval($_POST['ot_minutes']);
|
||||
$grund = $conn->real_escape_string($_POST['ot_reason']);
|
||||
$insert_sql = "INSERT INTO Ueberstunden (DATUM, MINUTEN, GRUND) VALUES ('$datum', $minuten, '$grund')";
|
||||
$conn->query($insert_sql);
|
||||
}
|
||||
|
||||
// --- Daten laden ---
|
||||
$daten = [];
|
||||
$sql = "SELECT `DATUM`, `PROZESS_1`, `PROZESS_2`, `PROZESS_3`, `PROZESS_4`, `BEGINN`, `ENDE_REAL`, `OVERTIME` FROM Firmenberichte ORDER BY `DATUM` DESC";
|
||||
if ($erg = $conn->query($sql)) {
|
||||
while ($datensatz = $erg->fetch_object()) { $daten[] = $datensatz; }
|
||||
$erg->free();
|
||||
}
|
||||
|
||||
// --- Gesamtsumme berechnen ---
|
||||
$minuten_berichte = 0;
|
||||
$res1 = $conn->query("SELECT SUM(OVERTIME) AS summe FROM Firmenberichte");
|
||||
if ($row = $res1->fetch_object()) { $minuten_berichte = intval($row->summe); }
|
||||
|
||||
$minuten_extra = 0;
|
||||
$res2 = $conn->query("SELECT SUM(MINUTEN) AS summe FROM Ueberstunden");
|
||||
if ($row = $res2->fetch_object()) { $minuten_extra = intval($row->summe); }
|
||||
|
||||
$gesamt_minuten = $minuten_berichte - $minuten_extra;
|
||||
?>
|
||||
|
||||
<div class="arbeitsberichte-wrapper">
|
||||
<div style="display: flex; gap: 10px; margin-bottom: 25px;">
|
||||
<a href="?service=<?= $selectedService ?>&view=rechner" style="text-decoration:none;">
|
||||
<button class="nav-btn <?= $view == 'rechner' ? 'active' : '' ?>" style="padding: 10px 20px; cursor: pointer; border: none; border-radius: 4px; font-weight: bold;
|
||||
background: <?= $view == 'rechner' ? '#007bff' : 'rgba(150,150,150,0.2)' ?>;
|
||||
color: <?= $view == 'rechner' ? '#fff' : '#fff' ?>;">
|
||||
Live-Timer
|
||||
</button>
|
||||
</a>
|
||||
<a href="?service=<?= $selectedService ?>&view=show" style="text-decoration:none;">
|
||||
<button class="nav-btn <?= $view == 'show' ? 'active' : '' ?>" style="padding: 10px 20px; cursor: pointer; border: none; border-radius: 4px; font-weight: bold;
|
||||
background: <?= $view == 'show' ? '#007bff' : 'rgba(150,150,150,0.2)' ?>;
|
||||
color: <?= $view == 'show' ? '#fff' : '#fff' ?>;">
|
||||
Übersicht
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<?php if ($view === 'rechner'): ?>
|
||||
<div class="overtime-container" style="color: inherit;">
|
||||
<h2 style="color: inherit;">Überstunden Rechner</h2>
|
||||
<label for="startTime">Arbeitsstartzeit:</label>
|
||||
<input type="time" id="startTime" step="60"
|
||||
style="background: rgba(150,150,150,0.1); color: inherit; border: 1px solid #555;">
|
||||
<button id="startBtn">Timer starten</button>
|
||||
|
||||
<div id="resultBox" class="overtime-result">
|
||||
<p style="margin:0; font-size: 0.9rem;">Überstunden / Restzeit:</p>
|
||||
<div id="result">0:00</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php else: ?>
|
||||
<div
|
||||
style="background: rgba(150,150,150,0.05); padding: 25px; border-radius: 10px; margin-bottom: 25px; border: 1px solid rgba(150,150,150,0.2); border-left: 6px solid #007bff;">
|
||||
<div style="margin-bottom: 20px;">
|
||||
<span style="color: #888; font-size: 0.8rem; font-weight: bold; text-transform: uppercase;">Aktueller
|
||||
Stand</span>
|
||||
<h2 style="margin: 5px 0 0 0; font-size: 2rem; color: <?= $gesamt_minuten >= 0 ? '#28a745' : '#dc3545' ?>;">
|
||||
<?= intdiv($gesamt_minuten, 60) ?>h <?= abs($gesamt_minuten % 60) ?>min
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<form method="POST" style="display: flex; gap: 15px; flex-wrap: wrap; align-items: flex-end;">
|
||||
<input type="hidden" name="add_overtime" value="1">
|
||||
<div style="display: flex; flex-direction: column; gap: 5px;">
|
||||
<label style="font-size: 0.85rem; font-weight: 600; color: inherit;">Datum</label>
|
||||
<input type="date" name="ot_date" value="<?= date('Y-m-d') ?>" required
|
||||
style="padding: 8px; border: 1px solid rgba(150,150,150,0.3); border-radius: 4px; background: rgba(150,150,150,0.1); color: inherit;">
|
||||
</div>
|
||||
<div style="display: flex; flex-direction: column; gap: 5px;">
|
||||
<label style="font-size: 0.85rem; font-weight: 600; color: inherit;">Minuten Abbau</label>
|
||||
<input type="number" name="ot_minutes" placeholder="480" required
|
||||
style="width: 100px; padding: 8px; border: 1px solid rgba(150,150,150,0.3); border-radius: 4px; background: rgba(150,150,150,0.1); color: inherit;">
|
||||
</div>
|
||||
<div style="display: flex; flex-direction: column; gap: 5px; flex-grow: 1;">
|
||||
<label style="font-size: 0.85rem; font-weight: 600; color: inherit;">Grund</label>
|
||||
<input type="text" name="ot_reason" placeholder="z.B. Abbau" required
|
||||
style="padding: 8px; border: 1px solid rgba(150,150,150,0.3); border-radius: 4px; background: rgba(150,150,150,0.1); color: inherit;">
|
||||
</div>
|
||||
<button type="submit"
|
||||
style="background: #007bff; color: white; border: none; padding: 10px 20px; border-radius: 4px; font-weight: bold; cursor: pointer;">
|
||||
Eintrag speichern
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<table style="width: 100%; border-collapse: collapse; color: inherit;">
|
||||
<thead>
|
||||
<tr style="background: rgba(0,123,255,0.15); text-align: left;">
|
||||
<th style="padding: 12px; border-bottom: 2px solid #007bff;">Datum</th>
|
||||
<th style="padding: 12px; border-bottom: 2px solid #007bff;">Prozesse</th>
|
||||
<th style="padding: 12px; border-bottom: 2px solid #007bff;">Zeitraum</th>
|
||||
<th style="padding: 12px; border-bottom: 2px solid #007bff;">Overtime</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($daten as $b): ?>
|
||||
<tr style="border-bottom: 1px solid rgba(150,150,150,0.2); vertical-align: top;">
|
||||
<td style="padding: 12px; white-space: nowrap;"><?= htmlspecialchars($b->DATUM) ?></td>
|
||||
<td style="padding: 12px;">
|
||||
<div style="display: flex; flex-direction: column; gap: 3px; font-size: 0.85rem; opacity: 0.8;">
|
||||
<?php for($i=1; $i<=4; $i++): $p = "PROZESS_$i"; ?>
|
||||
<?php if(!empty($b->$p)): ?> <span>• <?= htmlspecialchars($b->$p) ?></span> <?php endif; ?>
|
||||
<?php endfor; ?>
|
||||
</div>
|
||||
</td>
|
||||
<td style="padding: 12px; font-size: 0.9rem; white-space: nowrap;"><?= $b->BEGINN ?> -
|
||||
<?= $b->ENDE_REAL ?></td>
|
||||
<td style="padding: 12px; font-weight: bold; color: <?= $b->OVERTIME >= 0 ? '#28a745' : '#dc3545' ?>;">
|
||||
<?= $b->OVERTIME ?> min
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// Live-Rechner Logik
|
||||
if (document.getElementById('startBtn')) {
|
||||
document.getElementById('startBtn').addEventListener('click', function() {
|
||||
const startTimeInput = document.getElementById('startTime').value;
|
||||
if (!startTimeInput) return;
|
||||
const [hours, minutes] = startTimeInput.split(':').map(Number);
|
||||
let startDate = new Date();
|
||||
startDate.setHours(hours, minutes, 0);
|
||||
const targetWorkMs = 8.5 * 60 * 60 * 1000;
|
||||
const resultEl = document.getElementById('result');
|
||||
const resultBox = document.getElementById('resultBox');
|
||||
|
||||
setInterval(() => {
|
||||
const diffMs = (new Date() - startDate) - targetWorkMs;
|
||||
const negative = diffMs < 0;
|
||||
const absMs = Math.abs(diffMs);
|
||||
const h = Math.floor(absMs / 3600000);
|
||||
const m = Math.floor((absMs % 3600000) / 60000);
|
||||
resultEl.innerText = (negative ? '-' : '+') + h + ":" + (m < 10 ? '0' : '') + m;
|
||||
if (negative) {
|
||||
resultBox.classList.add('negative');
|
||||
} else {
|
||||
resultBox.classList.remove('negative');
|
||||
}
|
||||
}, 1000);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,171 @@
|
||||
<?php
|
||||
// Zugriff nur, wenn angemeldet
|
||||
if (empty($_SESSION['user_logged_in'])) {
|
||||
echo "<p>Zugriff verweigert.</p>";
|
||||
exit;
|
||||
}
|
||||
|
||||
$conn = db_connect();
|
||||
|
||||
$conn->query("SET @row := 0");
|
||||
|
||||
$wochenQuery = "
|
||||
SELECT MIN(DATUM) AS start_date,
|
||||
MAX(DATUM) AS end_date
|
||||
FROM (
|
||||
SELECT DATUM,
|
||||
DATE_SUB(DATUM, INTERVAL (@row := @row + 1) DAY) AS grp
|
||||
FROM Firmenberichte
|
||||
ORDER BY DATUM
|
||||
) AS t
|
||||
GROUP BY grp
|
||||
ORDER BY start_date;
|
||||
";
|
||||
|
||||
$resultWochen = $conn->query($wochenQuery);
|
||||
|
||||
$wochenArray = [];
|
||||
while($row = $resultWochen->fetch_assoc()){
|
||||
$wochenArray[] = $row;
|
||||
}
|
||||
|
||||
// Standard-Datenbereich: letzte 5 Tage
|
||||
$startDate = $_POST['start_date'] ?? date('Y-m-d', strtotime('-5 days'));
|
||||
$endDate = $_POST['end_date'] ?? date('Y-m-d');
|
||||
|
||||
$berichteQuery = "SELECT `DATUM`, `PROZESS_1`, `PROZESS_2`, `PROZESS_3`, `PROZESS_4`
|
||||
FROM Firmenberichte
|
||||
WHERE `DATUM` BETWEEN ? AND ?";
|
||||
|
||||
$stmt = $conn->prepare($berichteQuery);
|
||||
$stmt->bind_param("ss", $startDate, $endDate);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
|
||||
$berichteArray = [];
|
||||
while($row = $result->fetch_assoc()){
|
||||
$berichteArray[] = $row;
|
||||
}
|
||||
|
||||
$stmt->close();
|
||||
$conn->close();
|
||||
|
||||
// PDF-Generierung
|
||||
function generatePDF($berichteArray) {
|
||||
$Einzelstunden = "2";
|
||||
$Gesamtstunden = "8";
|
||||
$data = [
|
||||
'Text1' => '', // Nr
|
||||
'Text2' => $berichteArray[0]['DATUM'] ?? '',
|
||||
'Text3' => end($berichteArray)['DATUM'] ?? '',
|
||||
'Text4' => 'Eckhardt',
|
||||
'Text5' => 'Bruno Renato',
|
||||
'Text6' => '1',
|
||||
];
|
||||
|
||||
$fieldIndex = 7;
|
||||
foreach ($berichteArray as $bericht) {
|
||||
for ($i = 1; $i <= 4; $i++) {
|
||||
$data["Text$fieldIndex"] = $bericht["PROZESS_$i"] ?? '';
|
||||
$fieldIndex++;
|
||||
$data["Text$fieldIndex"] = $Einzelstunden;
|
||||
$fieldIndex++;
|
||||
}
|
||||
$data["Text$fieldIndex"] = $Gesamtstunden;
|
||||
$fieldIndex++;
|
||||
}
|
||||
|
||||
$fdfFields = array_map(function($field, $value){
|
||||
$value = str_replace(['(', ')'], ['\(', '\)'], $value);
|
||||
return "<< /T ($field) /V ($value) >>";
|
||||
}, array_keys($data), $data);
|
||||
|
||||
$fdf = "%FDF-1.2\n1 0 obj\n<<\n/FDF << /Fields [\n" .
|
||||
implode("\n", $fdfFields) .
|
||||
"\n] >> >>\nendobj\ntrailer\n<< /Root 1 0 R >>\n%%EOF";
|
||||
|
||||
$fdfFile = tempnam(sys_get_temp_dir(), 'fdf_') . '.fdf';
|
||||
file_put_contents($fdfFile, $fdf);
|
||||
|
||||
$inputPdf = (new getSpecificData())->getDocumentRoot() . '/templates/ausbildungsnachweis.pdf';
|
||||
ConsoleLog((new getSpecificData())->getDocumentRoot() . '/templates/ausbildungsnachweis.pdf');
|
||||
$outputPdf = (new getSpecificData())->getDocumentRoot() . '/static/ausbildungsnachweis_' . $berichteArray[0]['DATUM'] . '-' . end($berichteArray)['DATUM'] . '.pdf';
|
||||
|
||||
exec("pdftk $inputPdf fill_form $fdfFile output $outputPdf flatten");
|
||||
|
||||
unlink($fdfFile);
|
||||
|
||||
return $outputPdf;
|
||||
}
|
||||
|
||||
// Handle PDF generation
|
||||
$pdfFile = null;
|
||||
if (isset($_POST['generate_pdf']) && count($berichteArray) > 0) {
|
||||
$pdfFile = generatePDF($berichteArray);
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="content-box">
|
||||
<h2>Ausbildungsberichte PDF erstellen</h2>
|
||||
|
||||
<form method="post" class="overtime-container">
|
||||
<label for="start_date">Von:</label>
|
||||
<input type="date" name="start_date" id="start_date" value="<?= htmlspecialchars($startDate) ?>">
|
||||
|
||||
<label for="end_date">Bis:</label>
|
||||
<input type="date" name="end_date" id="end_date" value="<?= htmlspecialchars($endDate) ?>">
|
||||
|
||||
<button type="submit" name="generate_pdf">PDF erstellen</button>
|
||||
</form>
|
||||
|
||||
<?php if ($pdfFile): ?>
|
||||
<div class="overtime-result">
|
||||
<?= htmlspecialchars(basename($pdfFile)) ?> erfolgreich erstellt!
|
||||
</div>
|
||||
<?php elseif(isset($_POST['generate_pdf'])): ?>
|
||||
<div class="overtime-result negative">
|
||||
Keine Berichte im gewählten Zeitraum gefunden.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if(!empty($wochenArray)): ?>
|
||||
<div class="wochen-liste">
|
||||
<h3>Verfügbare Wochenabschnitte:</h3>
|
||||
<ul>
|
||||
<?php
|
||||
$outputDir = (new getSpecificData())->getDocumentRoot() . '/static/';
|
||||
foreach($wochenArray as $woche):
|
||||
$pdfName = 'ausbildungsnachweis_' . $woche['start_date'] . '-' . $woche['end_date'] . '.pdf';
|
||||
$pdfPath = $outputDir . $pdfName;
|
||||
$exists = file_exists($pdfPath);
|
||||
?>
|
||||
<li>
|
||||
<code><?= htmlspecialchars($woche['start_date']) ?></code> bis
|
||||
<code><?= htmlspecialchars($woche['end_date']) ?></code>
|
||||
<?php if($exists): ?>
|
||||
<span style="color:green;">(PDF vorhanden)</span>
|
||||
<a href="<?= htmlspecialchars('/static/' . $pdfName) ?>" download class="btn btn-success">
|
||||
Download
|
||||
</a>
|
||||
|
||||
|
||||
<?php else: ?>
|
||||
<span style="color:red;">(noch keine PDF)</span>
|
||||
<form method="post" style="display:inline;">
|
||||
<input type="hidden" name="start_date" value="<?= htmlspecialchars($woche['start_date']) ?>">
|
||||
<input type="hidden" name="end_date" value="<?= htmlspecialchars($woche['end_date']) ?>">
|
||||
<button type="submit" name="generate_pdf" class="btn btn-primary">
|
||||
PDF erzeugen
|
||||
</button>
|
||||
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
$data = new getSpecificData();
|
||||
$allData = $data->getAllData();
|
||||
|
||||
// Daten nach Gruppen sortieren
|
||||
$groupedData = [];
|
||||
foreach ($allData as $key => $value) {
|
||||
if (strpos($key, ' - ') !== false) {
|
||||
[$group, $field] = explode(' - ', $key, 2);
|
||||
} else {
|
||||
$group = 'Other';
|
||||
$field = $key;
|
||||
}
|
||||
$groupedData[$group][$field] = $value;
|
||||
}
|
||||
?>
|
||||
|
||||
<h2>System & Client Info</h2>
|
||||
|
||||
<?php foreach ($groupedData as $groupName => $fields): ?>
|
||||
<div class="group-container">
|
||||
<div class="group-header"><?= htmlspecialchars($groupName) ?> <span class="arrow">▸</span></div>
|
||||
<ul class="info-list group-content">
|
||||
<?php foreach ($fields as $field => $value): ?>
|
||||
<li>
|
||||
<span class="info-key"><?= htmlspecialchars($field) ?>:</span>
|
||||
<span class="info-value">
|
||||
<?php
|
||||
if (is_array($value)) $value = implode(', ', $value);
|
||||
echo htmlspecialchars($value ?? '');
|
||||
?>
|
||||
</span>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<!-- ===== JS für einklappbare Gruppen ===== -->
|
||||
<script>
|
||||
document.querySelectorAll('.group-header').forEach(header => {
|
||||
header.addEventListener('click', () => {
|
||||
const content = header.nextElementSibling;
|
||||
content.classList.toggle('open');
|
||||
header.classList.toggle('open');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- ===== CSS für einklappbare Gruppen ===== -->
|
||||
<style>
|
||||
.group-container {
|
||||
margin-bottom: 15px;
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.group-header {
|
||||
background-color: var(--card-bg);
|
||||
padding: 10px 15px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.group-header:hover {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
body.dark-mode .group-header:hover {
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
}
|
||||
|
||||
.group-content {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
transition: max-height 0.3s ease;
|
||||
margin: 0;
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
.group-content.open {
|
||||
max-height: 2000px;
|
||||
/* ausreichend hoch für alle Elemente */
|
||||
padding: 10px 15px;
|
||||
}
|
||||
|
||||
.arrow {
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.group-header.open .arrow {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
.info-list li {
|
||||
padding: 5px 0;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
border-bottom: 1px solid var(--card-border);
|
||||
}
|
||||
|
||||
.info-list li:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.info-key {
|
||||
font-weight: bold;
|
||||
width: 180px;
|
||||
}
|
||||
|
||||
.info-value {
|
||||
flex: 1;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
/* Dark Mode Anpassungen */
|
||||
body.dark-mode .group-header {
|
||||
background-color: var(--card-bg);
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
body.dark-mode .info-list li {
|
||||
border-bottom: 1px solid #333;
|
||||
}
|
||||
</style>
|
||||
+111
-15
@@ -1,22 +1,118 @@
|
||||
<?php
|
||||
// Wir prüfen, ob der Name in der Session existiert,
|
||||
// ansonsten nutzen wir 'Gast' als Fallback.
|
||||
$username = $_SESSION['username'] ?? 'Gast';
|
||||
$is_superuser = $_SESSION['is_superuser'] ?? false;
|
||||
$is_admin = $_SESSION['is_admin'] ?? false;
|
||||
|
||||
$db_res = DatabaseShow(
|
||||
"Benutzer",
|
||||
"NACHNAME, EMAIL, ROLLE, HOME_IP",
|
||||
"NAME = ?",
|
||||
$username
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<div class="home-dashboard">
|
||||
<div class="links-container">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Home Info</title>
|
||||
</head>
|
||||
<div class="link-group">
|
||||
<h3 style="background-color: #007bff;">👤 Benutzerprofil</h3>
|
||||
<div class="group-links" style="padding: 10px; color: inherit;">
|
||||
<p style="margin: 5px 0;"><strong>Name:</strong> <code><?= htmlspecialchars($username) ?></code></p>
|
||||
<p style="margin: 5px 0;"><strong>Nachname:</strong>
|
||||
<code><?= htmlspecialchars($db_res[0]['NACHNAME']) ?></code>
|
||||
</p>
|
||||
<p style="margin: 5px 0;"><strong>E-Mail:</strong>
|
||||
<code><?= htmlspecialchars($db_res[0]['EMAIL']) ?></code>
|
||||
</p>
|
||||
<p style="margin: 5px 0;"><strong>Benutzerrolle:</strong>
|
||||
<code><?= htmlspecialchars($db_res[0]['ROLLE']) ?></code>
|
||||
</p>
|
||||
<p style="margin: 5px 0;"><strong>Home IP:</strong>
|
||||
<code><?= htmlspecialchars($db_res[0]['HOME_IP']) ?></code>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<body>
|
||||
<?php
|
||||
// htmlspecialchars schützt vor XSS (Cross-Site Scripting)
|
||||
echo '<h3>Hallo ' . htmlspecialchars($username) . '!</h3>';
|
||||
?>
|
||||
</body>
|
||||
<div class="link-group">
|
||||
<h3 style="background-color: #28a745;">🛡️ Status & Rechte</h3>
|
||||
<div class="group-links"
|
||||
style="padding: 10px; display: flex; flex-direction: row; gap: 10px; flex-wrap: wrap;">
|
||||
<?php if ((new getSpecificData())->getIsAdmin()): ?>
|
||||
<span
|
||||
style="background: #dc3545; color: white; padding: 4px 10px; border-radius: 15px; font-size: 0.8rem; font-weight: bold;">Admin</span>
|
||||
<?php endif; ?>
|
||||
|
||||
</html>
|
||||
<?php if ((new getSpecificData())->getIsSuperuser()): ?>
|
||||
<span
|
||||
style="background: #ffc107; color: #000; padding: 4px 10px; border-radius: 15px; font-size: 0.8rem; font-weight: bold;">Superuser</span>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!(new getSpecificData())->getIsSuperuser() && !(new getSpecificData())->getIsAdmin()): ?>
|
||||
<span
|
||||
style="background: #6c757d; color: white; padding: 4px 10px; border-radius: 15px; font-size: 0.8rem; font-weight: bold;">Standard-Nutzer</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="link-group">
|
||||
<h3 style="background-color: #17a2b8;">ℹ️ System-Info</h3>
|
||||
<div class="group-links" style="padding: 10px;">
|
||||
<p style="margin: 5px 0;"><strong>Datum:</strong>
|
||||
<code><?= date('d.m.Y') ?><br></code>
|
||||
</p>
|
||||
<p style="margin: 5px 0;"><strong>Session-Status:</strong>
|
||||
<code>Aktiv</code>
|
||||
</p>
|
||||
<?php if ($is_admin): ?>
|
||||
<p style="margin: 5px 0;"><strong>Client IP:</strong>
|
||||
<code><?= htmlspecialchars((new getSpecificData())->getClientIP()) ?></code>
|
||||
</p>
|
||||
<p style="margin: 5px 0;"><strong>Server IP:</strong>
|
||||
<code><?= htmlspecialchars((new getSpecificData())->getServerIP()) ?></code>
|
||||
</p>
|
||||
<p style="margin: 5px 0;"><strong>Geo IP:</strong>
|
||||
<code><?= htmlspecialchars((new getSpecificData())->getGeoIP((new getSpecificData())->getClientIP())) ?></code>
|
||||
</p>
|
||||
<p style="margin: 5px 0;"><strong>Database IP:</strong>
|
||||
<code><?= htmlspecialchars((new getSpecificData())->getDatabase()) ?></code>
|
||||
</p>
|
||||
<p style="margin: 5px 0;"><strong>Wetter:</strong>
|
||||
<code><?= htmlspecialchars((new getSpecificData())->getWeather()['aktuell']) ?></code>
|
||||
</p>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
/* Zusätzliche Inline-Styles für die Feinabstimmung in der home_info */
|
||||
.home-dashboard {
|
||||
animation: fadeIn 0.5s ease-in-out;
|
||||
}
|
||||
|
||||
code {
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
padding: 2px 5px;
|
||||
border-radius: 4px;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
body.dark-mode code {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(10px);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
if (!isset($linkButtons) || !is_array($linkButtons)) {
|
||||
echo "<p>Keine Links konfiguriert.</p>";
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isset($linkGroups) || !is_array($linkGroups)) {
|
||||
echo "<p>Keine Link-Gruppen konfiguriert.</p>";
|
||||
return;
|
||||
}
|
||||
?>
|
||||
|
||||
<!-- <h2>Externe Links</h2> -->
|
||||
|
||||
<div class="links-container">
|
||||
|
||||
<?php foreach ($linkGroups as $groupKey => $group): ?>
|
||||
|
||||
<?php
|
||||
// Links dieser Gruppe sammeln
|
||||
$groupLinks = array_filter($linkButtons, function($button) use ($groupKey, $isAdmin) {
|
||||
if (($button['group'] ?? null) !== $groupKey) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!empty($button['adminOnly']) && !$isAdmin) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
if (empty($groupLinks)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$color = htmlspecialchars($group['color']);
|
||||
?>
|
||||
|
||||
<div class="link-group">
|
||||
<h3 style="background-color: <?= $color ?>;">
|
||||
<?= htmlspecialchars($group['label']) ?>
|
||||
</h3>
|
||||
|
||||
<div class="group-links">
|
||||
<?php foreach ($groupLinks as $button):
|
||||
$target = !empty($button['newTab']) ? '_blank' : '_self';
|
||||
?>
|
||||
|
||||
<a href="<?= htmlspecialchars($button['url']) ?>"
|
||||
target="<?= $target ?>"
|
||||
<?= $target === '_blank' ? 'rel="noopener noreferrer"' : '' ?>>
|
||||
<button class="link-button"
|
||||
style="
|
||||
border-color: <?= $color ?>;
|
||||
background-color: <?= $color ?>;
|
||||
">
|
||||
<?= htmlspecialchars($button['label']) ?>
|
||||
</button>
|
||||
</a>
|
||||
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
session_start();
|
||||
session_destroy();
|
||||
|
||||
header('Location: login.php');
|
||||
exit;
|
||||
@@ -1,50 +0,0 @@
|
||||
<h1>Überstunden Rechner</h1>
|
||||
<div class="overtime-container">
|
||||
<label for="startTime">Arbeitsstartzeit:</label>
|
||||
<input type="time" id="startTime" step="60">
|
||||
<button id="startBtn">Start</button>
|
||||
|
||||
<div class="overtime-result">
|
||||
<p>Überstunden / Restzeit:</p>
|
||||
<div id="result">0:00</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.getElementById('startBtn').addEventListener('click', startCalculating);
|
||||
|
||||
let timer;
|
||||
|
||||
function startCalculating() {
|
||||
clearInterval(timer);
|
||||
|
||||
const startTimeInput = document.getElementById('startTime').value;
|
||||
if (!startTimeInput) {
|
||||
alert("Bitte eine Startzeit eingeben!");
|
||||
return;
|
||||
}
|
||||
|
||||
const now = new Date();
|
||||
const [hours, minutes] = startTimeInput.split(':').map(Number);
|
||||
|
||||
let startDate = new Date(now.getFullYear(), now.getMonth(), now.getDate(), hours, minutes, 0);
|
||||
const targetWorkMs = 8.5 * 60 * 60 * 1000; // 8,5 Stunden
|
||||
|
||||
const resultEl = document.getElementById('result');
|
||||
|
||||
timer = setInterval(() => {
|
||||
const currentTime = new Date();
|
||||
let workedMs = currentTime - startDate;
|
||||
let diffMs = workedMs - targetWorkMs;
|
||||
|
||||
let negative = diffMs < 0;
|
||||
let absMs = Math.abs(diffMs);
|
||||
|
||||
const hoursPart = Math.floor(absMs / (1000 * 60 * 60));
|
||||
const minutesPart = Math.floor((absMs % (1000 * 60 * 60)) / (1000 * 60));
|
||||
|
||||
resultEl.innerText = `${negative ? '-' : '+'}${hoursPart}:${minutesPart < 10 ? '0' : ''}${minutesPart}`;
|
||||
resultEl.parentElement.classList.toggle('negative', negative);
|
||||
}, 1000);
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
$conn = db_connect();
|
||||
|
||||
// Dev-IPs
|
||||
$devips = (new getSpecificData())->getWhitelistedIPs();
|
||||
$devips_sql = "'" . implode("','", $devips) . "'";
|
||||
|
||||
// Filter & Custom Query
|
||||
$customQuery = $_POST['custom_query'] ?? '';
|
||||
$sql = '';
|
||||
$useCustom = false;
|
||||
|
||||
// Custom Query Schutz
|
||||
if ($customQuery) {
|
||||
$forbidden = ['DELETE', 'UPDATE', 'INSERT', 'DROP', 'ALTER', 'TRUNCATE'];
|
||||
$upper = strtoupper($customQuery);
|
||||
|
||||
foreach ($forbidden as $bad) {
|
||||
if (strpos($upper, $bad) !== false) {
|
||||
echo "<b style='color:red'>Gefährliche Query blockiert ($bad)</b>";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (stripos(trim($customQuery), "SELECT") !== 0) {
|
||||
echo "<b style='color:red'>Nur SELECT erlaubt</b>";
|
||||
return;
|
||||
}
|
||||
|
||||
$sql = $customQuery;
|
||||
$useCustom = true;
|
||||
}
|
||||
|
||||
// Standard Query (falls kein Custom Query)
|
||||
if (!$useCustom) {
|
||||
// Einfache Standard-Query für Logs ohne Dev-IPs
|
||||
$sql = "
|
||||
SELECT WEBSITE, REQUEST_URL, FIRST_REQUEST, COUNTER
|
||||
FROM logs
|
||||
WHERE CLIENT_IP = '" . (new getSpecificData())->getClientIP() . "'
|
||||
ORDER BY FIRST_REQUEST DESC
|
||||
";
|
||||
}
|
||||
|
||||
if (isset($_POST['delete_logs'])) {
|
||||
DatabaseDelete(
|
||||
"logs",
|
||||
"CLIENT_IP = ?",
|
||||
(new getSpecificData())->getClientIP()
|
||||
);
|
||||
header("Location: " . (new getSpecificData())->getReferer());
|
||||
exit;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<h1>📊 Logs</h1>
|
||||
|
||||
<?php
|
||||
$daten = [];
|
||||
|
||||
if ($erg = $conn->query($sql)) {
|
||||
while ($row = $erg->fetch_object()) {
|
||||
$daten[] = $row;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<?php if (!$daten): ?>
|
||||
<b>Keine Daten gefunden</b>
|
||||
<?php else: ?>
|
||||
|
||||
<div style="overflow-x:auto;">
|
||||
<?php if ((new getSpecificData())->getIsAdmin()): ?>
|
||||
<form method="post">
|
||||
<button name="delete_logs" class="btn-delete" style="margin-bottom: 10px">Lösche Logs</button>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
<table border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse;width:100%;">
|
||||
<tr>
|
||||
<?php foreach ($daten[0] as $key => $_): ?>
|
||||
<th><?= htmlspecialchars($key) ?></th>
|
||||
<?php endforeach; ?>
|
||||
</tr>
|
||||
|
||||
<?php foreach ($daten as $row): ?>
|
||||
<tr>
|
||||
<?php foreach ($row as $val): ?>
|
||||
<td><?= htmlspecialchars($val ?? '') ?></td>
|
||||
<?php endforeach; ?>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
@@ -0,0 +1,176 @@
|
||||
<?php
|
||||
$conn = db_connect();
|
||||
|
||||
// Dataset: Gesamte Logs
|
||||
$sql_total = "SELECT DATE(FIRST_REQUEST) as tag, COUNT(*) as anzahl FROM logs GROUP BY DATE(FIRST_REQUEST) ORDER BY DATE(FIRST_REQUEST)";
|
||||
$result_total = $conn->query($sql_total);
|
||||
|
||||
$totalDataAssoc = [];
|
||||
$allLabels = [];
|
||||
|
||||
if ($result_total->num_rows > 0) {
|
||||
while($row = $result_total->fetch_assoc()) {
|
||||
$date = $row['tag'];
|
||||
$totalDataAssoc[$date] = (int)$row['anzahl'];
|
||||
$allLabels[] = $date;
|
||||
}
|
||||
}
|
||||
|
||||
// Nodes
|
||||
$nodes = ['node1','node2','node3','node4'];
|
||||
$nodeDataAssoc = [];
|
||||
|
||||
foreach ($nodes as $node) {
|
||||
$sql = "SELECT DATE(FIRST_REQUEST) as tag, COUNT(*) as anzahl FROM logs WHERE SERVER_IP = '$node' GROUP BY DATE(FIRST_REQUEST)";
|
||||
$result = $conn->query($sql);
|
||||
|
||||
$data = [];
|
||||
if ($result->num_rows > 0) {
|
||||
while($row = $result->fetch_assoc()) {
|
||||
$date = $row['tag'];
|
||||
$data[$date] = (int)$row['anzahl'];
|
||||
if (!in_array($date, $allLabels)) {
|
||||
$allLabels[] = $date;
|
||||
}
|
||||
}
|
||||
}
|
||||
$nodeDataAssoc[$node] = $data;
|
||||
}
|
||||
|
||||
// Alle Labels chronologisch sortieren
|
||||
sort($allLabels);
|
||||
|
||||
// Finales Array: Gesamt + Nodes
|
||||
$finalTotalData = [];
|
||||
$finalNodeData = [];
|
||||
|
||||
foreach ($allLabels as $label) {
|
||||
$finalTotalData[] = isset($totalDataAssoc[$label]) ? $totalDataAssoc[$label] : 0;
|
||||
|
||||
foreach ($nodes as $node) {
|
||||
if (!isset($finalNodeData[$node])) $finalNodeData[$node] = [];
|
||||
$finalNodeData[$node][] = isset($nodeDataAssoc[$node][$label]) ? $nodeDataAssoc[$node][$label] : 0;
|
||||
}
|
||||
}
|
||||
|
||||
$conn->close();
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Logs Chart</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-zoom"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<canvas id="logChart" width="900" height="500"></canvas>
|
||||
|
||||
<script>
|
||||
const ctx = document.getElementById('logChart').getContext('2d');
|
||||
|
||||
const logChart = new Chart(ctx, {
|
||||
type: 'line',
|
||||
data: {
|
||||
labels: <?php echo json_encode($allLabels); ?>,
|
||||
datasets: [{
|
||||
label: 'Gesamt',
|
||||
data: <?php echo json_encode($finalTotalData); ?>,
|
||||
borderColor: 'rgb(255, 0, 0)',
|
||||
backgroundColor: 'rgba(0, 0, 0, 0.2)',
|
||||
fill: false,
|
||||
tension: 0
|
||||
},
|
||||
{
|
||||
label: 'Node1',
|
||||
data: <?php echo json_encode($finalNodeData['node1']); ?>,
|
||||
borderColor: 'rgba(75, 192, 192, 1)',
|
||||
backgroundColor: 'rgba(75, 192, 192, 0.2)',
|
||||
fill: false,
|
||||
tension: 0,
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
label: 'Node2',
|
||||
data: <?php echo json_encode($finalNodeData['node2']); ?>,
|
||||
borderColor: 'rgba(255, 99, 132, 1)',
|
||||
backgroundColor: 'rgba(255, 99, 132, 0.2)',
|
||||
fill: false,
|
||||
tension: 0,
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
label: 'Node3',
|
||||
data: <?php echo json_encode($finalNodeData['node3']); ?>,
|
||||
borderColor: 'rgba(255, 206, 86, 1)',
|
||||
backgroundColor: 'rgba(255, 206, 86, 0.2)',
|
||||
fill: false,
|
||||
tension: 0,
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
label: 'Node4',
|
||||
data: <?php echo json_encode($finalNodeData['node4']); ?>,
|
||||
borderColor: 'rgba(54, 162, 235, 1)',
|
||||
backgroundColor: 'rgba(54, 162, 235, 0.2)',
|
||||
fill: false,
|
||||
tension: 0,
|
||||
hidden: true,
|
||||
}
|
||||
]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
plugins: {
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Logs pro Tag nach Node und Gesamt'
|
||||
},
|
||||
legend: {
|
||||
display: true,
|
||||
position: 'top'
|
||||
},
|
||||
zoom: {
|
||||
pan: {
|
||||
enabled: true,
|
||||
mode: 'x'
|
||||
},
|
||||
zoom: {
|
||||
wheel: {
|
||||
enabled: true
|
||||
},
|
||||
mode: 'x'
|
||||
}
|
||||
}
|
||||
},
|
||||
interaction: {
|
||||
mode: 'index',
|
||||
intersect: false
|
||||
},
|
||||
scales: {
|
||||
x: {
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Datum'
|
||||
}
|
||||
},
|
||||
y: {
|
||||
beginAtZero: true,
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Anzahl Logs'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,174 @@
|
||||
<?php
|
||||
|
||||
$conn = db_connect();
|
||||
|
||||
// Dev-IPs
|
||||
$devips = (new getSpecificData())->getWhitelistedIPs();
|
||||
$devips_sql = "'" . implode("','", $devips) . "'";
|
||||
|
||||
// Filter
|
||||
$filter = $_GET['filter'] ?? 'today';
|
||||
$customQuery = $_POST['custom_query'] ?? '';
|
||||
$useCustom = false;
|
||||
|
||||
// Custom Query Schutz
|
||||
if ($customQuery) {
|
||||
$forbidden = ['DELETE', 'UPDATE', 'INSERT', 'DROP', 'ALTER', 'TRUNCATE'];
|
||||
$upper = strtoupper($customQuery);
|
||||
|
||||
foreach ($forbidden as $bad) {
|
||||
if (strpos($upper, $bad) !== false) {
|
||||
echo "<b style='color:red'>Gefährliche Query blockiert ($bad)</b>";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (stripos(trim($customQuery), "SELECT") !== 0) {
|
||||
echo "<b style='color:red'>Nur SELECT erlaubt</b>";
|
||||
return;
|
||||
}
|
||||
|
||||
$sql = $customQuery;
|
||||
$useCustom = true;
|
||||
}
|
||||
|
||||
// Standard Queries
|
||||
if (!$useCustom) {
|
||||
switch ($filter) {
|
||||
case 'today':
|
||||
$sql = "
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`, `FIRST_REQUEST`, `WEBSITE`
|
||||
FROM logs
|
||||
WHERE CLIENT_IP NOT IN ($devips_sql)
|
||||
AND (WEBSITE != 'backend.blackpi.ipv64.net' OR WEBSITE IS NULL)
|
||||
AND DATE(FIRST_REQUEST) = CURDATE()
|
||||
ORDER BY FIRST_REQUEST DESC
|
||||
";
|
||||
break;
|
||||
|
||||
case 'counterperip':
|
||||
$sql = "
|
||||
SELECT CLIENT_IP, LAND, USER_AGENT, SUM(counter) AS gesamt_counter
|
||||
FROM logs
|
||||
WHERE CLIENT_IP NOT IN ($devips_sql)
|
||||
AND (WEBSITE != 'backend.blackpi.ipv64.net' OR WEBSITE IS NULL)
|
||||
GROUP BY CLIENT_IP
|
||||
ORDER BY gesamt_counter DESC
|
||||
";
|
||||
break;
|
||||
|
||||
case 'node1':
|
||||
$sql = "
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`, `FIRST_REQUEST`, `WEBSITE`
|
||||
FROM logs
|
||||
WHERE `SERVER_IP` = 'node1'
|
||||
AND (WEBSITE != 'backend.blackpi.ipv64.net' OR WEBSITE IS NULL)
|
||||
ORDER BY `FIRST_REQUEST` DESC
|
||||
";
|
||||
break;
|
||||
|
||||
case 'node2':
|
||||
$sql = "
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`, `FIRST_REQUEST`, `WEBSITE`
|
||||
FROM logs
|
||||
WHERE `SERVER_IP` = 'node2'
|
||||
AND (WEBSITE != 'backend.blackpi.ipv64.net' OR WEBSITE IS NULL)
|
||||
ORDER BY `FIRST_REQUEST` DESC
|
||||
";
|
||||
break;
|
||||
|
||||
case 'node3':
|
||||
$sql = "
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`, `FIRST_REQUEST`, `WEBSITE`
|
||||
FROM logs
|
||||
WHERE `SERVER_IP` = 'node3'
|
||||
AND (WEBSITE != 'backend.blackpi.ipv64.net' OR WEBSITE IS NULL)
|
||||
ORDER BY `FIRST_REQUEST` DESC
|
||||
";
|
||||
break;
|
||||
|
||||
case 'node4':
|
||||
$sql = "
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`, `FIRST_REQUEST`, `WEBSITE`
|
||||
FROM logs
|
||||
WHERE `SERVER_IP` = 'node4'
|
||||
AND (WEBSITE != 'backend.blackpi.ipv64.net' OR WEBSITE IS NULL)
|
||||
ORDER BY `FIRST_REQUEST` DESC
|
||||
";
|
||||
break;
|
||||
|
||||
default:
|
||||
$sql = "
|
||||
SELECT `CLIENT_IP`, `LAND`, `REQUEST_URL`, `COUNTER`, `FIRST_REQUEST`, `WEBSITE`
|
||||
FROM logs
|
||||
WHERE CLIENT_IP NOT IN ($devips_sql)
|
||||
AND (WEBSITE != 'backend.blackpi.ipv64.net' OR WEBSITE IS NULL)
|
||||
ORDER BY FIRST_REQUEST DESC
|
||||
";
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<h1>📊 Logs</h1>
|
||||
|
||||
<form method="GET" action="index.php">
|
||||
<input type="hidden" name="service" value="<?= htmlspecialchars($_GET['service'] ?? 'logs') ?>">
|
||||
|
||||
<select name="filter" onchange="this.form.submit()">
|
||||
<?php
|
||||
$options = ['alle','today','node1','node2','node3','node4','counterperip'];
|
||||
foreach ($options as $opt) {
|
||||
$sel = ($filter === $opt) ? 'selected' : '';
|
||||
echo "<option value='$opt' $sel>$opt</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</form>
|
||||
|
||||
<!-- <br>
|
||||
|
||||
<form method="POST">
|
||||
<textarea name="custom_query" style="width:100%;height:60px;"><?= htmlspecialchars($customQuery) ?></textarea>
|
||||
<br>
|
||||
<button type="submit">Query ausführen</button>
|
||||
</form>
|
||||
|
||||
<hr> -->
|
||||
|
||||
<br>
|
||||
|
||||
<?php
|
||||
$daten = [];
|
||||
|
||||
if ($erg = $conn->query($sql)) {
|
||||
// echo "<pre style='background:var(--bg-soft,#f4f4f4);padding:10px;'>$sql</pre>";
|
||||
|
||||
while ($row = $erg->fetch_object()) {
|
||||
$daten[] = $row;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<?php if (!$daten): ?>
|
||||
<b>Keine Daten gefunden</b>
|
||||
<?php else: ?>
|
||||
|
||||
<div style="overflow-x:auto;">
|
||||
<table border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse;width:100%;">
|
||||
<tr>
|
||||
<?php foreach ($daten[0] as $key => $_): ?>
|
||||
<th><?= htmlspecialchars($key) ?></th>
|
||||
<?php endforeach; ?>
|
||||
</tr>
|
||||
|
||||
<?php foreach ($daten as $row): ?>
|
||||
<tr>
|
||||
<?php foreach ($row as $val): ?>
|
||||
<td><?= htmlspecialchars($val ?? '') ?></td>
|
||||
<?php endforeach; ?>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
@@ -1,67 +1,317 @@
|
||||
<?php
|
||||
|
||||
$adminPassword = 'geheim';
|
||||
$configFile = 'config.php';
|
||||
$backupDir = 'config_backups';
|
||||
|
||||
if (!is_dir($backupDir)) {
|
||||
mkdir($backupDir, 0755, true);
|
||||
}
|
||||
|
||||
require $configFile;
|
||||
|
||||
// Login prüfen
|
||||
if (isset($_POST['password'])) {
|
||||
if ($_POST['password'] === $adminPassword) {
|
||||
if (isset($superuser['admin']['password']) && $_POST['password'] === $superuser['admin']['password']) {
|
||||
$_SESSION['logged_in'] = true;
|
||||
} else {
|
||||
$error = "Falsches Passwort!";
|
||||
}
|
||||
}
|
||||
|
||||
// Nicht eingeloggt → Login-Formular anzeigen
|
||||
if (!($_SESSION['logged_in'] ?? false)) {
|
||||
?>
|
||||
<h2>🔐 Admin Login</h2>
|
||||
<?php if(isset($error)): ?>
|
||||
<p style="color:red"><?= $error ?></p>
|
||||
<?php endif; ?>
|
||||
<form method="post">
|
||||
<input type="password" name="password" placeholder="Passwort">
|
||||
<button type="submit">Login</button>
|
||||
</form>
|
||||
<?php
|
||||
return;
|
||||
if (isset($_GET['logout'])) {
|
||||
session_destroy();
|
||||
header("Location: " . $_SERVER['PHP_SELF']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Konfiguration laden
|
||||
$configFile = 'config.php';
|
||||
include $configFile;
|
||||
|
||||
// Speichern
|
||||
if (isset($_POST['save'])) {
|
||||
foreach ($services as $key => $service) {
|
||||
$services[$key]['active'] = isset($_POST['services'][$key]);
|
||||
}
|
||||
|
||||
$content = "<?php\n\$services = [\n";
|
||||
foreach ($services as $key => $service) {
|
||||
$name = addslashes($service['name']);
|
||||
$active = $service['active'] ? 'true' : 'false';
|
||||
$content .= " '$key' => ['name' => '$name', 'active' => $active],\n";
|
||||
}
|
||||
$content .= "];\n?>";
|
||||
|
||||
file_put_contents($configFile, $content);
|
||||
$message = "Konfiguration gespeichert!";
|
||||
if (isset($_POST['logout'])) {
|
||||
unset($_SESSION['logged_in']);
|
||||
header("Location: " . (new getSpecificData())->getReferer());
|
||||
exit;
|
||||
}
|
||||
|
||||
if (isset($_POST['save']) && ($_SESSION['logged_in'] ?? false)) {
|
||||
copy($configFile, $backupDir . '/config_' . date('Y-m-d_H-i-s') . '.php');
|
||||
|
||||
$newServices = [];
|
||||
$serviceToGroupMapping = [];
|
||||
if(isset($_POST['services'])){
|
||||
foreach ($_POST['services'] as $id => $s) {
|
||||
$finalId = !empty($s['new_id']) ? trim($s['new_id']) : $id;
|
||||
if (empty($finalId)) continue;
|
||||
$newServices[$finalId] = [
|
||||
'name' => $s['name'],
|
||||
'active' => isset($s['active']),
|
||||
'adminOnly' => isset($s['adminOnly'])
|
||||
];
|
||||
if(!empty($s['targetGroup'])) {
|
||||
$serviceToGroupMapping[$s['targetGroup']][] = $finalId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$newServiceGroups = [];
|
||||
if(isset($_POST['serviceGroups'])){
|
||||
foreach ($_POST['serviceGroups'] as $id => $groupData) {
|
||||
$finalId = !empty($groupData['new_id']) ? trim($groupData['new_id']) : $id;
|
||||
if (empty($finalId)) continue;
|
||||
$currentServices = $serviceToGroupMapping[$finalId] ?? ($serviceGroups[$id]['services'] ?? []);
|
||||
$newServiceGroups[$finalId] = [
|
||||
'label' => $groupData['label'],
|
||||
'defaultOpen' => isset($groupData['defaultOpen']),
|
||||
'services' => array_values(array_unique($currentServices))
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
$newLinkGroups = [];
|
||||
if(isset($_POST['linkGroups'])){
|
||||
foreach ($_POST['linkGroups'] as $id => $lg) {
|
||||
$finalId = !empty($lg['new_id']) ? trim($lg['new_id']) : $id;
|
||||
if (empty($finalId)) continue;
|
||||
$newLinkGroups[$finalId] = [
|
||||
'label' => $lg['label'],
|
||||
'color' => $lg['color'],
|
||||
'defaultOpen' => isset($lg['defaultOpen'])
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
$newLinkButtons = [];
|
||||
if(isset($_POST['linkButtons'])){
|
||||
foreach ($_POST['linkButtons'] as $btn) {
|
||||
if (empty($btn['label'])) continue;
|
||||
$newLinkButtons[] = [
|
||||
'label' => $btn['label'],
|
||||
'url' => $btn['url'],
|
||||
'newTab' => isset($btn['newTab']),
|
||||
'adminOnly' => isset($btn['adminOnly']),
|
||||
'group' => $btn['group']
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
$content = "<?php\n\n";
|
||||
$content .= '$superuser = ' . var_export($superuser, true) . ";\n\n";
|
||||
$content .= '$serviceGroups = ' . var_export($newServiceGroups, true) . ";\n\n";
|
||||
$content .= '$services = ' . var_export($newServices, true) . ";\n\n";
|
||||
$content .= '$linkGroups = ' . var_export($newLinkGroups, true) . ";\n\n";
|
||||
$content .= '$linkButtons = ' . var_export($newLinkButtons, true) . ";\n";
|
||||
|
||||
if (file_put_contents($configFile, $content)) {
|
||||
if (function_exists('opcache_invalidate')) { @opcache_invalidate($configFile, true); }
|
||||
$_SESSION['status_message'] = "✅ Konfiguration erfolgreich aktualisiert!";
|
||||
header("Location: " . $_SERVER['PHP_SELF']);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
$message = $_SESSION['status_message'] ?? null;
|
||||
unset($_SESSION['status_message']);
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
|
||||
<h2>🛠 Service Verwaltung</h2>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Admin Site Control</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
|
||||
<?php if(isset($message)): ?>
|
||||
<p style="color:green"><?= $message ?></p>
|
||||
<?php endif; ?>
|
||||
<body class="<?= ($_SESSION['dark_mode'] ?? false) ? 'dark-mode' : '' ?>">
|
||||
<div class="main">
|
||||
<?php if (!($_SESSION['logged_in'] ?? false)): ?>
|
||||
<div class="login-container">
|
||||
<div class="login-box">
|
||||
<form method="post">
|
||||
<h2>🔐 Login</h2>
|
||||
<?php if(isset($error)): ?>
|
||||
<div class="status-msg" style="background:#dc3545; color:#fff;"><?= htmlspecialchars($error) ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<input type="password" name="password" placeholder="Passwort" required>
|
||||
<button type="submit">Einloggen</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div class="content">
|
||||
<h2>Seitenverwaltung</h2>
|
||||
<form method="post">
|
||||
<button type="submit" name="logout" id="logoutSiteButton">Logout</button>
|
||||
</form>
|
||||
<?php if($message): ?><div class="status-msg"><?= htmlspecialchars($message) ?></div><?php endif; ?>
|
||||
|
||||
<form method="post">
|
||||
<?php foreach ($services as $key => $service): ?>
|
||||
<label>
|
||||
<input type="checkbox" name="services[<?= $key ?>]" <?= $service['active'] ? 'checked' : '' ?>>
|
||||
<?= htmlspecialchars($service['name']) ?>
|
||||
</label><br>
|
||||
<?php endforeach; ?>
|
||||
<br>
|
||||
<button type="submit" name="save">Speichern</button>
|
||||
</form>
|
||||
<form method="post">
|
||||
|
||||
<!-- Sidebar Gruppen -->
|
||||
<h2>📦 Sidebar Gruppen
|
||||
<button type="button" class="btn-add" onclick="addNew('serviceGroup')">+ Neue Gruppe</button>
|
||||
</h2>
|
||||
<div class="admin-grid" id="container-serviceGroup">
|
||||
<?php foreach ($serviceGroups as $id => $group): ?>
|
||||
<div class="admin-card">
|
||||
<span class="badge">ID: <?= htmlspecialchars($id) ?></span>
|
||||
<input type="text" name="serviceGroups[<?= $id ?>][label]"
|
||||
value="<?= htmlspecialchars($group['label']) ?>" placeholder="Anzeigename">
|
||||
<label>
|
||||
<input type="checkbox" name="serviceGroups[<?= $id ?>][defaultOpen]"
|
||||
<?= ($group['defaultOpen'] ?? false) ? 'checked' : '' ?>>
|
||||
Offen
|
||||
</label>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
|
||||
<!-- Sidebar Services -->
|
||||
<h2>🖥 Sidebar Services
|
||||
<button type="button" class="btn-add" onclick="addNew('service')">+ Neuer Service</button>
|
||||
</h2>
|
||||
<div class="admin-grid" id="container-service">
|
||||
<?php foreach ($services as $id => $s): ?>
|
||||
<div class="admin-card">
|
||||
<span class="badge">Datei: <?= htmlspecialchars($id) ?>.php</span>
|
||||
<input type="text" name="services[<?= $id ?>][name]" value="<?= htmlspecialchars($s['name']) ?>"
|
||||
placeholder="Name">
|
||||
<label>Sidebar-Gruppe:</label>
|
||||
<select name="services[<?= $id ?>][targetGroup]">
|
||||
<?php foreach ($serviceGroups as $gid => $g): ?>
|
||||
<option value="<?= $gid ?>"
|
||||
<?= (isset($g['services']) && in_array($id, $g['services'])) ? 'selected' : '' ?>>
|
||||
<?= htmlspecialchars($g['label']) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<label>
|
||||
<input type="checkbox" name="services[<?= $id ?>][active]"
|
||||
<?= ($s['active'] ?? false) ? 'checked' : '' ?>>
|
||||
Aktiv
|
||||
</label>
|
||||
|
|
||||
<label>
|
||||
<input type="checkbox" name="services[<?= $id ?>][adminOnly]"
|
||||
<?= ($s['adminOnly'] ?? false) ? 'checked' : '' ?>>
|
||||
Nur Admins
|
||||
</label>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
|
||||
<!-- Dashboard Kategorien -->
|
||||
<h2>🎨 Dashboard Kategorien
|
||||
<button type="button" class="btn-add" onclick="addNew('linkGroup')">+ Neue Kategorie</button>
|
||||
</h2>
|
||||
<div class="admin-grid" id="container-linkGroup">
|
||||
<?php foreach ($linkGroups as $id => $lg): ?>
|
||||
<div class="admin-card">
|
||||
<span class="badge">ID: <?= htmlspecialchars($id) ?></span>
|
||||
<input type="text" name="linkGroups[<?= $id ?>][label]"
|
||||
value="<?= htmlspecialchars($lg['label']) ?>" placeholder="Gruppen-Label">
|
||||
<label>Farbe:</label>
|
||||
<input type="color" name="linkGroups[<?= $id ?>][color]"
|
||||
value="<?= $lg['color'] ?? '#3498db' ?>">
|
||||
<label>
|
||||
<input type="checkbox" name="linkGroups[<?= $id ?>][defaultOpen]"
|
||||
<?= ($lg['defaultOpen'] ?? false) ? 'checked' : '' ?>>
|
||||
Offen
|
||||
</label>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
|
||||
<!-- Dashboard Kacheln -->
|
||||
<h2>🔘 Dashboard Kacheln
|
||||
<button type="button" class="btn-add" onclick="addNew('linkButton')">+ Neue Kachel</button>
|
||||
</h2>
|
||||
<div class="admin-grid" id="container-linkButton">
|
||||
<?php foreach ($linkButtons as $key => $btn): ?>
|
||||
<div class="admin-card">
|
||||
<input type="text" name="linkButtons[<?= $key ?>][label]"
|
||||
value="<?= htmlspecialchars($btn['label']) ?>" placeholder="Name">
|
||||
<input type="text" name="linkButtons[<?= $key ?>][url]"
|
||||
value="<?= htmlspecialchars($btn['url']) ?>" placeholder="URL">
|
||||
<label>Dashboard Kategorie:</label>
|
||||
<select name="linkButtons[<?= $key ?>][group]">
|
||||
<?php foreach ($linkGroups as $id => $lg): ?>
|
||||
<option value="<?= $id ?>" <?= ($btn['group'] == $id) ? 'selected' : '' ?>>
|
||||
<?= htmlspecialchars($lg['label']) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<div style="margin-top:5px;">
|
||||
<label>
|
||||
<input type="checkbox" name="linkButtons[<?= $key ?>][newTab]"
|
||||
<?= ($btn['newTab'] ?? false) ? 'checked' : '' ?>>
|
||||
Neuer Tab
|
||||
</label>
|
||||
|
|
||||
<label>
|
||||
<input type="checkbox" name="linkButtons[<?= $key ?>][adminOnly]"
|
||||
<?= ($btn['adminOnly'] ?? false) ? 'checked' : '' ?>>
|
||||
Nur Admins
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
|
||||
<div class="save-bar">
|
||||
<button type="submit" name="save" class="btn-save">💾 Gesamte Konfiguration speichern</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function addNew(type) {
|
||||
const container = document.getElementById('container-' + type);
|
||||
const tempId = 'new_' + Date.now();
|
||||
const card = document.createElement('div');
|
||||
card.className = 'admin-card new-item';
|
||||
|
||||
let html = `<div><span class="badge">Neu hinzufügen</span></div>`;
|
||||
|
||||
if (type === 'serviceGroup') {
|
||||
html +=
|
||||
`<input type="text" name="serviceGroups[${tempId}][new_id]" placeholder="ID">
|
||||
<input type="text" name="serviceGroups[${tempId}][label]" placeholder="Name">
|
||||
<label><input type="checkbox" name="serviceGroups[${tempId}][defaultOpen]" checked> Ausgeklappt</label>`;
|
||||
} else if (type === 'service') {
|
||||
html += `<input type="text" name="services[${tempId}][new_id]" placeholder="Datei ohne .php">
|
||||
<input type="text" name="services[${tempId}][name]" placeholder="Anzeigename">
|
||||
<label>Gruppe:</label>
|
||||
<select name="services[${tempId}][targetGroup]">
|
||||
<?php foreach ($serviceGroups as $gid => $gl): ?>
|
||||
<option value="<?= $gid ?>"><?= $gl['label'] ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<label><input type="checkbox" name="services[${tempId}][active]" checked> Aktiv</label>`;
|
||||
} else if (type === 'linkGroup') {
|
||||
html += `<input type="text" name="linkGroups[${tempId}][new_id]" placeholder="ID">
|
||||
<input type="text" name="linkGroups[${tempId}][label]" placeholder="Label">
|
||||
<input type="color" name="linkGroups[${tempId}][color]" value="#3498db">`;
|
||||
} else if (type === 'linkButton') {
|
||||
html += `<input type="text" name="linkButtons[${tempId}][label]" placeholder="Anzeigename">
|
||||
<input type="text" name="linkButtons[${tempId}][url]" placeholder="https://...">
|
||||
<label>Kategorie:</label>
|
||||
<select name="linkButtons[${tempId}][group]">
|
||||
<?php foreach ($linkGroups as $gid => $gl): ?>
|
||||
<option value="<?= $gid ?>"><?= $gl['label'] ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<label><input type="checkbox" name="linkButtons[${tempId}][newTab]" checked> Tab</label>
|
||||
| <label><input type="checkbox" name="linkButtons[${tempId}][adminOnly]"> Nur Admins</label>`;
|
||||
}
|
||||
|
||||
card.innerHTML = html;
|
||||
container.appendChild(card);
|
||||
card.scrollIntoView({
|
||||
behavior: 'smooth'
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,162 @@
|
||||
<?php
|
||||
// 1. Logik zum Verarbeiten des Formulars (bevor die Liste geladen wird)
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_user'])) {
|
||||
// Nur Admins dürfen Benutzer hinzufügen (Sicherheitscheck)
|
||||
if ((new getSpecificData())->getIsAdmin()) {
|
||||
$controller = new UserController();
|
||||
$controller->setUser(
|
||||
$_POST['name'],
|
||||
$_POST['nachname'],
|
||||
$_POST['email'],
|
||||
$_POST['passwort'],
|
||||
$_POST['rolle'],
|
||||
$_POST['admin'] ?? 0, // Falls Checkbox nicht gesetzt, 0 senden
|
||||
$_POST['home_ip']
|
||||
);
|
||||
// Optional: Seite neu laden, um die Liste zu aktualisieren
|
||||
header("Location: " . (new getSpecificData())->getReferer());
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_POST['password'])) {
|
||||
if (isset($superuser['admin']['password']) && $_POST['password'] === $superuser['admin']['password']) {
|
||||
$_SESSION['logged_in'] = true;
|
||||
} else {
|
||||
$error = "Falsches Passwort!";
|
||||
}
|
||||
}
|
||||
|
||||
// 2. Daten für die Tabelle holen (dein bestehender Code)
|
||||
$specificData = new getSpecificData();
|
||||
$isAdmin = $specificData->getIsAdmin();
|
||||
|
||||
if ($isAdmin) {
|
||||
$users = DatabaseShow("Benutzer", "NAME, NACHNAME, EMAIL, ROLLE, ADMIN, HOME_IP");
|
||||
} else {
|
||||
$users = DatabaseShow(
|
||||
"Benutzer",
|
||||
"NAME, NACHNAME, EMAIL, ROLLE, ADMIN, HOME_IP",
|
||||
"NAME = ?",
|
||||
$specificData->getUsername()
|
||||
);
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_user'])) {
|
||||
|
||||
if ((new getSpecificData())->getIsAdmin()) {
|
||||
|
||||
$controller = new UserController();
|
||||
$controller->DeleteUser(
|
||||
$_POST['delete_name'],
|
||||
$_POST['delete_nachname'],
|
||||
$_POST['delete_email']
|
||||
);
|
||||
|
||||
header("Location: " . (new getSpecificData())->getReferer());
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_POST['logout'])) {
|
||||
unset($_SESSION['logged_in']);
|
||||
header("Location: " . (new getSpecificData())->getReferer());
|
||||
exit;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<div class="content">
|
||||
<?php if (!($_SESSION['logged_in'] ?? false)): ?>
|
||||
<div class="login-container">
|
||||
<div class="login-box">
|
||||
<form method="post">
|
||||
<h2>🔐 Login</h2>
|
||||
<?php if(isset($error)): ?>
|
||||
<div class="status-msg" style="background:#dc3545; color:#fff;"><?= htmlspecialchars($error) ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<input type="password" name="password" placeholder="Passwort" required>
|
||||
<button type="submit">Einloggen</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<h2>Benutzerverwaltung</h2>
|
||||
<form method="post">
|
||||
<button type="submit" name="logout" id="logoutSiteButton">Logout</button>
|
||||
</form>
|
||||
|
||||
<?php if ($isAdmin): ?>
|
||||
<div class="form-container">
|
||||
<h3>Neuen Benutzer anlegen</h3>
|
||||
<form method="POST" action="">
|
||||
<div class="user-form-grid">
|
||||
<input type="text" name="name" placeholder="Vorname" required>
|
||||
<input type="text" name="nachname" placeholder="Nachname" required>
|
||||
<input type="text" name="email" placeholder="E-Mail" required>
|
||||
<input type="text" name="passwort" placeholder="Passwort" required>
|
||||
<input type="text" name="rolle" placeholder="Rolle (z.B. User)">
|
||||
<input type="text" name="home_ip" placeholder="Home IP">
|
||||
|
||||
<label class="checkbox-group">
|
||||
<input type="checkbox" name="admin" value="1">
|
||||
<span>Admin-Rechte</span>
|
||||
</label>
|
||||
</div>
|
||||
<button type="submit" name="add_user" class="btn-submit">
|
||||
Benutzer speichern
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="table-container">
|
||||
<table class="user-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Vorname</th>
|
||||
<th>Nachname</th>
|
||||
<th>E-Mail</th>
|
||||
<?php if ($isAdmin): ?>
|
||||
<th>Rolle</th>
|
||||
<th>Admin</th>
|
||||
<th>Home IP</th>
|
||||
<th></th>
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($users as $user): ?>
|
||||
<tr>
|
||||
<td><?= htmlspecialchars($user['NAME']) ?></td>
|
||||
<td><?= htmlspecialchars($user['NACHNAME']) ?></td>
|
||||
<td><?= htmlspecialchars($user['EMAIL']) ?></td>
|
||||
<?php if ($isAdmin): ?>
|
||||
<td><?= htmlspecialchars($user['ROLLE']) ?></td>
|
||||
<td><?= htmlspecialchars($user['ADMIN']) ?></td>
|
||||
<td><?= htmlspecialchars($user['HOME_IP']) ?></td>
|
||||
<td>
|
||||
<form method="POST" onsubmit="return confirm('Wirklich löschen?');">
|
||||
<input type="hidden" name="delete_name" value="<?= htmlspecialchars($user['NAME']) ?>">
|
||||
<input type="hidden" name="delete_nachname"
|
||||
value="<?= htmlspecialchars($user['NACHNAME']) ?>">
|
||||
<input type="hidden" name="delete_email" value="<?= htmlspecialchars($user['EMAIL']) ?>">
|
||||
<button type="submit" name="delete_user" class="btn-delete">
|
||||
Löschen
|
||||
</button>
|
||||
</form>
|
||||
</td>
|
||||
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<script>
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
if (isset($_POST['toggle_variable'])) {
|
||||
|
||||
$name = $_POST['variablenname'];
|
||||
|
||||
$current = (new getSpecificData())->getLoggingStatus($name)[0]['WERT'];
|
||||
$newValue = ($current === "ON") ? "OFF" : "ON";
|
||||
|
||||
DatabaseUpdate(
|
||||
"Variablen",
|
||||
"WERT = ?",
|
||||
"VARIABLENNAME = ?",
|
||||
$newValue,
|
||||
$name
|
||||
);
|
||||
header("Location: " . (new getSpecificData())->getReferer());
|
||||
exit;
|
||||
}
|
||||
|
||||
$variablen = DatabaseShow(
|
||||
"Variablen",
|
||||
"VARIABLENNAME, WERT, ANZEIGENAME"
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
<div class="admin-grid">
|
||||
|
||||
<?php foreach ($variablen as $var): ?>
|
||||
<div class="admin-card toggle-card">
|
||||
|
||||
<div class="toggle-header">
|
||||
<strong><?= htmlspecialchars($var['ANZEIGENAME']) ?></strong>
|
||||
</div>
|
||||
|
||||
<form method="post">
|
||||
<input type="hidden" name="variablenname" value="<?= htmlspecialchars($var['VARIABLENNAME']) ?>">
|
||||
|
||||
<button type="submit" name="toggle_variable"
|
||||
class="toggle-switch <?= $var['WERT'] === 'ON' ? 'active' : '' ?>">
|
||||
<span class="toggle-slider"></span>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<div class="toggle-status">
|
||||
Status:
|
||||
<span class="badge">
|
||||
<?= htmlspecialchars($var['WERT']) ?>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</div>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+658
-4
@@ -46,7 +46,6 @@ header {
|
||||
|
||||
.content {
|
||||
flex: 1;
|
||||
padding: 20px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
@@ -91,11 +90,28 @@ body.dark-mode .content {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
#logoutButton {
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 110px;
|
||||
padding: 5px 10px;
|
||||
cursor: pointer;
|
||||
background-color: #e0e0e0;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
body.dark-mode #darkModeToggle {
|
||||
background-color: #333;
|
||||
color: white;
|
||||
}
|
||||
|
||||
body.dark-mode #logoutButton {
|
||||
background-color: #333;
|
||||
color: white;
|
||||
}
|
||||
|
||||
|
||||
.service-group {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@@ -128,6 +144,11 @@ body.dark-mode #darkModeToggle {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
body.dark-mode .group-title:hover {
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
}
|
||||
|
||||
|
||||
.group-services {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
@@ -280,14 +301,57 @@ body.dark-mode .overtime-container input {
|
||||
}
|
||||
|
||||
.overtime-result {
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
|
||||
min-width: 300px;
|
||||
max-width: 90%;
|
||||
|
||||
text-align: center;
|
||||
font-size: 1.3rem;
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
padding: 12px 20px;
|
||||
border-radius: 8px;
|
||||
|
||||
background-color: #e0f7e0;
|
||||
color: #155724;
|
||||
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
||||
z-index: 9999;
|
||||
|
||||
opacity: 0;
|
||||
animation: fadeInOut 4s ease forwards;
|
||||
}
|
||||
|
||||
.overtime-result.negative {
|
||||
background-color: #f8d7da;
|
||||
color: #721c24;
|
||||
}
|
||||
|
||||
@keyframes fadeInOut {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate(-50%, 20px);
|
||||
}
|
||||
|
||||
10% {
|
||||
opacity: 1;
|
||||
transform: translate(-50%, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate(-50%, 20px);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
body.dark-mode .overtime-result {
|
||||
background-color: #333;
|
||||
}
|
||||
@@ -300,4 +364,594 @@ body.dark-mode .overtime-result {
|
||||
body.dark-mode .overtime-result.negative {
|
||||
background-color: #551b1e;
|
||||
color: #f88;
|
||||
}
|
||||
|
||||
/* Container für alle Gruppen */
|
||||
.links-container {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
||||
gap: 25px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
/* Einzelne Gruppe */
|
||||
.link-group {
|
||||
background: #ffffff;
|
||||
border-radius: 10px;
|
||||
padding: 15px;
|
||||
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
body.dark-mode .link-group {
|
||||
background: #1e1e1e;
|
||||
}
|
||||
|
||||
|
||||
/* Gruppen-Überschrift */
|
||||
.link-group h3 {
|
||||
padding: 10px;
|
||||
color: #222;
|
||||
border-radius: 6px;
|
||||
margin-bottom: 15px;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
body.dark-mode .link-group h3 {
|
||||
color: #f0f0f0;
|
||||
}
|
||||
|
||||
|
||||
/* Links untereinander */
|
||||
.group-links {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
/* Link Wrapper */
|
||||
.group-links a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Einheitliche Button-Größe */
|
||||
.link-button {
|
||||
width: 100%;
|
||||
height: 45px;
|
||||
border: 2px solid;
|
||||
border-radius: 8px;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
transition: 0.2s ease;
|
||||
}
|
||||
|
||||
/* Hover Effekt */
|
||||
.link-button:hover {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
/* Mobile Optimierung */
|
||||
@media (max-width: 600px) {
|
||||
.links-container {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: inline-block;
|
||||
width: 160px;
|
||||
/* feste gleiche Breite */
|
||||
padding: 8px 12px;
|
||||
border-radius: 5px;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
text-align: center;
|
||||
transition: background-color 0.2s ease, transform 0.1s ease;
|
||||
font-size: 14px;
|
||||
/* margin: 10px 8px 5px 0; */
|
||||
margin-left: 10px;
|
||||
margin-top: 5px;
|
||||
/* Abstand zwischen Buttons */
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background-color: #007bff;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background-color: #0056b3;
|
||||
}
|
||||
|
||||
.btn-success {
|
||||
background-color: #28a745;
|
||||
}
|
||||
|
||||
.btn-success:hover {
|
||||
background-color: #218838;
|
||||
}
|
||||
|
||||
.btn:active {
|
||||
transform: scale(0.97);
|
||||
}
|
||||
|
||||
/* ===== Farben / Dark-Light Mode Variablen ===== */
|
||||
:root {
|
||||
--bg: #f5f5f5;
|
||||
--text: #111;
|
||||
--card-bg: #fff;
|
||||
--card-border: #ccc;
|
||||
--input-bg: #fff;
|
||||
--input-border: #ccc;
|
||||
--input-text: #111;
|
||||
--btn-bg: #007bff;
|
||||
--btn-text: #fff;
|
||||
--btn-add-bg: #28a745;
|
||||
--btn-add-text: #fff;
|
||||
--badge-bg: #eee;
|
||||
--badge-text: #333;
|
||||
--status-bg: #28a745;
|
||||
--status-text: #155724;
|
||||
}
|
||||
|
||||
body.dark-mode {
|
||||
--bg: #0b0b0b;
|
||||
--text: #eee;
|
||||
--card-bg: #161616;
|
||||
--card-border: #333;
|
||||
--input-bg: #222;
|
||||
--input-border: #444;
|
||||
--input-text: #fff;
|
||||
--btn-bg: #007bff;
|
||||
--btn-text: #fff;
|
||||
--btn-add-bg: #28a745;
|
||||
--btn-add-text: #fff;
|
||||
--badge-bg: #333;
|
||||
--badge-text: #aaa;
|
||||
--status-bg: #28a745;
|
||||
--status-text: #155724;
|
||||
}
|
||||
|
||||
/* ===== Grundlayout ===== */
|
||||
body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
.main {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.content {
|
||||
flex: 1;
|
||||
padding: 10px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
/* ===== Admin Grid / Cards ===== */
|
||||
.admin-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
|
||||
gap: 20px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.admin-card {
|
||||
background: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: 10px;
|
||||
padding: 18px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.admin-card.new-item {
|
||||
border: 1px dashed var(--btn-add-bg);
|
||||
}
|
||||
|
||||
/* ===== Inputs / Selects ===== */
|
||||
input[type="text"],
|
||||
select {
|
||||
width: 100%;
|
||||
margin: 8px 0;
|
||||
padding: 10px;
|
||||
background: var(--input-bg);
|
||||
border: 1px solid var(--input-border);
|
||||
color: var(--input-text);
|
||||
border-radius: 5px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
input[type="color"] {
|
||||
width: 100%;
|
||||
height: 45px;
|
||||
border: 1px solid var(--input-border);
|
||||
background: var(--input-bg);
|
||||
cursor: pointer;
|
||||
border-radius: 5px;
|
||||
margin: 8px 0;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
/* ===== Buttons ===== */
|
||||
.btn-save {
|
||||
background: var(--btn-bg);
|
||||
color: var(--btn-text);
|
||||
padding: 14px 80px;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.btn-add {
|
||||
background: var(--btn-add-bg);
|
||||
color: var(--btn-add-text);
|
||||
border: none;
|
||||
padding: 8px 16px;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
/* ===== Badges / Status ===== */
|
||||
.badge {
|
||||
background: var(--badge-bg);
|
||||
padding: 2px 8px;
|
||||
border-radius: 4px;
|
||||
font-size: 0.8rem;
|
||||
color: var(--badge-text);
|
||||
}
|
||||
|
||||
.status-msg {
|
||||
background: var(--status-bg);
|
||||
padding: 15px;
|
||||
border-radius: 5px;
|
||||
margin-bottom: 20px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
color: var(--status-text);
|
||||
}
|
||||
|
||||
/* ===== Headings / Save Bar ===== */
|
||||
h2 {
|
||||
border-bottom: 1px solid var(--card-border);
|
||||
padding-bottom: 12px;
|
||||
margin-top: 40px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
color: var(--btn-bg);
|
||||
}
|
||||
|
||||
#logoutSiteButton {
|
||||
margin-bottom: 8px;
|
||||
padding: 10px;
|
||||
cursor: pointer;
|
||||
background-color: #e0e0e0;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
body.dark-mode #logoutSiteButton {
|
||||
background-color: #333;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.save-bar {
|
||||
position: sticky;
|
||||
bottom: -20px;
|
||||
background: var(--bg);
|
||||
padding: 25px;
|
||||
border-top: 1px solid var(--card-border);
|
||||
text-align: center;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
/* ===== Login Container ===== */
|
||||
.login-container {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.login-box {
|
||||
background: var(--card-bg);
|
||||
padding: 30px 35px;
|
||||
border-radius: 8px;
|
||||
width: 320px;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.login-box input {
|
||||
background: var(--input-bg);
|
||||
border: 1px solid var(--input-border);
|
||||
color: var(--input-text);
|
||||
}
|
||||
|
||||
.login-box button {
|
||||
background: var(--btn-bg);
|
||||
color: var(--btn-text);
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.login-box button:hover {
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/* ===== Responsive ===== */
|
||||
@media (max-width: 600px) {
|
||||
.admin-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
/* ===== Benutzerverwaltung ===== */
|
||||
.user-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.user-table thead {
|
||||
background-color: var(--btn-bg);
|
||||
color: var(--btn-text);
|
||||
}
|
||||
|
||||
.user-table th,
|
||||
.user-table td {
|
||||
padding: 12px 15px;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid var(--card-border);
|
||||
}
|
||||
|
||||
.user-table tr:hover {
|
||||
background-color: rgba(0, 123, 255, 0.1);
|
||||
}
|
||||
|
||||
body.dark-mode .user-table thead {
|
||||
background-color: #0056b3;
|
||||
color: white;
|
||||
}
|
||||
|
||||
body.dark-mode .user-table tr:hover {
|
||||
background-color: rgba(0, 123, 255, 0.2);
|
||||
}
|
||||
|
||||
/* Alternierende Zeilenfarben */
|
||||
.user-table tr:nth-child(even) {
|
||||
background-color: var(--card-bg);
|
||||
}
|
||||
|
||||
body.dark-mode .user-table tr:nth-child(even) {
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
/* Responsive Scroll für kleine Bildschirme */
|
||||
.table-container {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
/* Buttons in der Tabelle (falls benötigt) */
|
||||
.user-table .btn {
|
||||
padding: 6px 12px;
|
||||
font-size: 0.85rem;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.user-table .btn-primary {
|
||||
background-color: #007bff;
|
||||
color: white;
|
||||
transition: 0.2s;
|
||||
}
|
||||
|
||||
.user-table .btn-primary:hover {
|
||||
background-color: #0056b3;
|
||||
}
|
||||
|
||||
body.dark-mode .user-table .btn-primary {
|
||||
background-color: #007bff;
|
||||
color: white;
|
||||
}
|
||||
|
||||
body.dark-mode .user-table .btn-primary:hover {
|
||||
background-color: #0056b3;
|
||||
}
|
||||
|
||||
/* ===== Formular für neue Benutzer ===== */
|
||||
|
||||
.form-container {
|
||||
background: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: 10px;
|
||||
padding: 20px;
|
||||
margin-bottom: 30px;
|
||||
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.form-container h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 20px;
|
||||
color: var(--btn-bg);
|
||||
/* Nutzt dein definiertes Blau */
|
||||
font-size: 1.2rem;
|
||||
border-bottom: 1px solid var(--card-border);
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
/* Grid-Layout für die Eingabefelder */
|
||||
.user-form-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||
gap: 15px;
|
||||
align-items: end;
|
||||
}
|
||||
|
||||
/* Checkbox-Bereich Styling */
|
||||
.checkbox-group {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 10px 0;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.checkbox-group input[type="checkbox"] {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* Button Styling innerhalb des Formulars */
|
||||
.form-container .btn-submit {
|
||||
background-color: var(--btn-add-bg);
|
||||
/* Nutzt dein Success-Grün */
|
||||
color: white;
|
||||
padding: 12px 25px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
transition: opacity 0.2s ease;
|
||||
margin-top: 10px;
|
||||
width: auto;
|
||||
min-width: 150px;
|
||||
}
|
||||
|
||||
.form-container .btn-submit:hover {
|
||||
opacity: 0.9;
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
/* Mobile Optimierung für das Formular */
|
||||
@media (max-width: 600px) {
|
||||
.user-form-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-delete {
|
||||
background-color: #dc3545;
|
||||
color: white;
|
||||
padding: 8px 16px;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
/* ===== Toggle Switch ===== */
|
||||
|
||||
.toggle-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 15px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.toggle-header {
|
||||
font-size: 1rem;
|
||||
text-align: center;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.toggle-switch {
|
||||
width: 60px;
|
||||
height: 32px;
|
||||
background: #ccc;
|
||||
border-radius: 50px;
|
||||
position: relative;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
transition: background 0.3s ease;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.toggle-switch.active {
|
||||
background: #28a745;
|
||||
}
|
||||
|
||||
.toggle-slider {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
background: white;
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 4px;
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.toggle-switch.active .toggle-slider {
|
||||
transform: translateX(28px);
|
||||
}
|
||||
|
||||
/* Dark Mode Anpassung */
|
||||
body.dark-mode .toggle-switch {
|
||||
background: #444;
|
||||
}
|
||||
|
||||
body.dark-mode .toggle-switch.active {
|
||||
background: #28a745;
|
||||
}
|
||||
|
||||
.info-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.info-list li {
|
||||
padding: 10px 15px;
|
||||
border-bottom: 1px solid var(--card-border);
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.info-list li:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.info-key {
|
||||
font-weight: bold;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.info-value {
|
||||
flex: 1;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
/* Dark Mode */
|
||||
body.dark-mode .info-list li {
|
||||
border-bottom: 1px solid #333;
|
||||
}
|
||||
|
||||
body.dark-mode .info-key {
|
||||
color: #f0f0f0;
|
||||
}
|
||||
|
||||
body.dark-mode .info-value {
|
||||
color: #ccc;
|
||||
}
|
||||
Binary file not shown.
Reference in new issue
Block a user