Initial commit
This commit is contained in:
22
actions/apply-settings.php
Normal file
22
actions/apply-settings.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
|
||||
Es gibt nur einen Steckertypen, daher ist dies zunächst irrelvant
|
||||
|
||||
$type = $_GET["type"];
|
||||
|
||||
$settings = json_decode(file_get_contents("../settings.json"), true);
|
||||
|
||||
$plug = $settings["plug"]; //$plug ist die plug-ID!
|
||||
|
||||
|
||||
Weitere Zeilen entfernt. Speicherung wäre notwendig.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
echo "Sp Dr L30";
|
||||
|
||||
|
||||
?>
|
||||
131
actions/bridge-editor.php
Normal file
131
actions/bridge-editor.php
Normal file
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
|
||||
session_start();
|
||||
|
||||
$db = new SQLite3('../db-test/test.db');
|
||||
|
||||
$action = $_GET["action"];
|
||||
$meta = $_GET["meta"];
|
||||
|
||||
$bridgeName = $_SESSION["meta"];
|
||||
|
||||
$plug = json_decode(file_get_contents("../settings.json") , true)["plug"];
|
||||
|
||||
|
||||
// Funktion zur Bereinigung des Formats
|
||||
function cleanPinsArray(&$data) {
|
||||
// Überprüfen, ob das "pins"-Array vorhanden ist und es ein Array ist
|
||||
if (isset($data) && is_array($data)) {
|
||||
// Nur gültige Pins behalten
|
||||
$data = array_filter($data, function($pin) {
|
||||
// Sicherstellen, dass das Element nicht null ist und dass jedes Element im "pins"-Array genau 2 Einträge hat
|
||||
return is_array($pin) && count($pin) === 2 && is_integer($pin[0]) && is_integer($pin[1]);
|
||||
});
|
||||
|
||||
// Neu indexieren, um die Indizes korrekt zu halten
|
||||
$data = array_values($data);
|
||||
}
|
||||
}
|
||||
|
||||
switch ($action) {
|
||||
case "edit":
|
||||
|
||||
$bridge_name = $bridgeName;
|
||||
|
||||
$nodes = json_decode($meta, true); // Beispielwert
|
||||
$nodes = $nodes["pins"]; // Beispielwert
|
||||
|
||||
cleanPinsArray($nodes); // Dies stellt sicher, dass Javscript valide Werte bringt und die Datenbank nicht verunreinigt wird.
|
||||
|
||||
if (empty($nodes))
|
||||
{
|
||||
$message[0] = false;
|
||||
$message[1] = "Es wurden keine Änderungen gespeichert.";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
}
|
||||
|
||||
$db->exec(" DELETE FROM nodes WHERE required_by = '" . $bridge_name . "' and plug_id = '" . $plug . "'; ");
|
||||
|
||||
foreach($nodes as $node) {
|
||||
$from = $node[0];
|
||||
$to = $node[1];
|
||||
$db->exec(" INSERT INTO nodes (required_by, node_from, node_to, plug_id) VALUES ('" . $bridge_name . "', '" . $from . "', '" . $to . "', '" . $plug . "'); ");
|
||||
}
|
||||
|
||||
$message[0] = true;
|
||||
$message[1] = "Die Änderungen für die Brücke $bridgeName wurden gespeichert!";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case "add":
|
||||
|
||||
// Eingabedaten
|
||||
$bridgeName = $bridgeName;
|
||||
$nodes = json_decode($meta, true);
|
||||
$name = $nodes["name"];
|
||||
$nodes = $nodes["pins"];
|
||||
|
||||
cleanPinsArray($nodes); // Dies stellt sicher, dass Javscript valide Werte bringt und die Datenbank nicht verunreinigt wird.
|
||||
|
||||
// sicherstellen, dass Werte gesetzt sind
|
||||
if (empty($nodes) || empty($name))
|
||||
{
|
||||
$message[0] = false;
|
||||
$message[1] = "Es wurden keine Änderungen gespeichert, da Parameter fehlten.";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
}
|
||||
|
||||
|
||||
|
||||
$result = $db->query("SELECT COUNT(*) as anzahl FROM bridges WHERE id = '" . $name . "';");
|
||||
$row = $result->fetchArray(SQLITE3_ASSOC);
|
||||
$number = $row['anzahl'];
|
||||
|
||||
if($number > 0) {
|
||||
$message[0] = false;
|
||||
$message[1] = "Es gibt bereits eine Brücke, die " . $name . " heißt. Bitte einen anderen Namen wählen oder die andere Brücke " . $name . " löschen/bearbeiten. Stellen Sie zudem sicher, dass Sie den korrekten Steckertypen verwenden.";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
}
|
||||
|
||||
$db->exec(" INSERT INTO bridges (plug_id, id) VALUES (" . $plug . ", '" . $name . "'); ");
|
||||
|
||||
foreach($nodes as $node) {
|
||||
$from = $node[0];
|
||||
$to = $node[1];
|
||||
$db->exec(" INSERT INTO nodes (required_by, node_from, node_to, plug_id) VALUES ('" . $name . "', '" . $from . "', '" . $to . "', '" . $plug . "'); ");
|
||||
}
|
||||
|
||||
$message[0] = true;
|
||||
$message[1] = "Die Brücke $name wurde angelegt!";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
break;
|
||||
|
||||
case "remove":
|
||||
|
||||
$bridge_name = $meta;
|
||||
|
||||
$db->exec(" DELETE FROM nodes WHERE required_by = '" . $bridge_name . "' and plug_id = '" . $plug . "'; ");
|
||||
$db->exec(" DELETE FROM bridges WHERE id = '" . $bridge_name . "' and plug_id = '" . $plug . "'; ");
|
||||
|
||||
$message[0] = true;
|
||||
$message[1] = "Die Brücke $bridge_name wurde nun gelöscht.";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
5
actions/connection-test.php
Normal file
5
actions/connection-test.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
print("true");
|
||||
|
||||
?>
|
||||
1182
actions/extract-programs.php
Normal file
1182
actions/extract-programs.php
Normal file
File diff suppressed because it is too large
Load Diff
138
actions/inventory.php
Normal file
138
actions/inventory.php
Normal file
@@ -0,0 +1,138 @@
|
||||
<?php
|
||||
|
||||
|
||||
session_start();
|
||||
|
||||
|
||||
|
||||
$db = new SQLite3('../db-test/test.db');
|
||||
|
||||
$page = $_GET["page"];
|
||||
$action = $_GET["action"];
|
||||
$meta = $_GET["meta"];
|
||||
|
||||
$settings = json_decode(file_get_contents("../settings.json"), true);
|
||||
$plug = $settings["plug"]; //$plug ist die plug-ID!
|
||||
|
||||
$bridgeName = $_SESSION["meta"];
|
||||
$programID = json_decode(urldecode($_SESSION["meta"]), true);
|
||||
|
||||
|
||||
|
||||
switch($action) {
|
||||
|
||||
case "remove":
|
||||
|
||||
$settings = json_decode(file_get_contents("../settings.json"), true);
|
||||
|
||||
$plug = $settings["plug"]; //$plug ist die plug-ID!
|
||||
|
||||
// Überprüfen, ob die Struktur korrekt ist
|
||||
if (!isset($meta)) {
|
||||
$message[0] = false;
|
||||
$message[1] = "Es gab einen Fehler bei der Datenübermittlung.";
|
||||
$message = json_encode($message);
|
||||
print($message);
|
||||
die();
|
||||
}
|
||||
|
||||
// Hier wichtig! Beim Löschvorgang muss die referenzielle Integrität gewahrt werden! Erst die Fremdschlüssel löschen, dann die Tabelle mit dem Primärschlüssel!
|
||||
|
||||
$db->exec(" DELETE FROM measurement_nodes WHERE required_by = '" . $meta . "'; ");
|
||||
$db->exec(" DELETE FROM measurement_program_id_bits WHERE measurement_id = '" . $meta . "'; ");
|
||||
$db->exec(" DELETE FROM measurements WHERE id = '" . $meta . "'; ");
|
||||
|
||||
|
||||
$message[0] = true;
|
||||
$message[1] = "Die Messung wurde gelöscht.";
|
||||
$message = json_encode($message);
|
||||
print($message);
|
||||
die();
|
||||
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case "add":
|
||||
|
||||
$meta = json_decode($meta, true);
|
||||
|
||||
if(empty($meta["programCache"]) || empty($_SESSION["bridges"]) || empty($meta['name'])) {
|
||||
$message[0] = false;
|
||||
$message[1] = "Es gab einen Fehler beim Speichern!";
|
||||
$message = json_encode($message);
|
||||
print($message);
|
||||
die();
|
||||
}
|
||||
|
||||
|
||||
$db->exec("INSERT INTO places (plug_id, name) VALUES (" . $plug . ", '" . $meta["name"]. "'); ");
|
||||
|
||||
$newdata["plugID"] = $plug;
|
||||
$newdata["place"] = $placeID;
|
||||
$newdata["programID"] = $meta["programCache"];
|
||||
$bridges_original = $_SESSION["bridges"];
|
||||
$newdata["special"] = $meta["special"];
|
||||
$bridges_hidden = json_decode(urldecode($meta["bridges-hidden"]));
|
||||
$newdata["timestamp"] = time();
|
||||
|
||||
|
||||
|
||||
// $bridges_result = $bridges_original - $bridges_hidden
|
||||
$bridges_original;
|
||||
$bridges_hidden;
|
||||
|
||||
|
||||
|
||||
// Hilfsfunktion: vergleicht zwei Arrays inhaltlich, unabhängig von String/Int
|
||||
function arrays_are_equal($a, $b) {
|
||||
return ((string)$a[0] === (string)$b[0]) && ((string)$a[1] === (string)$b[1]);
|
||||
}
|
||||
|
||||
// Ergebnisarray initialisieren
|
||||
$bridges_result = [];
|
||||
|
||||
// Für jedes Originalelement prüfen, ob es in hidden vorkommt
|
||||
foreach ($bridges_original as $orig) {
|
||||
$found = false;
|
||||
foreach ($bridges_hidden as $hidden) {
|
||||
if (arrays_are_equal($orig, $hidden)) {
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$found) {
|
||||
$bridges_result[] = $orig;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$newdata["bridges"] = $bridges_result;
|
||||
|
||||
|
||||
|
||||
|
||||
$db->exec("INSERT INTO measurements (place_name, comment, timestamp) VALUES ('" . $meta["name"] . "', '" . $meta["special"] . "', " . time() . ");");
|
||||
|
||||
$measurement_id = $db->lastInsertRowID();
|
||||
|
||||
$i = 0;
|
||||
foreach($meta["programCache"] as $program_id_char) {
|
||||
$db->exec("INSERT INTO measurement_program_id_bits (value, position, measurement_id) VALUES ('" . $program_id_char . "', '" . $i. "', '" . $measurement_id . "'); ");
|
||||
$i++;
|
||||
}
|
||||
|
||||
foreach($newdata["bridges"] as $bridge) {
|
||||
$db->exec("INSERT INTO measurement_nodes (required_by, node_from, node_to) VALUES (" . $measurement_id . ", '" . $bridge[0]. "', '" . $bridge[1] . "'); ");
|
||||
}
|
||||
|
||||
|
||||
|
||||
$message[0] = true;
|
||||
$message[1] = "Die Messung wurde am Ort '" . $meta['name'] . "' gespeichert!";
|
||||
$message = json_encode($message);
|
||||
print($message);
|
||||
die();
|
||||
break;
|
||||
}
|
||||
140
actions/program-editor.php
Normal file
140
actions/program-editor.php
Normal file
@@ -0,0 +1,140 @@
|
||||
<?php
|
||||
|
||||
session_start();
|
||||
|
||||
$db = new SQLite3('../db-test/test.db');
|
||||
|
||||
$action = $_GET["action"];
|
||||
$meta = $_GET["meta"];
|
||||
|
||||
$bridgeName = $_SESSION["meta"];
|
||||
$programID = json_decode(urldecode($_SESSION["meta"]), true);
|
||||
|
||||
|
||||
$plug = json_decode(file_get_contents("../settings.json"), true)["plug"];
|
||||
|
||||
|
||||
switch ($action) {
|
||||
case "add":
|
||||
|
||||
$meta = json_decode($meta, true);
|
||||
$bridges = $meta["bridges"];
|
||||
$programID = $meta["programID"];
|
||||
$programDescription = $meta["programDescription"];
|
||||
|
||||
if(empty($bridges) || empty($programID)) {
|
||||
$message[0] = false;
|
||||
$message[1] = "Es wurden keine Änderungen gespeichert.";
|
||||
$message = json_encode($message);
|
||||
print($message);
|
||||
die();
|
||||
}
|
||||
|
||||
|
||||
$result = $db->query("SELECT COUNT(*) as anzahl FROM program_id_bits WHERE
|
||||
position = 0 AND value = '" . $programID[0] . "' AND
|
||||
position = 1 AND value = '" . $programID[1] . "' AND
|
||||
position = 2 AND value = '" . $programID[2] . "' AND
|
||||
position = 3 AND value = '" . $programID[3] . "' AND
|
||||
position = 4 AND value = '" . $programID[4] . "'
|
||||
;");
|
||||
|
||||
$row = $result->fetchArray(SQLITE3_ASSOC);
|
||||
$number = $row['anzahl'];
|
||||
|
||||
if($number > 0) {
|
||||
$message[0] = false;
|
||||
$message[1] = "Diese Programm-ID existiert unter dem aktuell gewählten Stecker bereits. Bitte anderen Namen wählen oder den Stecker wechseln.";
|
||||
$message = json_encode($message);
|
||||
print($message);
|
||||
die();
|
||||
}
|
||||
|
||||
$db->exec(" INSERT INTO programs (plug_id, program_description) VALUES ('" . $plug . "', '" . $programDescription . "'); ");
|
||||
|
||||
$program_id = $db->lastInsertRowID();
|
||||
foreach($bridges as $bridge) {
|
||||
$db->exec(" INSERT INTO program_bridge_relation (program_id, bridge_id, plug_id) VALUES ('" . $program_id . "', '" . $bridge . "', '" . $plug . "'); ");
|
||||
}
|
||||
|
||||
for($i=0; $i<=4; $i++) {
|
||||
$db->exec(" INSERT INTO program_id_bits (value, position, program_id) VALUES ('" . $programID[$i] . "', '" . $i . "', '" . $program_id . "'); ");
|
||||
}
|
||||
|
||||
$message[0] = true;
|
||||
$message[1] = 'Das Programm wurde als <div class="label" style="width: 160px; display: inline-block; float: unset; height: unset;margin-bottom: -10px;">
|
||||
<span style="margin: unset;"><span class="label-char">' . $programID[0] . '</span><span class="label-char">' . $programID[1] . '</span><span class="label-char">' . $programID[2] . '</span><span class="label-char">' . $programID[3] . '</span><span class="label-char">' . $programID[4] . '</span>
|
||||
</span>
|
||||
</div> gespeichert!';
|
||||
$message = json_encode($message);
|
||||
print($message);
|
||||
die();
|
||||
|
||||
break;
|
||||
case "edit":
|
||||
|
||||
$meta = json_decode(urldecode($meta),true);
|
||||
$bridges = $meta["bridges"];
|
||||
$programDescription = $meta["programDescription"];
|
||||
|
||||
if(empty($bridges) || empty($programDescription)) {
|
||||
$message[0] = false;
|
||||
$message[1] = "Es wurden keine Änderungen gespeichert.";
|
||||
$message = json_encode($message);
|
||||
print($message);
|
||||
die();
|
||||
}
|
||||
|
||||
$db->exec(" UPDATE programs set program_description = '" . $programDescription . "' WHERE id = '" . $programID . "' AND plug_id = '" . $plug . "'; ");
|
||||
$db->exec(" DELETE FROM program_bridge_relation WHERE program_id = '" . $programID . "' and plug_id = '" . $plug . "'; ");
|
||||
|
||||
foreach($bridges as $bridge) {
|
||||
$db->exec(" INSERT INTO program_bridge_relation (program_id, bridge_id, plug_id) VALUES ('" . $programID . "', '" . $bridge . "', '" . $plug . "'); ");
|
||||
}
|
||||
|
||||
$message[0] = true;
|
||||
$message[1] = 'Die Änderungen an <div class="label" style="width: 160px; display: inline-block; float: unset; height: unset;margin-bottom: -10px;"><span style="margin: unset;">';
|
||||
|
||||
$program_identifiers = $db->query("SELECT * FROM program_id_bits WHERE program_id = '" . $programID . "';");
|
||||
|
||||
while ($program_identifier = $program_identifiers->fetchArray(SQLITE3_ASSOC)) {
|
||||
$message[1] .= '<span class="label-char">' . $program_identifier["value"] . '</span>';
|
||||
}
|
||||
|
||||
$message[1] .= '</span></div> wurden gespeichert!';
|
||||
|
||||
$message = json_encode($message);
|
||||
print($message);
|
||||
die();
|
||||
|
||||
break;
|
||||
case "remove":
|
||||
$programID = $meta;
|
||||
|
||||
// Überprüfen, ob die Struktur korrekt ist
|
||||
if (!isset($meta)) {
|
||||
$message[0] = false;
|
||||
$message[1] = "Es gab einen Fehler bei der Datenübermittlung.";
|
||||
$message = json_encode($message);
|
||||
print($message);
|
||||
die();
|
||||
}
|
||||
|
||||
// Hier wichtig! Beim Löschvorgang muss die referenzielle Integrität gewahrt werden! Erst die Fremdschlüssel löschen, dann die Tabelle mit dem Primärschlüssel!
|
||||
|
||||
$db->exec(" DELETE FROM program_bridge_relation WHERE program_id = '" . $meta . "' and plug_id = '" . $plug . "'; ");
|
||||
$db->exec(" DELETE FROM program_id_bits WHERE program_id = '" . $meta . "'; ");
|
||||
$db->exec(" DELETE FROM programs WHERE id = '" . $meta . "' and plug_id = '" . $plug . "'; ");
|
||||
|
||||
|
||||
$message[0] = true;
|
||||
$message[1] = "Das Programm wurde nun gelöscht.";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
16
actions/save-settings.php
Normal file
16
actions/save-settings.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
|
||||
$type = $_GET["type"];
|
||||
$value = $_GET["value"];
|
||||
|
||||
$settings = json_decode(file_get_contents("../settings.json"), true);
|
||||
|
||||
$settings[$type] = $value;
|
||||
|
||||
file_put_contents("../temp.json",json_encode($settings, true));
|
||||
|
||||
|
||||
print("true");
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user