| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <!doctype html>
- <head>
- <link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/main.css') }}">
- <script type="text/javascript" src="{{ url_for('static', filename='js/CollapsibleLists.js')}}"></script>
- <title>ArduPilot Custom Firmware Builder</title>
- </head>
- <body onload="javascript: reload()">
- <div id="main">
- <a href="https://custom.ardupilot.org/">
- <div id="logo">
- </div>
- </a>
- <div id="menu">
- <h2>ArduPilot Custom Firmware Builder</h2>
- <br><b>This site is EXPERIMENTAL</b>
- <p>Please select the required options for the custom firmware build.</p>
- <textarea style="float:right" readonly>hello</textarea>
- <form action="/generate" method="post">
- <label for="vehicle">Choose a vehicle:</label>
- <select name="vehicle">
- {% for vehicle in get_vehicles()[0] %}
- {% if vehicle == get_vehicles()[1] %}
- <option value="{{vehicle}}" selected>{{vehicle}}</option>
- {% else %}
- <option value="{{vehicle}}">{{vehicle}}</option>
- {% endif %}
- {% endfor %}
- </select>
- <p/>
- <label for="board">Choose a board:</label>
- <select name="board">
- {% for board in get_boards()[0] %}
- {% if board == get_boards()[1] %}
- <option value="{{board}}" selected>{{board}}</option>
- {% else %}
- <option value="{{board}}">{{board}}</option>
- {% endif %}
- {% endfor %}
- </select>
- <p/>
- <label for="board">Select Features:</label>
- <ul class="collapsibleList">
- {% for c in get_build_categories() %}
- <li>{{c}}
- <ul>
- {% for f in get_build_options(c) %}
- <li>
- {% if f.default == 1 %}
- <input onclick='dependencies(this, "{{f.label}}", "{{f.dependency}}");' type="checkbox" name="{{f.label}}" id="{{f.label}}" value="1" checked>
- {% else %}
- <input onclick='dependencies(this, "{{f.label}}", "{{f.dependency}}");' type="checkbox" name="{{f.label}}" id="{{f.label}}" value="1">
- {% endif %}
- {{f.description}}
- </li>
- {% endfor %}
- </ul>
- </li>
- {% endfor %}
- </ul>
- <br>
- <input type="submit" value="Generate">
- </form>
- </div>
- <hr>
- <div id="build_status"></div>
- <br />
- <script>
- CollapsibleLists.apply();
- function reload() {
- var output = document.getElementById('build_status');
- var xhr = new XMLHttpRequest();
- xhr.open('GET', "/builds/status.html");
- // disable cache, thanks to: https://stackoverflow.com/questions/22356025/force-cache-control-no-cache-in-chrome-via-xmlhttprequest-on-f5-reload
- xhr.setRequestHeader("Cache-Control", "no-cache, no-store, max-age=0");
- xhr.setRequestHeader("Expires", "Tue, 01 Jan 1980 1:00:00 GMT");
- xhr.setRequestHeader("Pragma", "no-cache");
- xhr.onload = function() {
- if (xhr.status == 200) {
- output.innerHTML = xhr.responseText;
- }
- setTimeout(reload,5000)
- }
- xhr.send();
- }
-
- function dependencies(cb, f_label, f_dependency1) {
- switch (cb.name) {
- case f_label:
- const f_dependency = f_dependency1.split(",")
- var arrayLength = f_dependency.length;
- for (var i = 0; i < arrayLength; i++) {
- if (document.getElementById(f_dependency[i]).checked == false){
- document.getElementById(f_dependency[i]).checked = cb.checked;
- }
- }
- break;
- }
- }
- </script>
- </body>
- <hr>
- <footer>Created by Will Piper, <a href=https://github.com/ArduPilot/CustomBuild>Source Code<a>.</footer>
|