Commit Graph

76 Commits

Author SHA1 Message Date
Martin be8cf73d55 Exposed WebServer instance 2023-05-12 15:02:32 -04:00
Nick Reynolds 309e53dd1e Sort out includes for LittleFS 2022-10-13 21:09:05 +01:00
Nick Reynolds 4b489c7ce5 Support ESP-IDF versions prior to 4.4/Arduino Core 2.0 2022-10-13 20:52:19 +01:00
Nick Reynolds 0c9586730e Add feature to optionally _not_ format LittleFS to prepareFileSystem() 2022-10-13 19:53:55 +01:00
Martin Mueller a18254b16b Fixed include issues for LittleFS 2022-09-22 09:34:53 -04:00
Martin Mueller ea4a0df4d0 Major Restructuring next part 2022-09-21 15:45:48 -04:00
Nick Reynolds 90ba90a717 Make captive portal redirect on by default. 2022-09-20 15:29:34 +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
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 d77daf0c8e Initialise the enabled value to fix #162 2022-02-16 15:40:31 +00: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 55b291eb50 Support update of Button text 2022-01-16 14:47:41 +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 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
Lukas Bachschwell aa03c1683d
Add Port Option
Signed-off-by: Lukas Bachschwell <lukas@lbsfilm.at>
2021-10-29 19:37:56 +02:00
Noctr 95d13ec5a9
Update ESPUI.h 2021-08-06 21:40:10 +07:00
Noctr de0c74ab4b
Update ESPUI.h 2021-08-06 21:33:53 +07:00
Noctr 1a8407a0ec
Update ESPUI.h 2021-08-01 23:54:50 +07: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
Moritz Wirger 1e5ee117c5 Use DEBUG_ESPUI to en/disable debug code from being compiled
Include clang-format file for formatting code and format code
2020-10-01 18:04:28 +02:00
Moritz Wirger bfd645d7a1 Use const String& to reduce IROM usage 2020-10-01 18:04:28 +02:00
Lukas Bachschwell cda1a573d6
cleanup
Signed-off-by: Lukas Bachschwell <lukas@lbsfilm.at>
2020-08-26 22:16:02 +02:00
Lukas Bachschwell eec13e4934
No reload per default, just send JsonDom 2020-08-26 22:15:56 +02:00
ruslan.teliuk@aspose.com 81366af7f1
Add remControl() method for remove contols 2020-08-26 22:13:38 +02:00
Lukas Bachschwell 1b7af71d29
Fix littlefs include
Signed-off-by: Lukas Bachschwell <lukas@lbsfilm.at>
2020-08-26 22:13:21 +02:00
Lukas Bachschwell 9764db9789
Increase timeout for connecting existing network and add continuous slider mode #60 2019-12-28 14:54:41 +01:00
Lukas Bachschwell bcddcfc311
#63 add variabbles to public scope of espui 2019-12-27 16:30:15 +01:00
Lukas Bachschwell fe45ed8010
#63 Add variables for jsonDynamicDocument Sizes 2019-12-27 16:27:42 +01:00
Lukas Bachschwell e317d25977
Make AsyncServer instance Pubblic 2019-12-27 15:36:24 +01:00
Lukas Bachschwell 043ba99ea9 Adding basic structure for new widgets 2019-03-26 16:22:21 +01:00
Lukas Bachschwell 3c69f013fc Proper wrappers
- update order of params of create functions to be simillar
- changed all numbers to be numbers
- split pad creation function
- updated examples
2019-03-24 19:18:53 +01:00
Lukas Bachschwell 650411bac4 Consistent use of updateControl on websocket event
- rename updateControl to updateControlValue
- some earlie returns
2019-03-24 18:46:34 +01:00
Lukas Bachschwell b66d41a98b more reformating 2019-03-24 18:18:08 +01:00
Lukas Bachschwell 63b6761044 Cleanup and reformat header
- Construct inside library
- Adds setVerbosity
2019-03-24 16:06:35 +01:00
Christian Riggenbach 6873052b6e Added new features, removed dependency on unique labels
- added Min/Max/Step for numbers and sliders
- labels don't have to be unique anymore; controls can't be updated by labels
- new Slider: JS + CSS
2019-03-19 09:34:16 +01:00
Christian Riggenbach 7125374fa3 Color of elementes are now updateable, reformatted control.js 2019-03-08 22:24:20 +01:00
Christian Riggenbach 6178e4fc22 Added the dropdown-Control
* added the Control
* added the frontend-code
* added the control to the examples "gui-newAPI.ino" and "tabbedGui.ino"
2019-03-04 21:07:39 +01:00