index.html 3.4 KB

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