Commit Graph
23 Commits
Author SHA1 Message Date
alex 55f1fd7ce6 Add root library manifest for git consumers.
Point local test builds at the local DFTE checkout while keeping the published WiFiManager metadata usable from the repository root.
2026-04-18 01:23:24 +10:00
alex 9401c20df6 WiFiManager: fragment templates, handler refactor, and tests.
Split reusable HTML into Fragments, Message, and Param headers; route
more pages through DFTE streaming. Update handlers, WiFi polling JS,
and configuration/scanning tests; add template rendering coverage.
2026-04-18 00:23:57 +10:00
alex 69aea5ce35 WiFiManager: stream info and wifi pages through DFTE.
Harden the root placeholder path, add direct render-isolation coverage, move simple status pages and /info onto request-scoped streamed templates, and switch /wifi to a streamed shell while keeping scan/form sections string-built for now.
2026-04-17 06:41:44 +10:00
alex 9f111ab8bd WiFiManager: stabilize root rendering and reduce page reallocations.
Keep root template state request-scoped so dynamic placeholders stay consistent during chunked renders, add reserve() coverage for non-streamed pages, and add compile/test coverage for the new root render lifecycle.
2026-04-16 20:54:03 +10:00
alex bb1008435f Update library.json and platformio.ini 2025-11-30 00:55:31 +10:00
alex d8046146b5 WiFiManager: add template customization hooks (callback, granular default registrations, rebuild); switch to RootSelector for overridable WM_ROOT_TEMPLATE; minor menu logic fixes 2025-11-16 23:05:12 +10:00
alex 3054123b7f WiFiManager: add DFTE root template and chunked rendering for handleRoot; introduce shared placeholder registry via server singleton; add getMenuOut(String*) overload and menu logic for params/close 2025-11-16 22:21:47 +10:00
alex 3b488423a8 WiFiManager: remove legacy web customization API; simplify handlers to static templates; drop custom menu; keep title and parameter customization; update tests; remove renderer abstraction; build/test clean 2025-11-16 18:09:59 +10:00
alex aa4705e1e3 deps: align with platformio.ini; add ESP32Async/ESPAsyncWebServer@3.8.1 and DFTE 2025-11-16 17:21:17 +10:00
alex ac38bc20f5 chore: tidy comments, remove dead code, add actionable TODOs, improve API docs 2025-11-16 17:05:15 +10:00
alex 10c068178e Remove multi-language support and reorganize constants
- Delete language files (wm_strings_*/wm_consts_*) and wm_consts_en.h
- Move constants to appropriate headers (routes/menu tokens to Server, CSS/forms/headers to Handlers)
- Extract utility functions to WiFiManagerUtils.h/cpp
- Create template files (HTML.h, CSS.h, JS.h) for web interface
- Update version to 2.0.18
- Remove unused HTTP_HEAD_CL constant
2025-11-16 00:07:10 +10:00
alex 1b2cc44bc3 Update author attribution in headers and documentation 2025-11-15 22:24:54 +10:00
alex 9cd5f62f9b Refactor WiFiManager: extract server and handlers into separate modules
- Move server lifecycle management to WiFiManagerServer
- Move HTTP handlers and rendering to WiFiManagerHandlers
- Move DEBUG_WM template definitions to WiFiManagerDebug
- Implement lazy initialization of server manager to save memory
- Add proper cleanup in destructor and on multiple createServer calls
- Update tests to use getServer() and getDNSServer() accessors
2025-11-15 22:22:36 +10:00
alex 1788aa3c4a Refactor WiFiManagerParameter 2025-11-14 16:18:44 +10:00
alex f119b02815 Fix async WiFi scanning and captive portal redirects
- Fix captive portal redirect to preserve URL path and query params
- Fix password field rendering for WiFi networks (encryption detection)
- Add WiFiPollingJS template for AJAX polling (currently disabled due to size limit)
- Remove blocking WiFi scan operations
- Add debug output for response handling
2025-11-05 23:19:26 +10:00
alex f5db6b13d1 Merge branch 'device-framework' of github.com:alexhopeoconnor/WiFiManager into device-framework 2025-11-05 20:52:17 +10:00
alex b94f34f06a Remove blocking config portal mode and refactor API
- Remove setConfigPortalBlocking() API and _configPortalIsBlocking member variable
- Remove blocking while(1) loop from startConfigPortal()
- Change startConfigPortal() return type from boolean to void
- Change stopConfigPortal() return type from bool to void
- Make stopConfigPortal() immediately shutdown portal (call shutdownConfigPortal() directly)
- Remove unused portalAbortResult and portalTimeoutResult variables
- Update all comments to remove blocking mode references
- Simplify debug messages (remove 'non-blocking' references)
- Update tests to remove setConfigPortalBlocking() calls
- All 43 tests passing

