pico-w-clock/index.html

86 lines
3.1 KiB
HTML
Raw Normal View History

2023-01-31 12:34:52 +00:00
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="style.css">
</head>
<body onload="startTime()">
<header>
<h1>PicoClock</h1>
<p>Ayala & Ido's Clock Settings</p>
<p> State: <b><span id="time"></span></b> | 🌞Day: <span class="{day_light_class}">💡</span> | 🌚Night: <span
class="{night_light_class}">💡</span></p>
<nav> <a href="#" onclick="setTime()">🕰️ Set Time</a> <a href="#" onclick="toggle('day')">🌞 Toggle</a> <a
href="#" onclick="toggle('night')">🌚 Toggle</a> </nav>
</header>
<main>
<p> Working Mode: </p>
<input type="radio" id="auto" value="auto" {mode_auto} onclick="update_mode('auto')">
<label for="auto">Schedule</label>
<br>
<input type="radio" id="manual" value="manual" {mode_manual} onclick="update_mode('manual')">
<label for="manual">Manual</label><br>
<hr>
<div style="display: flex;">
<div style="width: 100%;">
<p>🌞 💡Is set to: {day_on_time}</p>
</div>
</div>
<div style="display:flex"> <input type="time" id="N2D" style="width:100%"> <button type="foo"
onclick="set_time_update('day', 'N2D')">SET</button> </div>
<div style="display: flex;">
<div style="width: 100%;">
<p>🌚💡Is set to: {night_on_time}</p>
</div>
</div>
<div style="display:flex"> <input type="time" id="D2N" style="width: 100%;"> <button type="foo"
onclick="set_time_update('night', 'D2N')">SET</button> </div>
</main>
<footer>
<p>Made with ❤️ by <a href="mailto:picoclock@sagi.dayanhub.com">ZeGoomba</a>. v0.0.1</p>
</footer>
</body>
<script>
function toggle(time) {
fetch(`/toggle_${time}/`).finally(reload).catch(console.error);
}
function setTime() {
d = new Date();
fetch(`/stime/${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}/`).finally(reload).catch(console.error);
}
function update_mode(mode) {
fetch(`/update_mode/${mode}/`).finally(reload).catch(console.error);
}
function set_time_update(time, id) {
let el = document.getElementById(id);
let [h, m] = el.value.split(':').map(v => parseInt(v));
if (h && m) fetch(`/set_${time}_time/${h}/${m}/`).finally(reload).catch(console.error);
}
function startTime() {
let time = new Date();
time.setHours({time_h});
time.setMinutes({time_m});
time.setSeconds({time_s});
timeLoop(time);
}
function timeLoop(time) {
let h = time.getHours();
let m = time.getMinutes();
let s = time.getSeconds();
m = checkTime(m);
s = checkTime(s);
document.getElementById('time').innerHTML = h + ":" + m + ":" + s;
setTimeout(timeLoop, 1000, new Date(time.getTime() + 1000));
}
function checkTime(i) {
if (i < 10) {i = "0" + i};
return i;
}
function reload() {
location.reload();
}
</script>
</html>