dashboard: prefill setup defaults but require first save

This commit is contained in:
2026-07-02 00:48:48 -06:00
parent c18bc71359
commit 9371171ebb
2 changed files with 6 additions and 2 deletions
@@ -3,6 +3,6 @@
static const char *DASHBOARD_VERSION = "0.1.127-first-boot-wifi"; static const char *DASHBOARD_VERSION = "0.1.127-first-boot-wifi";
// First-boot defaults. Credentials are stored in Preferences/NVS after setup. // First-boot defaults. Credentials are stored in Preferences/NVS after setup.
static const char *DASHBOARD_DEFAULT_CARGO_WIFI_SSID = ""; static const char *DASHBOARD_DEFAULT_CARGO_WIFI_SSID = "OverlandController";
static const char *DASHBOARD_DEFAULT_CARGO_WIFI_PASSWORD = ""; static const char *DASHBOARD_DEFAULT_CARGO_WIFI_PASSWORD = "";
static const char *DASHBOARD_DEFAULT_CARGO_API_BASE_URL = "http://192.168.4.1"; static const char *DASHBOARD_DEFAULT_CARGO_API_BASE_URL = "http://192.168.4.1";
@@ -1194,12 +1194,16 @@ static void load_dashboard_connection_config()
{ {
dashboard_preferences.begin("dashcfg", false); dashboard_preferences.begin("dashcfg", false);
bool has_saved_ssid = dashboard_preferences.isKey("wifi_ssid");
cargo_wifi_ssid = dashboard_preferences.getString("wifi_ssid", DASHBOARD_DEFAULT_CARGO_WIFI_SSID); cargo_wifi_ssid = dashboard_preferences.getString("wifi_ssid", DASHBOARD_DEFAULT_CARGO_WIFI_SSID);
cargo_wifi_password = dashboard_preferences.getString("wifi_pass", DASHBOARD_DEFAULT_CARGO_WIFI_PASSWORD); cargo_wifi_password = dashboard_preferences.getString("wifi_pass", DASHBOARD_DEFAULT_CARGO_WIFI_PASSWORD);
cargo_api_base_url = dashboard_preferences.getString("api_base", DASHBOARD_DEFAULT_CARGO_API_BASE_URL); cargo_api_base_url = dashboard_preferences.getString("api_base", DASHBOARD_DEFAULT_CARGO_API_BASE_URL);
rebuild_cargo_api_urls(); rebuild_cargo_api_urls();
dashboard_configured = cargo_wifi_ssid.length() > 0;
// Only skip setup after the user has explicitly saved settings.
dashboard_configured = has_saved_ssid;
Serial.print("Dashboard cargo SSID configured: "); Serial.print("Dashboard cargo SSID configured: ");
Serial.println(dashboard_configured ? "yes" : "no"); Serial.println(dashboard_configured ? "yes" : "no");