Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use an HTML time input for setting the time manually #242

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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