index.html 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <!doctype html>
  2. <head>
  3. <link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/main.css') }}">
  4. </head>
  5. <body onload="javascript: reload()">
  6. <div id="main">
  7. <a href="https://firmware.ardupilot.org/">
  8. <div id="logo">
  9. </div>
  10. </a>
  11. <div id="menu">
  12. <title>ArduPilot Custom Firmware Builder</title>
  13. <h2>ArduPilot Custom Firmware Builder</h2>
  14. <br><b>This site is EXPERIMENTAL</b>
  15. <p>Please select the required options for the custom firmware build.</p>
  16. <form action="/generate" method="post">
  17. <label for="vehicle">Choose a vehicle:</label>
  18. <select name="vehicle">
  19. {% for vehicle in get_vehicles()[0] %}
  20. {% if vehicle == get_vehicles()[1] %}
  21. <option value="{{vehicle}}" selected>{{vehicle}}</option>
  22. {% else %}
  23. <option value="{{vehicle}}">{{vehicle}}</option>
  24. {% endif %}
  25. {% endfor %}
  26. </select>
  27. <br><br>
  28. <label for="board">Choose a board:</label>
  29. <select name="board">
  30. {% for board in get_boards()[0] %}
  31. {% if board == get_boards()[1] %}
  32. <option value="{{board}}" selected>{{board}}</option>
  33. {% else %}
  34. <option value="{{board}}">{{board}}</option>
  35. {% endif %}
  36. {% endfor %}
  37. </select>
  38. <br><br>
  39. {% for (label,define,text,default) in get_build_options() %}
  40. {% if default == '0' %}
  41. <input type="checkbox" name="{{label}}" value="define {{define}} 1">
  42. <input type="hidden" name="{{label}}" value="define {{define}} 0"> {{text}}
  43. {% else %}
  44. <input type="checkbox" name="{{label}}" value="define {{define}} 1" checked>
  45. <input type="hidden" name="{{label}}" value="define {{define}} 0"> {{text}}
  46. {% endif %}
  47. <br>
  48. {% endfor %}
  49. <br>
  50. <input type="submit" value="Generate" method="post">
  51. </form>
  52. </div>
  53. <hr>
  54. <div id="build_status"></div>
  55. <br />
  56. <script>
  57. function reload() {
  58. var output = document.getElementById('build_status');
  59. var xhr = new XMLHttpRequest();
  60. xhr.open('GET', "/builds/status.html");
  61. // disable cache, thanks to: https://stackoverflow.com/questions/22356025/force-cache-control-no-cache-in-chrome-via-xmlhttprequest-on-f5-reload
  62. xhr.setRequestHeader("Cache-Control", "no-cache, no-store, max-age=0");
  63. xhr.setRequestHeader("Expires", "Tue, 01 Jan 1980 1:00:00 GMT");
  64. xhr.setRequestHeader("Pragma", "no-cache");
  65. xhr.onload = function() {
  66. if (xhr.status == 200) {
  67. output.innerHTML = xhr.responseText;
  68. }
  69. setTimeout(reload,5000)
  70. }
  71. xhr.send();
  72. }
  73. </script>
  74. </body>
  75. <hr>
  76. <footer>Created by Will Piper, <a href=https://github.com/ArduPilot/CustomBuild>Source Code<a>.</footer>