mirror of
https://github.com/wled/WLED.git
synced 2025-07-28 13:16:34 +00:00
change slider height to relative values
improve firefox UI appearance reverted last commit
This commit is contained in:
parent
c05b88a0f4
commit
2e4563d72c
5
TODO.txt
5
TODO.txt
@ -5,8 +5,6 @@ fade transition
|
|||||||
simple slide transition
|
simple slide transition
|
||||||
add toolbar conf in settings
|
add toolbar conf in settings
|
||||||
additional color picker field
|
additional color picker field
|
||||||
change slider height to relative values
|
|
||||||
improve firefox UI appearance
|
|
||||||
implement all settings setters
|
implement all settings setters
|
||||||
implement OTA lock / security
|
implement OTA lock / security
|
||||||
implement button
|
implement button
|
||||||
@ -14,11 +12,8 @@ implement HSB slider option
|
|||||||
implement ranges
|
implement ranges
|
||||||
implement discrete range color setter
|
implement discrete range color setter
|
||||||
implement discrete single color setter
|
implement discrete single color setter
|
||||||
change color submit from get to post, rewrite with args, requires no buffer
|
|
||||||
change color submit from rgb to hex
|
|
||||||
do not reboot after settings set -> add reboot button
|
do not reboot after settings set -> add reboot button
|
||||||
svg icons in html
|
svg icons in html
|
||||||
(get rid of spiffs, use progmem for html??)
|
|
||||||
|
|
||||||
BUGS
|
BUGS
|
||||||
static ip disables mdns
|
static ip disables mdns
|
||||||
|
@ -9,11 +9,12 @@
|
|||||||
|
|
||||||
function Startup()
|
function Startup()
|
||||||
{
|
{
|
||||||
setInterval('GetColor()', 5000);
|
setInterval('GetArduinoIO()', 5000);
|
||||||
GetColor();
|
GetArduinoIO();
|
||||||
}
|
}
|
||||||
function GetColor()
|
function GetArduinoIO()
|
||||||
{
|
{
|
||||||
|
nocache = "&nocache=" + Math.random() * 1000000;
|
||||||
var request = new XMLHttpRequest();
|
var request = new XMLHttpRequest();
|
||||||
request.onreadystatechange = function()
|
request.onreadystatechange = function()
|
||||||
{
|
{
|
||||||
@ -30,13 +31,23 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// send HTTP request
|
// send HTTP request
|
||||||
request.open("GET", "/get", true);
|
request.open("GET", "ajax_in/" + strA + strR + strG + strB + nocache, true);
|
||||||
request.send(null);
|
request.send(null);
|
||||||
|
strA = "";
|
||||||
|
strR = "";
|
||||||
|
strG = "";
|
||||||
|
strB = "";
|
||||||
}
|
}
|
||||||
function GetCheck()
|
function GetCheck()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
strA = "&A=" + Ctrl_form.SA.value;
|
||||||
|
strR = "&R=" + Ctrl_form.SR.value;
|
||||||
|
strG = "&G=" + Ctrl_form.SG.value;
|
||||||
|
strB = "&B=" + Ctrl_form.SB.value;
|
||||||
|
|
||||||
UpdateVals();
|
UpdateVals();
|
||||||
post('/set', {'COL': rgb2hex(Ctrl_form.SR.value, Ctrl_form.SG.value, Ctrl_form.SB.value)});
|
GetArduinoIO();
|
||||||
}
|
}
|
||||||
function rgb2hex(red, green, blue) {
|
function rgb2hex(red, green, blue) {
|
||||||
var rgb = blue | (green << 8) | (red << 16);
|
var rgb = blue | (green << 8) | (red << 16);
|
||||||
@ -53,26 +64,6 @@
|
|||||||
{
|
{
|
||||||
window.open("/settings","_self");
|
window.open("/settings","_self");
|
||||||
}
|
}
|
||||||
function post(path, params, method) { //http://stackoverflow.com/questions/133925/
|
|
||||||
method = method || "post"; // Set method to post by default.
|
|
||||||
|
|
||||||
var form = document.createElement("form");
|
|
||||||
form.setAttribute("method", method);
|
|
||||||
form.setAttribute("action", path);
|
|
||||||
|
|
||||||
for(var key in params) {
|
|
||||||
if(params.hasOwnProperty(key)) {
|
|
||||||
var hiddenField = document.createElement("input");
|
|
||||||
hiddenField.setAttribute("type", "hidden");
|
|
||||||
hiddenField.setAttribute("name", key);
|
|
||||||
hiddenField.setAttribute("value", params[key]);
|
|
||||||
|
|
||||||
form.appendChild(hiddenField);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
document.body.appendChild(form);
|
|
||||||
form.submit();
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
.ctrl_box {
|
.ctrl_box {
|
||||||
@ -87,6 +78,7 @@
|
|||||||
}
|
}
|
||||||
.sliders {
|
.sliders {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
height: 12vh;
|
||||||
}
|
}
|
||||||
.sliderA {
|
.sliderA {
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
@ -142,36 +134,34 @@
|
|||||||
}
|
}
|
||||||
input[type=range]::-webkit-slider-runnable-track {
|
input[type=range]::-webkit-slider-runnable-track {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 102px;
|
height: 12vh;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
background: #DDDDDD;
|
background: #DDDDDD;
|
||||||
}
|
}
|
||||||
input[type=range]::-webkit-slider-thumb {
|
input[type=range]::-webkit-slider-thumb {
|
||||||
height: 78px;
|
height: 10vh;
|
||||||
width: 78px;
|
width: 10vh;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
margin-top: 12px;
|
margin-top: 1vh;
|
||||||
}
|
|
||||||
input[type=range]:focus::-webkit-slider-runnable-track {
|
|
||||||
background: #DDDDDD;
|
|
||||||
}
|
}
|
||||||
input[type=range]::-moz-range-track {
|
input[type=range]::-moz-range-track {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 102px;
|
height: 12vh;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
background: #DDDDDD;
|
background: #DDDDDD;
|
||||||
}
|
}
|
||||||
input[type=range]::-moz-range-thumb {
|
input[type=range]::-moz-range-thumb {
|
||||||
height: 78px;
|
height: 10vh;
|
||||||
width: 78px;
|
width: 10vh;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
margin-top: 1vh;
|
||||||
}
|
}
|
||||||
input[type=range]::-ms-track {
|
input[type=range]::-ms-track {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 102px;
|
height: 12vh;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
@ -184,16 +174,10 @@
|
|||||||
background: #DDDDDD;
|
background: #DDDDDD;
|
||||||
}
|
}
|
||||||
input[type=range]::-ms-thumb {
|
input[type=range]::-ms-thumb {
|
||||||
width: 78px;
|
width: 10vh;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
height: 78px;
|
height: 10vh;
|
||||||
}
|
|
||||||
input[type=range]:focus::-ms-fill-lower {
|
|
||||||
background: #DDDDDD;
|
|
||||||
}
|
|
||||||
input[type=range]:focus::-ms-fill-upper {
|
|
||||||
background: #DDDDDD;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style id="holderjs-style" type="text/css"></style></head>
|
<style id="holderjs-style" type="text/css"></style></head>
|
||||||
|
@ -36,6 +36,8 @@ boolean only_ap = false;
|
|||||||
int led_amount = 16;
|
int led_amount = 16;
|
||||||
int nopwrled = 1;
|
int nopwrled = 1;
|
||||||
|
|
||||||
|
char HTTP_req[150];
|
||||||
|
|
||||||
ESP8266WebServer server(80);
|
ESP8266WebServer server(80);
|
||||||
ESP8266HTTPUpdateServer httpUpdater;
|
ESP8266HTTPUpdateServer httpUpdater;
|
||||||
|
|
||||||
@ -296,6 +298,48 @@ void XML_response_settings()
|
|||||||
server.send(200, "text/xml", resp);
|
server.send(200, "text/xml", resp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char StrContains(char *str, char *sfind)
|
||||||
|
{
|
||||||
|
char found = 0;
|
||||||
|
char index = 0;
|
||||||
|
char len;
|
||||||
|
|
||||||
|
len = strlen(str);
|
||||||
|
|
||||||
|
if (strlen(sfind) > len) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
while (index < len) {
|
||||||
|
if (str[index] == sfind[found]) {
|
||||||
|
found++;
|
||||||
|
if (strlen(sfind) == found) {
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
found = 0;
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
uint8_t getNumberAfterStringPos(char str[], char spos)
|
||||||
|
{
|
||||||
|
String op;
|
||||||
|
boolean no_n = false;
|
||||||
|
int i = 0;
|
||||||
|
while (!no_n) {
|
||||||
|
if (str[spos + i + 1] > 47 && str[spos + i + 1] < 58)
|
||||||
|
{
|
||||||
|
op += str[spos + i + 1];
|
||||||
|
}
|
||||||
|
else {no_n = true;}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
return op.toInt();
|
||||||
|
}
|
||||||
|
|
||||||
void handleSettingsSet()
|
void handleSettingsSet()
|
||||||
{
|
{
|
||||||
if (server.hasArg("CSSID")) clientssid = server.arg("CSSID");
|
if (server.hasArg("CSSID")) clientssid = server.arg("CSSID");
|
||||||
@ -394,19 +438,41 @@ void handleSettingsSet()
|
|||||||
saveSettingsToEEPROM();
|
saveSettingsToEEPROM();
|
||||||
}
|
}
|
||||||
|
|
||||||
void handleSet()
|
boolean handleSet(String req)
|
||||||
{
|
{
|
||||||
if (server.hasArg("COL"))
|
Serial.println("handleSet:");
|
||||||
{
|
Serial.println(req);
|
||||||
String in = server.arg("COL");
|
req.toCharArray(HTTP_req, 150, 0);
|
||||||
// Get rid of '#' and convert it to integer
|
if (!StrContains(HTTP_req, "ajax_in")) {
|
||||||
int num = (int) strtol( &in[1], NULL, 16);
|
if (StrContains(HTTP_req, "get-settings"))
|
||||||
col[0] = num >> 16;
|
{
|
||||||
col[1] = num >> 8 & 0xFF;
|
XML_response_settings();
|
||||||
col[2] = num & 0xFF;
|
return true;
|
||||||
}
|
}
|
||||||
server.send(204);
|
return false;
|
||||||
setLeds();
|
}
|
||||||
|
int pos = 0;
|
||||||
|
pos = StrContains(HTTP_req, "A=");
|
||||||
|
if (pos > 0) {
|
||||||
|
bri = getNumberAfterStringPos(HTTP_req, pos);
|
||||||
|
}
|
||||||
|
pos = StrContains(HTTP_req, "R=");
|
||||||
|
if (pos > 0) {
|
||||||
|
col[0] = getNumberAfterStringPos(HTTP_req, pos);
|
||||||
|
}
|
||||||
|
pos = StrContains(HTTP_req, "G=");
|
||||||
|
if (pos > 0) {
|
||||||
|
col[1] = getNumberAfterStringPos(HTTP_req, pos);
|
||||||
|
}
|
||||||
|
pos = StrContains(HTTP_req, "B=");
|
||||||
|
if (pos > 0) {
|
||||||
|
col[2] = getNumberAfterStringPos(HTTP_req, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.println(col[0]);
|
||||||
|
XML_response();
|
||||||
|
setLeds();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//format bytes
|
//format bytes
|
||||||
@ -622,26 +688,31 @@ void setup() {
|
|||||||
server.send(200, "text/plain", "Settings saved. Please wait for light to turn back on, then go to main page...");
|
server.send(200, "text/plain", "Settings saved. Please wait for light to turn back on, then go to main page...");
|
||||||
reset();
|
reset();
|
||||||
});
|
});
|
||||||
server.on("/set", HTTP_POST, handleSet);
|
|
||||||
server.on("/get-settings", HTTP_GET, XML_response_settings);
|
|
||||||
if (!ota_lock){
|
if (!ota_lock){
|
||||||
|
//load editor
|
||||||
server.on("/edit", HTTP_GET, [](){
|
server.on("/edit", HTTP_GET, [](){
|
||||||
if(!handleFileRead("/edit.htm")) server.send(404, "text/plain", "FileNotFound");
|
if(!handleFileRead("/edit.htm")) server.send(404, "text/plain", "FileNotFound");
|
||||||
});
|
});
|
||||||
|
//create file
|
||||||
server.on("/edit", HTTP_PUT, handleFileCreate);
|
server.on("/edit", HTTP_PUT, handleFileCreate);
|
||||||
|
//delete file
|
||||||
server.on("/edit", HTTP_DELETE, handleFileDelete);
|
server.on("/edit", HTTP_DELETE, handleFileDelete);
|
||||||
|
//first callback is called after the request has ended with all parsed arguments
|
||||||
|
//second callback handles file uploads at that location
|
||||||
server.on("/edit", HTTP_POST, [](){ server.send(200, "text/plain", ""); }, handleFileUpload);
|
server.on("/edit", HTTP_POST, [](){ server.send(200, "text/plain", ""); }, handleFileUpload);
|
||||||
|
//list directory
|
||||||
server.on("/list", HTTP_GET, handleFileList);
|
server.on("/list", HTTP_GET, handleFileList);
|
||||||
|
//kill module
|
||||||
server.on("/down", HTTP_GET, down);
|
server.on("/down", HTTP_GET, down);
|
||||||
|
//clear eeprom
|
||||||
server.on("/cleareeprom", HTTP_GET, clearEEPROM);
|
server.on("/cleareeprom", HTTP_GET, clearEEPROM);
|
||||||
|
//init ota page
|
||||||
httpUpdater.setup(&server);
|
httpUpdater.setup(&server);
|
||||||
}
|
}
|
||||||
//called when the url is not defined
|
//called when the url is not defined here, ajax-in; get-settings
|
||||||
server.onNotFound([](){
|
server.onNotFound([](){
|
||||||
if(server.uri().indexOf("get")<0){
|
if(!handleSet(server.uri())){
|
||||||
server.send(404, "text/plain", "FileNotFound");
|
server.send(404, "text/plain", "FileNotFound");
|
||||||
} else {
|
|
||||||
XML_response();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user