update
This commit is contained in:
@@ -101,4 +101,48 @@ $mm->registerFunction($moduleName, 'ensure_schema', function () use ($moduleName
|
|||||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
)");
|
)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Seed default commands (only when empty)
|
||||||
|
$count = (int)$pdo->query('SELECT COUNT(*) FROM ' . $cmdTable)->fetchColumn();
|
||||||
|
if ($count === 0) {
|
||||||
|
$defaults = [
|
||||||
|
['Speicherplatz auf Dateisystem', 'df -T -h', false],
|
||||||
|
['Netzwerkdaten', 'ip -s addr show', false],
|
||||||
|
['CPU-Information', 'cat /proc/cpuinfo', false],
|
||||||
|
['Informationen über USB-Bus', 'lsusb', false],
|
||||||
|
['Uptime', 'uptime -p', false],
|
||||||
|
['Scannen Sie einen I2C-Bus nach Geräten', '/usr/sbin/i2cdetect -y 1', true],
|
||||||
|
['Prozesse (Gib zum Beenden \"q\" ein)', 'top', false],
|
||||||
|
['SSH status', 'systemctl status ssh', false],
|
||||||
|
['Konfigurationsprogramm in Raspberry OS', 'sudo raspi-config', true],
|
||||||
|
['Pinbelegung', 'pinout', false],
|
||||||
|
['Exportiere GPIO (Für Nutzung vorbereiten)', 'echo 22 > /sys/class/gpio/export', true],
|
||||||
|
['Lese GPIO-Wert', 'echo in > /sys/class/gpio/gpio22/direction && cat /sys/class/gpio/gpio22/value', true],
|
||||||
|
['Schreibe \"Low\" GPIO Wert', 'echo out > /sys/class/gpio/gpio22/direction && echo 0 > /sys/class/gpio/gpio22/value', true],
|
||||||
|
['Schreibe \"High\" GPIO Wert', 'echo out > /sys/class/gpio/gpio22/direction && echo 1 > /sys/class/gpio/gpio22/value', true],
|
||||||
|
['Export entfernen (Ressource freigeben)', 'echo 22 > /sys/class/gpio/unexport', true],
|
||||||
|
['Alternative Funktionen von GPIO', 'raspi-gpio funcs', false],
|
||||||
|
['Gerät herunterfahren', 'sudo systemctl poweroff', true],
|
||||||
|
['Gerät neu starten', 'sudo systemctl reboot', true],
|
||||||
|
['Aktualisiere die Betriebssystem-Pakete', 'sudo apt update && sudo apt full-upgrade', true],
|
||||||
|
['Befehle, die zuvor ausgeführt wurden (Quellsprache)', 'history 30', false],
|
||||||
|
['Liste der zuletzt angemeldeten Nutzer', 'last -30 -F', false],
|
||||||
|
['Liste der aktuell angemeldeten Nutzer', 'w', false],
|
||||||
|
['Aktualisierung', 'sudo apt update && sudo apt upgrade -y && sudo apt-get autoremove --purge && sudo apt-get clean && sudo rm -rf /var/lib/apt/lists/* && sudo apt-get update && sudo apt-get remove texlive-*-doc', true],
|
||||||
|
['Update OS', 'sudo apt update && sudo apt full-upgrade -y && sudo apt-get autoremove --purge && sudo apt-get clean && sudo rm -rf /var/lib/apt/lists/* && sudo apt-get update && sudo apt-get remove texlive-*-doc', true],
|
||||||
|
['Paketlisten laden', 'sudo apt-get update; sudo apt-get dist-upgrade -y;exit', true],
|
||||||
|
['Gerät herunterfahren', 'sudo /sbin/shutdown -h now', true],
|
||||||
|
['Gerät neu starten', 'sudo /sbin/reboot', true],
|
||||||
|
];
|
||||||
|
|
||||||
|
$stmt = $pdo->prepare(
|
||||||
|
'INSERT INTO ' . $cmdTable . ' (label, command, admin_only) VALUES (:label, :command, :admin_only)'
|
||||||
|
);
|
||||||
|
foreach ($defaults as [$label, $command, $adminOnly]) {
|
||||||
|
$stmt->bindValue(':label', $label, PDO::PARAM_STR);
|
||||||
|
$stmt->bindValue(':command', $command, PDO::PARAM_STR);
|
||||||
|
$stmt->bindValue(':admin_only', (bool)$adminOnly, PDO::PARAM_BOOL);
|
||||||
|
$stmt->execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ body {
|
|||||||
box-shadow: var(--shadow);
|
box-shadow: var(--shadow);
|
||||||
border-radius: 18px;
|
border-radius: 18px;
|
||||||
}
|
}
|
||||||
|
.module-subnav.card { background: var(--panel); }
|
||||||
|
|
||||||
.layout-body {
|
.layout-body {
|
||||||
display: grid;
|
display: grid;
|
||||||
@@ -148,6 +149,7 @@ body {
|
|||||||
gap: 16px;
|
gap: 16px;
|
||||||
padding: 6px 24px 24px;
|
padding: 6px 24px 24px;
|
||||||
transition: grid-template-columns 260ms ease;
|
transition: grid-template-columns 260ms ease;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
.layout-body.sidebar-open {
|
.layout-body.sidebar-open {
|
||||||
grid-template-columns: 260px 1fr;
|
grid-template-columns: 260px 1fr;
|
||||||
@@ -166,6 +168,18 @@ body {
|
|||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
transition: transform 260ms ease, opacity 260ms ease;
|
transition: transform 260ms ease, opacity 260ms ease;
|
||||||
}
|
}
|
||||||
|
.layout-body.sidebar-collapsed .sidebar {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 240px;
|
||||||
|
max-height: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
box-shadow: none;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
.layout-body.sidebar-open .sidebar {
|
.layout-body.sidebar-open .sidebar {
|
||||||
transform: translateX(0);
|
transform: translateX(0);
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user