diff --git a/data/rfid.html b/data/rfid.html index 3f0c299..e2c4ff9 100644 --- a/data/rfid.html +++ b/data/rfid.html @@ -66,6 +66,8 @@ // Globale Variablen let rfidData = []; let isLoading = false; + let DBUrl = "db.reptilfpv.de:3000"; + var APIKey; // Maximales Datum auf heute setzen document.addEventListener('DOMContentLoaded', function() { @@ -244,6 +246,7 @@ window.addEventListener('load', function() { document.getElementById('uid').focus(); checkServerStatus(); + loadLicence(); }); // Enter-Taste in UID Feld zum nächsten Feld springen @@ -333,7 +336,7 @@ async function checkServerStatus() { try { - const response = await fetch('/api/health'); + const response = await fetch('/api/health'); const data = await response.json(); if (!data.status || data.status !== 'connected') { @@ -348,6 +351,18 @@ return false; } } + + function loadLicence() { + fetch("/api/get-licence") + .then((response) => response.json()) + .then((data) => { + APIKey = data.licence || ""; + + }) + .catch((error) => + showMessage("Fehler beim Laden der Lizenz", "error") + ); + } \ No newline at end of file diff --git a/data/settings.html b/data/settings.html index 35bd135..a9547ab 100644 --- a/data/settings.html +++ b/data/settings.html @@ -264,14 +264,13 @@ // Einstellungen laden beim Seitenaufruf window.onload = function () { + loadLicence(); loadSettings(); loadWifiSettings(); loadSystemInfo(); loadCurrentTime(); updateCurrentTimeDisplay(); - loadLicence(); loadWifiSettings(); - loadLocations(); }; // Aktuelle Zeit anzeigen (Live-Update) @@ -460,7 +459,7 @@ .then((response) => response.json()) .then((data) => { document.getElementById("licencekey").value = data.licence || ""; - + loadLocations(); }) .catch((error) => showMessage("Fehler beim Laden der Lizenz", "error") @@ -790,33 +789,41 @@ //location functions // Locations laden und Dropdown befüllen function loadLocations() { - fetch("/api/location/") - .then((response) => response.json()) - .then((data) => { - const select = document.getElementById("locationSelect"); - - // Vorhandene Optionen löschen (außer der ersten "Bitte wählen...") - while (select.children.length > 1) { - select.removeChild(select.lastChild); - } - - // Neue Optionen aus Backend-Response hinzufügen - data.forEach((location) => { - const option = document.createElement("option"); - option.value = location.id; - option.textContent = location.name; - select.appendChild(option); - }); - - // Aktuell gespeicherten Standort laden - loadCurrentLocation(); - }) - .catch((error) => { - console.log("Locations konnten nicht geladen werden:", error); - showMessage("Fehler beim Laden der Standorte", "error"); - }); + const licence = document.getElementById("licencekey").value; // Get the licence key from the input field + fetch("http://db.reptilfpv.de:3000/api/location/", { + method: "GET", + headers: { + Authorization: `Bearer ${licence}`, // Add Bearer token using licenkey + }, + }) + .then((response) => response.json()) + .then((data) => { + + const select = document.getElementById("locationSelect"); + + // Vorhandene Optionen löschen (außer der ersten "Bitte wählen...") + while (select.children.length > 1) { + select.removeChild(select.lastChild); } + // Neue Optionen aus Backend-Response hinzufügen + // Neue Optionen aus Backend-Response hinzufügen + data.forEach((location) => { + const option = document.createElement("option"); + option.value = location.id; + option.textContent = location.name; + select.appendChild(option); + }); + + // Aktuell gespeicherten Standort laden + loadCurrentLocation(); + }) + .catch((error) => { + console.log("Locations konnten nicht geladen werden:", error); + showMessage("Fehler beim Laden der Locations", "error"); + }); +} + // Aktuell gespeicherten Standort laden function loadCurrentLocation() { fetch("/api/get-location") diff --git a/src/databasebackend.h b/src/databasebackend.h index fdc9a37..6cb16f6 100644 --- a/src/databasebackend.h +++ b/src/databasebackend.h @@ -5,9 +5,13 @@ const char* BACKEND_SERVER = "http://db.reptilfpv.de:3000"; -const char* BACKEND_TOKEN = "a4514dc0-15f5-4299-8826-fffb3139d39c"; +String BACKEND_TOKEN = licence; // Use the licence as the token for authentication + bool backendOnline() { + + Serial.println(licence); + if (WiFi.status() != WL_CONNECTED) { Serial.println("No WiFi connection."); return false; diff --git a/src/master.cpp b/src/master.cpp index 952ff34..9c97050 100644 --- a/src/master.cpp +++ b/src/master.cpp @@ -287,6 +287,7 @@ void setup() { loadBestTimes(); loadSettings(); loadWifiSettings(); + loadLocationSettings(); setupWifi(); // WiFi initialisieren setupOTA(&server); diff --git a/src/webserverrouter.h b/src/webserverrouter.h index 9f73369..ee1b019 100644 --- a/src/webserverrouter.h +++ b/src/webserverrouter.h @@ -240,6 +240,7 @@ server.on("/api/set-location", HTTP_POST, [](AsyncWebServerRequest *request) { server.on("/api/get-location", HTTP_GET, [](AsyncWebServerRequest *request){ DynamicJsonDocument doc(128); + loadLocationSettings(); doc["locationid"] = masterlocation ? masterlocation : ""; String result; serializeJson(doc, result);