Skip to content

Commit

Permalink
Merge pull request #242 from Wandmalfarbe/feature/manual-time-select-…
Browse files Browse the repository at this point in the history
…via-html-time-input

Use an HTML time input for setting the time manually
  • Loading branch information
dbambus authored Apr 19, 2023
2 parents 1d978c6 + 323cbe1 commit 18fde9f
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 111 deletions.
92 changes: 2 additions & 90 deletions webpage/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -426,96 +426,8 @@ <h2 data-i18next="settings.manual-time.h2"></h2>
<form class="pure-form pure-form-aligned">
<fieldset>
<div class="pure-control-group">
<label for="hour" data-i18next="settings.manual-time.hour"></label><select name="hour" id="hour" size="1">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
</select>
</div>
<div class="pure-control-group">
<label for="minute" data-i18next="settings.manual-time.minute"></label><select name="minute" id="minute" size="1">
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
<option value="36">36</option>
<option value="37">37</option>
<option value="38">38</option>
<option value="39">39</option>
<option value="40">40</option>
<option value="41">41</option>
<option value="42">42</option>
<option value="43">43</option>
<option value="44">44</option>
<option value="45">45</option>
<option value="46">46</option>
<option value="47">47</option>
<option value="48">48</option>
<option value="49">49</option>
<option value="50">50</option>
<option value="51">51</option>
<option value="52">52</option>
<option value="53">53</option>
<option value="54">54</option>
<option value="55">55</option>
<option value="56">56</option>
<option value="57">57</option>
<option value="58">58</option>
<option value="59">59</option>
</select>
<label for="time" data-i18next="settings.manual-time.time"></label>
<input type="time" id="time" required>
</div>
<div class="pure-controls">
<button id="uhrzeit-button" class="pure-button" data-i18next="settings.manual-time.save"></button>
Expand Down
3 changes: 1 addition & 2 deletions webpage/language/de.js
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,7 @@ let TRANSLATION_DE_DE = {
},
"manual-time": {
"h2": "Uhrzeit manuell einstellen",
"hour": "Stunde",
"minute": "Minute",
"time": "Zeit",
"save": "Einstellung speichern"
},
"brightness": {
Expand Down
3 changes: 1 addition & 2 deletions webpage/language/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,7 @@ let TRANSLATION_EN_US = {
},
"manual-time": {
"h2": "Set Time Manually",
"hour": "Hour",
"minute": "Minute",
"time": "Time",
"save": "Save Setting"
},
"brightness": {
Expand Down
3 changes: 1 addition & 2 deletions webpage/language/nl.js
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,7 @@ let TRANSLATION_NL = {
},
"manual-time": {
"h2": "Tijd handmatig instellen",
"hour": "Uur",
"minute": "Minuten",
"time": "Tijd",
"save": "Opslaan"
},
"brightness": {
Expand Down
48 changes: 33 additions & 15 deletions webpage/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -549,23 +549,36 @@ function setAnimation() {
document.getElementById("animation-demo").checked = animDemo;
}

/**
* Sets the value of the manual time input to the current browser time on the settings page.
*/
function updateManualTimeInput() {
const currentDate = new Date();
// Pad the values with leading zeroes, so at five past eight in the morning it is 08:05 not 8:5.
const hours = currentDate.getHours().toString().padStart(2, "0");
const minutes = currentDate.getMinutes().toString().padStart(2, "0");
$("#time").set("value", `${hours}:${minutes}`);
}

function autoLdrValueUpdater() {
if (autoLdrInterval == null && autoLdrEnabled === 1) {
autoLdrInterval = setInterval(function() {
// jede Sekunde ausfuehren
if ($("#auto-ldr-enabled").get("value") === "1") {
sendCmd(COMMAND_REQUEST_AUTO_LDR, 1);
}
}, 1000);
if (autoLdrInterval !== null || autoLdrEnabled !== 1) {
return;
}
autoLdrInterval = setInterval(function() {
if ($("#auto-ldr-enabled").get("value") === "1") {
sendCmd(COMMAND_REQUEST_AUTO_LDR, 1);
}
}, 1000);
debugMessage(`Start timer autoLdrInterval with ID ${autoLdrInterval}`);
}

function autoLdrStop() {
if (autoLdrInterval != null) {
clearInterval(autoLdrInterval);
autoLdrInterval = null;
debugMessage("LDR requests stopped", null);
if (autoLdrInterval === null) {
return;
}
debugMessage(`Stop timer autoLdrInterval with ID ${autoLdrInterval}`);
clearInterval(autoLdrInterval);
autoLdrInterval = null;
}

function nstr5(number) {
Expand Down Expand Up @@ -672,6 +685,7 @@ $.ready(function() {
if (navigation === "settings" || navigation === "frontoptions") {
sendCmd(COMMAND_REQUEST_CONFIG_VALUES);
sendCmd(COMMAND_REQUEST_AUTO_LDR);
updateManualTimeInput();
autoLdrValueUpdater();
} else {
autoLdrStop();
Expand Down Expand Up @@ -915,11 +929,15 @@ $.ready(function() {
sendCmd(COMMAND_RESET);
});
$("#uhrzeit-button").on("click", function() {
var hour = $("#hour").get("value");
var minute = $("#minute").get("value");

sendCmd(COMMAND_SET_TIME_MANUAL, nstr(hour) + nstr(minute));
debugMessage("Time manually set");
if (!$("#time")[0].validity.valid) {
return;
}
const timeString = $("#time").get("value");
const [hours, minutes] = timeString.split(":");

sendCmd(COMMAND_SET_TIME_MANUAL, nstr(hours) + nstr(minutes));
debugMessage(`Time manually set to ${hours}:${minutes}`);
});
$("#mqtt-button").on("click", function() {
MQTTState = $("#mqtt-state").get("checked") | 0;
Expand Down

0 comments on commit 18fde9f

Please sign in to comment.