Major refactoring of EEPROM r/w. Add dynamic brightness functionality.
This commit is contained in:
@@ -251,15 +251,23 @@
|
||||
}
|
||||
|
||||
.show {
|
||||
height: 200px;
|
||||
height: 250px;
|
||||
transition: height 1s;
|
||||
}
|
||||
|
||||
.show-container {
|
||||
display: inline
|
||||
}
|
||||
|
||||
.hide-container {
|
||||
display: none
|
||||
}
|
||||
|
||||
.number-container {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: left;
|
||||
align-items: center;
|
||||
/* align-items: center; */
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
@@ -279,9 +287,21 @@
|
||||
<h1 id="headline">WORDCLOCK 2.0</h1>
|
||||
|
||||
<div id="settings-container" class="settings-container">
|
||||
<div class="number-container">
|
||||
<label for="brightness">Brightness:</label>
|
||||
<input type="range" id="brightness" name="volume" min="10" max="255">
|
||||
<div class="visible-brightness-container" id="static_brightness_container">
|
||||
<div class="number-container">
|
||||
<label for="static_brightness">Static brightness:</label>
|
||||
<input type="range" id="static_brightness" name="static_brightness" min="10" max="255">
|
||||
</div>
|
||||
</div>
|
||||
<div class="hidden-brightness-container" id="dyn_brightness_container">
|
||||
<div class="number-container">
|
||||
<label for="min_brightness">Min. brightness:</label>
|
||||
<input type="range" id="min_brightness" name="min_brightness" min="10" max="255">
|
||||
</div>
|
||||
<div class="number-container">
|
||||
<label for="max_brightness">Max. brightness:</label>
|
||||
<input type="range" id="max_brightness" name="max_brightness" min="10" max="255">
|
||||
</div>
|
||||
</div>
|
||||
<div class="number-container">
|
||||
<label for="nm_start" style="align-self: flex-start">Nightmode Start Time: </label>
|
||||
@@ -332,14 +352,12 @@
|
||||
<input name="Nightmode" id="Nightmode" type="checkbox" class="toggle">
|
||||
</div>
|
||||
</div>
|
||||
<div class="checkbox-container">
|
||||
<label for="AutoChange" style="align-self: flex-start">Automatic mode change</label>
|
||||
<div class="checkbox-container" onclick="toggleBrightnessOptions()">
|
||||
<label for="DynBrightness" style="align-self: flex-start">Dynamic brightness</label>
|
||||
<div>
|
||||
<input name="AutoChange" id="AutoChange" type="checkbox" class="toggle">
|
||||
<input name="DynBrightness" id="DynBrightness" type="checkbox" class="toggle">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="main-container hidden" id="colorcontainer">
|
||||
<div class="verticalline">
|
||||
</div>
|
||||
@@ -503,44 +521,47 @@
|
||||
}
|
||||
modebuttons[state].classList.add("active");
|
||||
|
||||
// set checkbox states
|
||||
// set Nightmode checkbox states
|
||||
var ckb_nightmode = document.querySelector('input[id="Nightmode"]');
|
||||
if (myVar.nightMode == "1") {
|
||||
console.log("nightMode == 1");
|
||||
if (myVar.night_mode == "1") {
|
||||
console.log("night_mode == 1");
|
||||
ckb_nightmode.checked = true;
|
||||
}
|
||||
else {
|
||||
console.log("nightMode == 0");
|
||||
console.log("night_mode == 0");
|
||||
ckb_nightmode.checked = false;
|
||||
}
|
||||
ckb_nightmode.addEventListener('change', () => {
|
||||
if (ckb_nightmode.checked) {
|
||||
sendCommand("./cmd?nightmode=1");
|
||||
sendCommand("./cmd?night_mode=1");
|
||||
} else {
|
||||
sendCommand("./cmd?nightmode=0");
|
||||
sendCommand("./cmd?night_mode=0");
|
||||
}
|
||||
});
|
||||
|
||||
var ckb_stateautochange = document.querySelector('input[id="AutoChange"]');
|
||||
if (myVar.stateAutoChange == "1") {
|
||||
console.log("stateAutoChange == 1");
|
||||
ckb_stateautochange.checked = true;
|
||||
// set DynBrightness checkbox states
|
||||
var ckb_dynbrightness = document.querySelector('input[id="DynBrightness"]');
|
||||
if (myVar.dyn_brightness == "1") {
|
||||
console.log("dyn_brightness == 1");
|
||||
ckb_dynbrightness.checked = true;
|
||||
}
|
||||
else {
|
||||
console.log("stateAutoChange == 0");
|
||||
ckb_stateautochange.checked = false;
|
||||
console.log("dyn_brightness == 0");
|
||||
ckb_dynbrightness.checked = false;
|
||||
}
|
||||
ckb_stateautochange.addEventListener('change', () => {
|
||||
if (ckb_stateautochange.checked) {
|
||||
sendCommand("./cmd?stateautochange=1");
|
||||
ckb_dynbrightness.addEventListener('change', () => {
|
||||
if (ckb_dynbrightness.checked) {
|
||||
sendCommand("./cmd?dyn_brightness=1");
|
||||
} else {
|
||||
sendCommand("./cmd?stateautochange=0");
|
||||
sendCommand("./cmd?dyn_brightness=0");
|
||||
}
|
||||
});
|
||||
|
||||
document.getElementById("nm_start").value = myVar.nightModeStart.replace("-", ":");
|
||||
document.getElementById("nm_end").value = myVar.nightModeEnd.replace("-", ":");
|
||||
document.getElementById("brightness").value = parseInt(myVar.brightness);
|
||||
document.getElementById("static_brightness").value = parseInt(myVar.static_brightness);
|
||||
document.getElementById("min_brightness").value = parseInt(myVar.min_brightness);
|
||||
document.getElementById("max_brightness").value = parseInt(myVar.max_brightness);
|
||||
|
||||
updateDisplay(parseInt(myVar.modeid));
|
||||
console.log(myVar);
|
||||
@@ -566,7 +587,7 @@
|
||||
for (const element of maincontainer) {
|
||||
element.classList.add("hidden");
|
||||
}
|
||||
if (myVar != null && myVar.stateAutoChange == "0") {
|
||||
if (myVar != null) {
|
||||
switch (modeid) {
|
||||
case 0: // clock
|
||||
document.getElementById("colorcontainer").classList.remove("hidden");
|
||||
@@ -603,7 +624,9 @@
|
||||
function saveSettings() {
|
||||
var nmStart = document.getElementById("nm_start");
|
||||
var nmEnd = document.getElementById("nm_end");
|
||||
var brightnessElmt = document.getElementById("brightness");
|
||||
var staticBrightnessElmt = document.getElementById("static_brightness");
|
||||
var minBrightnessElmt = document.getElementById("min_brightness");
|
||||
var maxBrightnessElmt = document.getElementById("max_brightness");
|
||||
var resetWifi = document.getElementById("reset_wifi");
|
||||
|
||||
var cmdstr = "./cmd?setting=";
|
||||
@@ -611,25 +634,68 @@
|
||||
cmdstr += "-";
|
||||
cmdstr += nmEnd.value.replace(":", "-");
|
||||
cmdstr += "-";
|
||||
cmdstr += brightnessElmt.value;
|
||||
cmdstr += staticBrightnessElmt.value;
|
||||
cmdstr += "-";
|
||||
cmdstr += Number(resetWifi.checked);
|
||||
cmdstr += "-";
|
||||
cmdstr += minBrightnessElmt.value;
|
||||
cmdstr += "-";
|
||||
cmdstr += maxBrightnessElmt.value;
|
||||
|
||||
console.log(cmdstr);
|
||||
sendCommand(cmdstr);
|
||||
toggleSettings();
|
||||
}
|
||||
|
||||
function toggleBrightnessOptions() {
|
||||
var static_b = document.getElementById("static_brightness_container");
|
||||
var dyn_b = document.getElementById("dyn_brightness_container");
|
||||
|
||||
var ckb_dynbrightness = document.querySelector('input[id="DynBrightness"]');
|
||||
|
||||
if (ckb_dynbrightness.checked == true) {
|
||||
static_b.classList.remove("show-container");
|
||||
static_b.classList.add("hide-container")
|
||||
dyn_b.classList.remove("hide-container");
|
||||
dyn_b.classList.add("show-container")
|
||||
}
|
||||
else {
|
||||
dyn_b.classList.remove("show-container");
|
||||
dyn_b.classList.add("hide-container");
|
||||
static_b.classList.remove("hide-container");
|
||||
static_b.classList.add("show-container");
|
||||
}
|
||||
}
|
||||
|
||||
function toggleSettings() {
|
||||
var container = document.getElementById("settings-container");
|
||||
if (container.classList.contains("show")) {
|
||||
container.classList.remove("show");
|
||||
}
|
||||
else {
|
||||
toggleBrightnessOptions();
|
||||
container.classList.add("show");
|
||||
}
|
||||
}
|
||||
|
||||
function SetMax() {
|
||||
var slider = document.getElementById("mySlider");
|
||||
|
||||
if ("max" in slider) { // Google Chrome, Safari from version 5 and Opera
|
||||
slider.min = 500;
|
||||
} else {
|
||||
// Safari before version 5
|
||||
slider.setAttribute("max", 500);
|
||||
}
|
||||
|
||||
OnSliderChanged(slider);
|
||||
}
|
||||
|
||||
function OnSliderChanged(slider) {
|
||||
var sliderValue = document.getElementById("sliderValue");
|
||||
sliderValue.innerHTML = slider.value;
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user