Minor fixes.
This commit is contained in:
parent
73f07b2939
commit
ce725252cc
@ -121,7 +121,7 @@ bool deserializeConfig(JsonObject doc, bool fromFS) {
|
|||||||
if (lC > ledCount) ledCount = lC; // fix incorrect total length (honour analog setup)
|
if (lC > ledCount) ledCount = lC; // fix incorrect total length (honour analog setup)
|
||||||
|
|
||||||
// read multiple button configuration
|
// read multiple button configuration
|
||||||
JsonArray hw_btn_ins = hw[F("btn")][F("ins")];
|
JsonArray hw_btn_ins = hw[F("btn")]["ins"];
|
||||||
if (!hw_btn_ins.isNull()) {
|
if (!hw_btn_ins.isNull()) {
|
||||||
uint8_t s = 0;
|
uint8_t s = 0;
|
||||||
for (JsonObject btn : hw_btn_ins) {
|
for (JsonObject btn : hw_btn_ins) {
|
||||||
@ -342,7 +342,7 @@ bool deserializeConfig(JsonObject doc, bool fromFS) {
|
|||||||
CJSON(macroCountdown, cntdwn[F("macro")]);
|
CJSON(macroCountdown, cntdwn[F("macro")]);
|
||||||
setCountdown();
|
setCountdown();
|
||||||
|
|
||||||
JsonArray timers = tm[F("ins")];
|
JsonArray timers = tm["ins"];
|
||||||
uint8_t it = 0;
|
uint8_t it = 0;
|
||||||
for (JsonObject timer : timers) {
|
for (JsonObject timer : timers) {
|
||||||
if (it > 9) break;
|
if (it > 9) break;
|
||||||
|
@ -591,7 +591,7 @@ input[type=range]::-moz-range-thumb {
|
|||||||
margin: 0px;
|
margin: 0px;
|
||||||
}
|
}
|
||||||
.btn-p {
|
.btn-p {
|
||||||
width: 80%;
|
width: 165px;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
}
|
}
|
||||||
.btn-xs, .btn-pl-del, .btn-pl-add {
|
.btn-xs, .btn-pl-del, .btn-pl-add {
|
||||||
|
@ -260,9 +260,9 @@ function onLoad()
|
|||||||
|
|
||||||
// Create UI update WS handler
|
// Create UI update WS handler
|
||||||
myWS = new WebSocket('ws://'+(loc?locip:window.location.hostname)+'/ws');
|
myWS = new WebSocket('ws://'+(loc?locip:window.location.hostname)+'/ws');
|
||||||
myWS.onopen = function () {
|
// myWS.onopen = function () {
|
||||||
myWS.send("{'v':true}");
|
// myWS.send("{'v':true}");
|
||||||
}
|
// }
|
||||||
myWS.onmessage = function(event) {
|
myWS.onmessage = function(event) {
|
||||||
var json = JSON.parse(event.data);
|
var json = JSON.parse(event.data);
|
||||||
if (handleJson(json.state)) updateUI(true);
|
if (handleJson(json.state)) updateUI(true);
|
||||||
@ -1067,11 +1067,7 @@ function handleJson(s)
|
|||||||
nlFade = s.nl.fade;
|
nlFade = s.nl.fade;
|
||||||
syncSend = s.udpn.send;
|
syncSend = s.udpn.send;
|
||||||
currentPreset = s.ps;
|
currentPreset = s.ps;
|
||||||
gId('cyToggle').checked = (s.pl >= 0);
|
gId('tt').value = s.transition/10;
|
||||||
gId('cycs').value = s.ccnf.min;
|
|
||||||
gId('cyce').value = s.ccnf.max;
|
|
||||||
gId('cyct').value = s.ccnf.time/10;
|
|
||||||
gId('cyctt').value = s.transition/10;
|
|
||||||
|
|
||||||
var selc=0; var ind=0;
|
var selc=0; var ind=0;
|
||||||
populateSegments(s);
|
populateSegments(s);
|
||||||
@ -1410,8 +1406,8 @@ ${plSelContent}
|
|||||||
</div>
|
</div>
|
||||||
<div class="c">Save to ID <input class="noslide" id="p${i}id" type="number" oninput="checkUsed(${i})" max=250 min=1 value=${(i>0)?i:getLowestUnusedP()}></div>
|
<div class="c">Save to ID <input class="noslide" id="p${i}id" type="number" oninput="checkUsed(${i})" max=250 min=1 value=${(i>0)?i:getLowestUnusedP()}></div>
|
||||||
<div class="c">
|
<div class="c">
|
||||||
<button class="btn btn-i btn-p" onclick="saveP(${i},${pl})"><i class="icons btn-icon"></i>Save ${(pl)?"playlist":(i>0)?"changes":"preset"}</button>
|
<button class="btn btn-i btn-p" onclick="saveP(${i},${pl})"><i class="icons btn-icon"></i>Save</button>
|
||||||
${(i>0)?'<button class="btn btn-i btn-p" id="p'+i+'del" onclick="delP('+i+')"><i class="icons btn-icon"></i>Delete '+(pl?"playlist":"preset"):'<button class="btn btn-p" onclick="resetPUtil()">Cancel'}</button>
|
${(i>0)?'<button class="btn btn-i btn-pl-del" id="p'+i+'del" onclick="delP('+i+')"><i class="icons btn-icon"></i>':'<button class="btn btn-p" onclick="resetPUtil()">Cancel'}</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="pwarn ${(i>0)?"bp":""} c" id="p${i}warn"></div>
|
<div class="pwarn ${(i>0)?"bp":""} c" id="p${i}warn"></div>
|
||||||
${(i>0)? ('<div class="h">ID ' +i+ '</div>'):""}`;
|
${(i>0)? ('<div class="h">ID ' +i+ '</div>'):""}`;
|
||||||
@ -1421,7 +1417,7 @@ function makePUtil()
|
|||||||
{
|
{
|
||||||
gId('putil').innerHTML = `<div class="seg pres"><div class="segin expanded">${makeP(0)}</div></div>`;
|
gId('putil').innerHTML = `<div class="seg pres"><div class="segin expanded">${makeP(0)}</div></div>`;
|
||||||
// updateTrail(gId('p0p'));
|
// updateTrail(gId('p0p'));
|
||||||
for (var i=0; i<expanded.length; i++) if (expanded[i]) expand(i);
|
for (var i=0; i<expanded.length; i++) if (expanded[i]) expand(i); // collapse all expanded presets
|
||||||
}
|
}
|
||||||
|
|
||||||
function makePlEntry(p,i) {
|
function makePlEntry(p,i) {
|
||||||
@ -1937,6 +1933,15 @@ function expand(i,a)
|
|||||||
if (!a) expanded[i] = !expanded[i];
|
if (!a) expanded[i] = !expanded[i];
|
||||||
seg.style.display = (expanded[i]) ? "block":"none";
|
seg.style.display = (expanded[i]) ? "block":"none";
|
||||||
gId('sege' +i).style.transform = (expanded[i]) ? "rotate(180deg)":"rotate(0deg)";
|
gId('sege' +i).style.transform = (expanded[i]) ? "rotate(180deg)":"rotate(0deg)";
|
||||||
|
|
||||||
|
if (expanded[i]) gId(i<100?'segutil':'putil').classList.remove("staytop");
|
||||||
|
else gId(i<100?'segutil':'putil').classList.add("staytop");
|
||||||
|
|
||||||
|
if (expanded[i]) seg.parentElement.scrollIntoView({
|
||||||
|
behavior: 'smooth',
|
||||||
|
block: 'start',
|
||||||
|
});
|
||||||
|
|
||||||
if (i < 100) return; //no preset, we are done
|
if (i < 100) return; //no preset, we are done
|
||||||
|
|
||||||
var p = i-100;
|
var p = i-100;
|
||||||
@ -1961,12 +1966,6 @@ function expand(i,a)
|
|||||||
gId(`p${p}api`).value = papi;
|
gId(`p${p}api`).value = papi;
|
||||||
if (papi.indexOf("Please") == 0) gId(`p${p}cstgl`).checked = true;
|
if (papi.indexOf("Please") == 0) gId(`p${p}cstgl`).checked = true;
|
||||||
tglCs(p);
|
tglCs(p);
|
||||||
|
|
||||||
seg = seg.parentElement;
|
|
||||||
if (expanded[i]) seg.scrollIntoView({
|
|
||||||
behavior: 'smooth',
|
|
||||||
block: 'center',
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function unfocusSliders()
|
function unfocusSliders()
|
||||||
|
3585
wled00/html_ui.h
3585
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@ -159,24 +159,16 @@ void sappends(char stype, const char* key, char* val)
|
|||||||
{
|
{
|
||||||
switch(stype)
|
switch(stype)
|
||||||
{
|
{
|
||||||
case 's': { //string (we can interpret val as char*)
|
case 's': {//string (we can interpret val as char*)
|
||||||
|
String buf = val;
|
||||||
|
//convert "%" to "%%" to make EspAsyncWebServer happy
|
||||||
|
buf.replace("%","%%");
|
||||||
oappend("d.Sf.");
|
oappend("d.Sf.");
|
||||||
oappend(key);
|
oappend(key);
|
||||||
oappend(".value=\"");
|
oappend(".value=\"");
|
||||||
//convert "%" to "%%" to make EspAsyncWebServer happy
|
oappend(buf.c_str());
|
||||||
char buf[130];
|
|
||||||
uint8_t len = strlen(val) +1;
|
|
||||||
uint8_t s = 0;
|
|
||||||
for (uint8_t i = 0; i < len; i++) {
|
|
||||||
buf[i+s] = val[i];
|
|
||||||
if (val[i] == '%') {
|
|
||||||
s++; buf[i+s] = '%';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
oappend(buf);
|
|
||||||
oappend("\";");
|
oappend("\";");
|
||||||
break; }
|
break;}
|
||||||
case 'm': //message
|
case 'm': //message
|
||||||
oappend(SET_F("d.getElementsByClassName"));
|
oappend(SET_F("d.getElementsByClassName"));
|
||||||
oappend(key);
|
oappend(key);
|
||||||
|
Loading…
Reference in New Issue
Block a user