115 lines
3.3 KiB
HTML
115 lines
3.3 KiB
HTML
|
|
||
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<!--Import Google Icon Font-->
|
||
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||
|
<!--Import materialize.css-->
|
||
|
<link type="text/css" rel="stylesheet" href="css/materialize.min.css" media="screen,projection"/>
|
||
|
<title>Timelapse Now WebServer</title>
|
||
|
<!--Let browser know website is optimized for mobile-->
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||
|
<link rel="stylesheet" href="css/timelapse.css">
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
<nav>
|
||
|
<div class="nav-wrapper">
|
||
|
<a href="#!" class="brand-logo center">Timelapse Now</a>
|
||
|
<a href="#" data-target="mobile-demo" class="sidenav-trigger"><i class="material-icons">menu</i></a>
|
||
|
<ul class="center hide-on-med-and-down">
|
||
|
<li><a href="#" onclick="record()">Record</a></li>
|
||
|
<li><a href="#" onclick="realtime()">Real Time</a></li>
|
||
|
|
||
|
</ul>
|
||
|
</div>
|
||
|
</nav>
|
||
|
|
||
|
<!-- Dropdown Structure -->
|
||
|
|
||
|
|
||
|
<ul class="sidenav" id="mobile-demo">
|
||
|
<li><a href="#" onclick="record()">Record</a></li>
|
||
|
<li><a href="#" onclick="realtime()">Real Time</a></li>
|
||
|
|
||
|
</ul>
|
||
|
|
||
|
<div class="img-container">
|
||
|
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div class="timelapse-state">
|
||
|
<div class="rec" id="rec">Stopped</div>
|
||
|
<div class="real-time" id="real-time">Interval</div><br>
|
||
|
</div>
|
||
|
|
||
|
<script type="text/javascript" src="js/jquery.min.js"></script>
|
||
|
<!--JavaScript at end of body for optimized loading-->
|
||
|
<script type="text/javascript" src="js/materialize.min.js"></script>
|
||
|
<script>
|
||
|
var record_text=document.getElementById("rec");
|
||
|
var rt_text=document.getElementById("real-time");
|
||
|
function setText()
|
||
|
{
|
||
|
record_text.innerText = rec ? "Recording" : "Stopped";
|
||
|
rt_text.innerText = real ? "Real Time" : "Inerval";
|
||
|
}
|
||
|
var rec=false;
|
||
|
var real=false;
|
||
|
$(document).ready(function(){
|
||
|
$('.sidenav').sidenav();
|
||
|
|
||
|
yourFunction();
|
||
|
});
|
||
|
|
||
|
function record()
|
||
|
{
|
||
|
get(`api/setstate.cgi?rec=${!rec}&real=${real}`,(e)=>{
|
||
|
var j=JSON.parse(e);
|
||
|
rec=j.Recording;
|
||
|
real=j.RealTime;
|
||
|
setText();
|
||
|
});
|
||
|
return false;
|
||
|
}
|
||
|
function realtime()
|
||
|
{
|
||
|
|
||
|
get(`api/setstate.cgi?rec=${rec}&real=${!real}`,(e)=>{
|
||
|
var j=JSON.parse(e);
|
||
|
rec=j.Recording;
|
||
|
real=j.RealTime;
|
||
|
setText();
|
||
|
});
|
||
|
return false;
|
||
|
|
||
|
}
|
||
|
|
||
|
function yourFunction(){
|
||
|
// do whatever you like here
|
||
|
get("api/state.json",(e)=>{
|
||
|
var j=JSON.parse(e);
|
||
|
rec=j.Recording;
|
||
|
real=j.RealTime;
|
||
|
setText();
|
||
|
});
|
||
|
|
||
|
setTimeout(yourFunction,2000);
|
||
|
}
|
||
|
function get(url,resp)
|
||
|
{
|
||
|
var xhttp = new XMLHttpRequest();
|
||
|
xhttp.onreadystatechange = function() {
|
||
|
if (this.readyState == 4 && this.status == 200) {
|
||
|
// Typical action to be performed when the document is ready:
|
||
|
resp(xhttp.responseText);
|
||
|
}
|
||
|
};
|
||
|
xhttp.open("GET", url, true);
|
||
|
xhttp.send();
|
||
|
}
|
||
|
|
||
|
</script>
|
||
|
</body>
|
||
|
</html>
|