The config portal is now always non-blocking, requiring users to call
process() periodically in their main loop. This aligns with the async
web server architecture and simplifies the API.
2025-11-05 20:49:22 +10:00
alex a0a7b7e263 Refactor WiFi scanning JavaScript to use raw string literal template
- Remove async parameter from WiFi_scanNetworks() method signatures
- Move JavaScript code to templates/WiFiPollingJS.h using R"rawliteral" format
- Fix JavaScript syntax errors by eliminating quote escaping issues
- Change scan status route from /wifi/scanstatus to /wifistatus to avoid route conflicts
- Cleaner code structure with JavaScript in separate template file
2025-11-05 20:47:10 +10:00
alex d533f4d754 Refactor WiFi scanning to be fully async for ESPAsyncWebServer
- Remove blocking WiFi scan operations from HTTP handlers
- Make WiFi_scanNetworks() always async, remove sync path
- Remove blocking wait loop that caused WDT resets
- Add scan status polling in process() function
- Make getScanItemOut() cache-only, never triggers scans
- Add /wifi/scanstatus JSON endpoint for AJAX polling
- Add client-side JavaScript for async network list updates
- Remove _asyncScan toggle, always use async scanning
- Add scan state management variables (_scanInProgress, _scanRequested)
2025-11-05 19:18:48 +10:00
alex d62f680132 Refactor to use ESPAsyncWebServer instead of ESP8266WebServer/WebServer
- Replace ESP8266WebServer/WebServer with ESPAsyncWebServer
- Update all route handlers to async pattern with AsyncWebServerRequest*
- Replace synchronous HTTPSend() with request->send()
- Add configurable delay constants (REBOOT_DELAY_MS, EXIT_DELAY_MS, ERASE_REBOOT_DELAY_MS)
- Implement scheduled reboot/abort flags instead of blocking delays
- Update WiFiManagerRequestArgs to use AsyncWebServerRequest
- Remove server->handleClient() and server->stop() calls (not needed for AsyncWebServer)
- Update parameter access to use request->getParam() instead of server->arg()
- Add ESPAsyncWebServer to platformio.ini dependencies
2025-11-04 22:51:22 +10:00
alex c2e1e7f95c Bump version to 2.0.18 2025-11-04 20:16:44 +10:00
alex 4b1226bd05 Add WiFiManagerRequestArgs class and update saveParamsCallback to pass request arguments
- Created WiFiManagerRequestArgs nested class to encapsulate HTTP request arguments
- Updated setSaveParamsCallback to accept WiFiManagerRequestArgs by value
- Updated handleWifiSave() and handleParamSave() to build RequestArgs early
- Updated doParamSave() to accept and use RequestArgs for custom HTML params
- Updated test callbacks to match new signature
- All tests passing (43/43)
2025-11-04 20:06:24 +10:00
alex b2a17d81bf Restructure project for PlatformIO best practices and add test framework
- Move library code from src/ to lib/WiFiManager/src/
- Move headers from include/ to lib/WiFiManager/include/
- Move library.json to lib/WiFiManager/
- Update platformio.ini with Unity test framework configuration
- Add test structure following PlatformIO unit testing best practices
- Remove empty src/ directory (not needed for library-only projects)
2025-11-02 12:50:57 +10:00