Commit Graph

113 Commits

Author SHA1 Message Date
sunlord2k 9ba3f5a940
Update ESPUI.cpp
Changed FILE_WRITE to FILE_WRITING for compatibility with SD.h for usage with SD cards
2024-04-05 12:10:10 +02:00
MartinMueller2003 1ba92a3cd6 Fixes for ESP8266 builds 2024-02-12 09:13:37 -05:00
MartinMueller2003 da20c8b0a5 Converted to normalized littlefs definition 2024-02-12 09:09:51 -05:00
Martin ea8de92246 Checkpoint adding fileDisplay object 2024-02-06 22:38:17 -05:00
MartinMueller2003 00841ce32d Changes to support keeping multiple Browser Clients in sync 2023-11-09 11:06:44 -05:00
Lukas Bachschwell 85ccff0ee0
Merge pull request #257 from d-a-v/stringref
use more string references
2023-10-14 20:31:01 +02:00
David Gauchard ae5b6d5c0a use more string references 2023-09-22 22:37:50 +02:00
David Gauchard 0b22328bd8 introduce lambda 2023-09-15 00:59:10 +02:00
Lukas Bachschwell f8fbcf887a
Fix compile issues #243
Also fix pio example

Signed-off-by: Lukas Bachschwell <lukas@lbsfilm.at>
2023-08-03 16:32:54 +02:00
David Gauchard c3bf9c5d00 reduce memory footprint 2023-07-18 19:49:58 +02:00
leokeba 8e3c12935e fix: Use ControlType Constant 2022-11-05 14:06:13 +01:00
leokeba f35d3a19d4 feat: implemented clearGraph function 2022-11-03 03:31:04 +01:00
Nick Reynolds 09a550e614 Many LittleFS related changes/fixes 2022-10-13 21:10:20 +01:00
Martin Mueller 1595b3bd04 Fixed bug that caused a crash when sending graphpoint updates to multiple browsers. 2022-09-22 09:36:12 -04:00
Martin Mueller ea4a0df4d0 Major Restructuring next part 2022-09-21 15:45:48 -04:00
Nick Reynolds 79b9acf9f4 Changes per suggestions by maintainer (Lukas Bachschwell). 2022-09-21 08:58:05 +01:00
Nick Reynolds e81cd1f7f5 Add captive portal functionality, update examples and documentation. 2022-09-19 17:38:10 +01:00
Martin Mueller 1419b2dec0 Updated the rest of the callback functions to support the new UserData parameter 2022-06-11 01:20:25 -04:00
Martin Mueller 02e847a31e First part of extending callback to include a user parm.
Converted addControl to no longer use C Style function definitions. Now using C++ function overload to support multiple invocation modes.
2022-06-11 00:42:25 -04:00
Martin Mueller 9cb962122c Reworked removeControl function 2022-06-10 12:44:53 -04:00
pcbbc b47d595194 Update ESPUI.cpp 2022-05-23 00:06:42 +01:00
pcbbc a53124de42 Added 'type' proptert to text input elements
Now the text input element can support other HTML input types suxh as date, time, color, password, etc
2022-05-22 23:31:48 +01:00
Ian Gray ab5ac2dc1d Fix regression caused by f06781bc03. See comments in commit on Github. 2022-02-16 20:28:55 +00:00
Ian Gray 0fe60e91a9
Merge branch 'master' into enabledisable 2022-02-11 19:57:36 +00:00
david gauchard f06781bc03 minor fixes for emulation on host
(https://github.com/d-a-v/emuAsync)
2022-02-02 11:19:43 +01:00
Ian Gray 896dc97c75 Support dynamic enabling and disabling of controls
See documentation in README for how this works. This commit
handles all the main controls. Pads are not yet supported.
2022-01-31 21:43:09 +00:00
Ian Gray 576890e033 Dynamic visibility support
The ability to make controls visible and invisible
was basically already supported, we just need to add
some minor handling in controls.js.
2022-01-28 20:31:25 +00:00
Ian Gray 334bf16b09 Initial support for vertical switchers and sliders.
Documentation to be added in a later commit.
2022-01-21 23:30:08 +00:00
Ian Gray 9cd15db1ad Add Time control
Adds a new invisible control that can fetch the current time from a
connected client. Documentation is in the README.
2022-01-20 21:50:06 +00:00
Ian Gray bc34078f42 Fix bug with multiple clients
If two clients were connected at the same time, the chunked updates
from one could cause the other to recieve UI_EXTEND messages. This
is fixed by passing the client in to jsonDom.
2022-01-20 20:43:04 +00:00
Ian Gray 55b291eb50 Support update of Button text 2022-01-16 14:47:41 +00:00
Ian Gray 254912aee5 Add a null check in updateControl
This means that calling any updates before the GUI is created will
now not cause a crash.
2022-01-13 21:29:22 +00:00
Ian Gray 5909471962 Further improve the reliability of UI element transfer.
A protocol has been implemented between the server and client to acknowledge
each UI_INITIAL_GUI and UI_EXTEND_GUI from the client javascript. This
prevents the internal websocket buffers from becoming flooded when the
number of controls gets too high.
2022-01-12 20:12:20 +00:00
Ian Gray cf535110ea
Merge pull request #147 from iangray001/designupdates
Separators, grouped controls, and wide controls
2022-01-09 11:01:46 +00:00
Ian Gray f5dd757240 Add support for wide panels.
Allows for panels to be displayed in single column mode, regardless of screen width.
For more information, see updates to README.md
2022-01-08 21:25:10 +00:00
Ian Gray 9b228800f9 Implement separators, and grouped controls
This adds separator elements, and allows arbitrary grouping of controls. For details
see the updates to README.md
2022-01-08 20:58:22 +00:00
Lukas Bachschwell e1fe13bac6
Implement LITTLEFS as requested by @thomastech in #144
Signed-off-by: Lukas Bachschwell <lukas@lbsfilm.at>
2022-01-04 11:35:43 +01:00
Ian Gray 2a5815c579 Fix signed (int) being compared against unsigned (size_t)
This used to emit two warnings about signedness comparison, so is updated to use
an appropriate type.
2022-01-03 15:46:38 +00:00
Ian Gray 7e5331d54f Realign with upstream 2022-01-03 15:39:48 +00:00
Ian Gray 0ab401c3b1 Merge branch 'master' of github.com:s00500/ESPUI 2022-01-03 15:18:49 +00:00
Ian Gray 232ca3ead4
Support for dynamic custom inline styling.
Adds two functions in ESPUI.h:
setPanelStyle()
setElementStyle()
These allow for custom inline CSS styles to be applied to the panel and to
the specific UI element repectively.

For example:

```
char stylecol1[30]
sprintf(stylecol1, "background-color: #%06X;", (unsigned int) random(0x0, 0xFFFFFF));
ESPUI.setPanelStyle(switch1, stylecol1);
```
This will set the panel of the given control to a random hex colour.

This is supported by both the initial UI message, and by control update messages, so you
can change these styles dynamically in response to other events.

setElementStyle() is not perfect. Because CSS inline styles can only style one specific
DOM element, for controls made up of multiple elements (like the "pad") this is limited.
I have tried to make an appropriate choice for each supported control.
2022-01-03 13:06:55 +01:00
Ian Gray 06460fcc4d
Chunk updates 2022-01-03 13:06:33 +01:00
Ian Gray ec1862cfe6 Support for dynamic custom inline styling.
Adds two functions in ESPUI.h:
setPanelStyle()
setElementStyle()
These allow for custom inline CSS styles to be applied to the panel and to
the specific UI element repectively.

For example:

```
char stylecol1[30]
sprintf(stylecol1, "background-color: #%06X;", (unsigned int) random(0x0, 0xFFFFFF));
ESPUI.setPanelStyle(switch1, stylecol1);
```
This will set the panel of the given control to a random hex colour.

This is supported by both the initial UI message, and by control update messages, so you
can change these styles dynamically in response to other events.

setElementStyle() is not perfect. Because CSS inline styles can only style one specific
DOM element, for controls made up of multiple elements (like the "pad") this is limited.
I have tried to make an appropriate choice for each supported control.
2022-01-02 21:56:32 +00:00
Ian Gray 78317ce5f2 Chunk updates 2022-01-01 22:04:32 +00:00
Ian Gray 1df56772d9 Fixes #136 and also severe bug in addControl 2021-12-29 16:37:48 +00:00
Lukas Bachschwell c66f528702
Send visibility
Signed-off-by: Lukas Bachschwell <lukas@lbsfilm.at>
2021-10-29 19:47:46 +02:00
Lukas Bachschwell aa03c1683d
Add Port Option
Signed-off-by: Lukas Bachschwell <lukas@lbsfilm.at>
2021-10-29 19:37:56 +02:00
Lukas Bachschwell b71bc81c0d
Fixing rebase errors with littlefs/debug refactor
Signed-off-by: Lukas Bachschwell <lukas@lbsfilm.at>
2020-10-18 11:06:38 +02:00
Lukas Bachschwell a6ddd48abb
Fix all other occurences
Signed-off-by: Lukas Bachschwell <lukas@lbsfilm.at>
2020-10-17 22:46:22 +02:00
Lukas Bachschwell 3cf1aa7f49
Fix littleFS does not exist on esp32
Signed-off-by: Lukas Bachschwell <lukas@lbsfilm.at>
2020-10-16 14:47:29 +02:00