diff --git a/src/networking/webserver.cpp b/src/networking/webserver.cpp index 7528c0d..11df3f4 100644 --- a/src/networking/webserver.cpp +++ b/src/networking/webserver.cpp @@ -41,6 +41,38 @@ ReadersWriterLock telemetryDataLock; ReadersWriterLock otaStatusLock; + +// ====================== +// Template Processor +// ====================== + +/** + * @brief Template processor for substituting variables in HTML/JavaScript templates. + * + * Replaces template placeholders with values from preferences. + * Used by AsyncWebServer when serving template files. + * + * @param var The template variable name to replace + * @return String The value to substitute, or empty string if not found + */ +String processor(const String& var) +{ + if (var == level_sensor_range_key) { + return String(prefs.getFloat(level_sensor_range_key, -1)); + } else if (var == water_level_min_key) { + return String(prefs.getFloat(water_level_min_key, -1)); + } else if (var == water_level_max_key) { + return String(prefs.getFloat(water_level_max_key, -1)); + } else if (var == water_volume_key) { + return String(prefs.getFloat(water_volume_key, -1)); + } else if (var == ssid_key) { + return String(prefs.getString(ssid_key, "")); + } + + return String(""); +} + + // ====================== // Webserver Setup // ====================== diff --git a/src/networking/webserver.h b/src/networking/webserver.h index 21d83ec..4a69d7e 100644 --- a/src/networking/webserver.h +++ b/src/networking/webserver.h @@ -11,6 +11,7 @@ void setup_routes(); void webserver_task(void *pvParameters); void handle_update_wifi_credentials(AsyncWebServerRequest* request); void handle_update_sensor_settings(AsyncWebServerRequest* request); +String processor(const String& var); #endif // ASYNC_WEBSERVER_H diff --git a/src/tools/tools.cpp b/src/tools/tools.cpp index b456eba..c107809 100644 --- a/src/tools/tools.cpp +++ b/src/tools/tools.cpp @@ -1,30 +1,9 @@ #include #include "tools.h" #include -#include "../global_data/defines.h" -#include #include "log.h" #include "esp_sntp.h" -extern Preferences prefs; - -String processor(const String& var) -{ - if (var == level_sensor_range_key) { - return String(prefs.getFloat(level_sensor_range_key, -1)); - } else if (var == water_level_min_key) { - return String(prefs.getFloat(water_level_min_key, -1)); - } else if (var == water_level_max_key) { - return String(prefs.getFloat(water_level_max_key, -1)); - } else if (var == water_volume_key) { - return String(prefs.getFloat(water_volume_key, -1)); - } else if (var == ssid_key) { - return String(prefs.getString(ssid_key, "")); - } - - return String(""); -} - void get_time_task(void* parameter) { LOG(ELOG_LEVEL_DEBUG, "Starting GetTimeTask"); LOG(ELOG_LEVEL_DEBUG, "Trying to get time from Internet"); diff --git a/src/tools/tools.h b/src/tools/tools.h index 5bad504..203f2a5 100644 --- a/src/tools/tools.h +++ b/src/tools/tools.h @@ -4,7 +4,6 @@ void printSuffix(Print* _logOutput, int logLevel); void print_prefix(Print* _logOutput, int logLevel); -String processor(const String& var); void get_time_task(void* parameter); void onTimeSync(struct timeval* tv);