diff options
author | Devaev Maxim <[email protected]> | 2018-07-12 02:32:56 +0000 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2018-07-12 02:32:56 +0000 |
commit | 52c94958f7b56d6d59b3ef8e7a145489cec9be1d (patch) | |
tree | 54f2e73189c50d22803f8504860fdca775b17145 /kvmd | |
parent | cd0ce2d6bef69975d713f55eeba24abe379e4f25 (diff) |
better web
Diffstat (limited to 'kvmd')
-rw-r--r-- | kvmd/web/index.html | 34 | ||||
-rw-r--r-- | kvmd/web/js/kvmd.js | 43 |
2 files changed, 54 insertions, 23 deletions
diff --git a/kvmd/web/index.html b/kvmd/web/index.html index 609d5021..d5538943 100644 --- a/kvmd/web/index.html +++ b/kvmd/web/index.html @@ -7,22 +7,34 @@ </head> <script src="js/kvmd.js"></script> -<script> window.onload = runKvmdSession; </script> +<script> + window.onload = function() { + runKvmdSession(); + pollStreamer(); + } +</script> <body> <div class="stream-box"> <img src="/streamer/?action=stream" id="stream-image" class="stream-image" alt="" /> </div> - <table><tr> - <td><div id="power-led" class="power-led-off"></div></td> - <td><div id="hdd-led" class="hdd-led-off"></div></td> - <td> </td> - <td><button id="power-button" type="button" title="Click hardware power button" onclick="clickPowerButton();">Power</button></td> - <td><button id="power-button-long" type="button" title="Click hardware power button (long press)" onclick="clickPowerButtonLong();">Power (long)</button></td> - <td><button id="reset-button" type="button" title="Click to force reset" onclick="clickResetButton();">Reset</button></td> - <td> </td> - <td><div id="session-status">Not connected yet...</div></td> - </tr></table> + <table> + <tr> + <td><div id="power-led" class="power-led-off"></div></td> + <td><div id="hdd-led" class="hdd-led-off"></div></td> + <td> </td> + <td><button id="power-button" type="button" title="Click hardware power button" onclick="clickPowerButton();">Power</button></td> + <td><button id="power-button-long" type="button" title="Click hardware power button (long press)" onclick="clickPowerButtonLong();">Power (long)</button></td> + <td><button id="reset-button" type="button" title="Click to force reset" onclick="clickResetButton();">Reset</button></td> + </tr> + </table> + <table> + <tr> + <td><button id="restart-stream-button" type="button" title="Click here if your video looks like a crap" onclick="resetStreamer();">Restart video</button></td> + <td> </td> + <td><div id="session-status">Not connected yet...</div></td> + </tr> + </table> </body> </html> diff --git a/kvmd/web/js/kvmd.js b/kvmd/web/js/kvmd.js index 9e72aebe..dc69bc73 100644 --- a/kvmd/web/js/kvmd.js +++ b/kvmd/web/js/kvmd.js @@ -1,12 +1,7 @@ -KVMD_BASE_URL = "/kvmd" - - -// ----------------------------------------------------------------------------- function runKvmdSession() { - var ws = new WebSocket("ws://" + location.host + KVMD_BASE_URL + "/ws"); + var ws = new WebSocket("ws://" + location.host + "/kvmd/ws"); ws.onopen = function(event) { - alert("Session opened and keyboard will be captured"); __installHidHandlers(ws); __setSessionStatus("session-opened", "Session opened (keyboard captured)"); }; @@ -86,15 +81,39 @@ function clickResetButton() { function __clickButton(button) { var http = new XMLHttpRequest(); - http.open("POST", KVMD_BASE_URL + "/atx/click?button=" + button, true); + http.open("POST", "/kvmd/atx/click?button=" + button, true); http.onreadystatechange = function() { - if (http.readyState == 4) { - if (http.status == 200) { - alert("Clicked!") - } else { - alert("Click error: " + http.responseText); + if (http.readyState == 4 && http.status != 200) { + alert("Click error: " + http.responseText); + } + } + http.send(); +} + + +// ----------------------------------------------------------------------------- +function pollStreamer() { + var http = new XMLHttpRequest(); + http.open("GET", "/streamer/?action=snapshot", true); + http.onreadystatechange = function() { + if (http.readyState == 2) { + http.abort(); + if (http.status != 200) { + document.getElementById("stream-image").src = "/streamer/?action=stream&time=" + new Date().getTime(); } } } http.send(); + setTimeout(pollStreamer, 2000); +} + +function resetStreamer() { + var http = new XMLHttpRequest(); + http.open("POST", "/kvmd/streamer/reset", true); + http.onreadystatechange = function() { + if (http.readyState == 4 && http.status != 200) { + alert("Can't reset streamer: " + http.responseText); + } + } + http.send(); } |