generate.html 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <!doctype html>
  2. <html>
  3. <title>ArduPilot Custom Firmware Builder</title>
  4. <h1>ArduPilot Custom Firmware Builder</h1>
  5. {% if error %}
  6. <p>{{ error }}!</p>
  7. {% else %}
  8. <body onload="javascript: reload()">
  9. <div id="menu">
  10. <p>Build in progress...</p>
  11. <form action="/builds/{{token}}" target="_blank">
  12. <input type="submit" value="Go to build directory" />
  13. </form>
  14. <form action="/builds" target="_blank">
  15. <input type="submit" value="See all builds" />
  16. </form>
  17. <form action="/">
  18. <input type="submit" value="Queue another build" method="post">
  19. </form>
  20. </div>
  21. <p>Build ID: {{ token }}</p>
  22. <p>Build progress:</p>
  23. <textarea
  24. id="build_output" rows="30" cols="100" readonly autocomplete="off">
  25. </textarea>
  26. <script>
  27. function reload() {
  28. var output = document.getElementById('build_output');
  29. output.scrollTop = output.scrollHeight;
  30. var xhr = new XMLHttpRequest();
  31. xhr.open('GET', "/builds/{{token}}/build.log");
  32. // disable cache, thanks to: https://stackoverflow.com/questions/22356025/force-cache-control-no-cache-in-chrome-via-xmlhttprequest-on-f5-reload
  33. xhr.setRequestHeader("Cache-Control", "no-cache, no-store, max-age=0");
  34. xhr.setRequestHeader("Expires", "Tue, 01 Jan 1980 1:00:00 GMT");
  35. xhr.setRequestHeader("Pragma", "no-cache");
  36. xhr.onload = function() {
  37. if (xhr.status == 200) {
  38. output.textContent = xhr.responseText;
  39. if (xhr.responseText.includes("BUILD_FINISHED")) {
  40. return;
  41. }
  42. }
  43. setTimeout(reload,3000)
  44. }
  45. xhr.send();
  46. }
  47. </script>
  48. </body>
  49. {% endif %}
  50. </html>