2
0
Эх сурвалжийг харах

add emergency recovery/reboot button (no JS)

Christian Herzog 5 жил өмнө
parent
commit
1547f89a4b

+ 29 - 29
components/wifi-manager/code.js

@@ -528,8 +528,10 @@ function checkStatus(){
                 $('a[href^="#tab-audio"]').hide();
                 $('a[href^="#tab-gpio"]').hide();
                 $('a[href^="#tab-nvs"]').show();
-                $( "footer.footer" ).removeClass('sl');
-                $( "footer.footer" ).addClass('recovery');
+                $("footer.footer").removeClass('sl');
+                $("footer.footer").addClass('recovery');
+                $("#boot-button").html('Reboot');
+                $("#boot-form").attr('action', '/reboot.json');
                 enableStatusTimer = true;
             } else {
                 recovery = false;
@@ -537,8 +539,10 @@ function checkStatus(){
                 $('a[href^="#tab-audio"]').show();
                 $('a[href^="#tab-gpio"]').show();
                 $('a[href^="#tab-nvs"]').hide();
-                $( "footer.footer" ).removeClass('recovery');
-                $( "footer.footer" ).addClass('sl');
+                $("footer.footer").removeClass('recovery');
+                $("footer.footer").addClass('sl');
+                $("#boot-button").html('Recovery');
+                $("#boot-form").attr('action', '/recovery.json');
                 enableStatusTimer = false;
             }
         }
@@ -567,7 +571,7 @@ function checkStatus(){
         blockAjax = false;
     })
     .fail(function() {
-        //don't do anything, the server might be down while esp32 recalibrates radio
+        blockAjax = false;
     });
 }
 
@@ -585,32 +589,28 @@ function getConfig() {
                     $("input#autoexec1").val(data["autoexec1"]);
                 }
 
-                if (recovery) {
-                    $("tbody#nvsTable").append(
-                        "<tr>"+
-                            "<td>"+key+"</td>"+
-                            "<td class='value'>"+
-                                "<input type='text' class='form-control nvs' id='"+key+"'>"+
-                            "</td>"+
-                        "</tr>"
-                    );
-                    $("input#"+key).val(data[key]);
-                    console.log("#"+key, data[key]);
-                }
+                $("tbody#nvsTable").append(
+                    "<tr>"+
+                        "<td>"+key+"</td>"+
+                        "<td class='value'>"+
+                            "<input type='text' class='form-control nvs' id='"+key+"'>"+
+                        "</td>"+
+                    "</tr>"
+                );
+                $("input#"+key).val(data[key]);
+                console.log(key+": "+data[key]);    //TODO
             }
         }
-        if (recovery) {
-            $("tbody#nvsTable").append(
-                "<tr>"+
-                    "<td>"+
-                        "<input type='text' class='form-control' id='nvs-new-key' placeholder='new key'>"+
-                    "</td>"+
-                    "<td>"+
-                        "<input type='text' class='form-control' id='nvs-new-value' placeholder='new value'>"+
-                    "</td>"+
-                "</tr>"
-            );
-        }
+        $("tbody#nvsTable").append(
+            "<tr>"+
+                "<td>"+
+                    "<input type='text' class='form-control' id='nvs-new-key' placeholder='new key'>"+
+                "</td>"+
+                "<td>"+
+                    "<input type='text' class='form-control' id='nvs-new-value' placeholder='new value'>"+
+                "</td>"+
+            "</tr>"
+        );
     })
     .fail(function() {
         console.log("failed to fetch config!");

+ 7 - 1
components/wifi-manager/index.html

@@ -260,6 +260,11 @@
             </div>
 
             <div class="tab-pane fade" id="tab-system">
+                <div id="boot-div">
+                    <form id="boot-form" action="/recovery.json" method="post" target="dummyframe">
+                        <button id="boot-button" type="submit" class="btn btn-primary">Recovery</button>
+                    </form>
+                </div>
                 <h1>Check for firmware upgrade</h1>
                 <div class="buttons">
                     <input type="button" id="fwcheck" class="btn btn-info" value="Check for updates" />
@@ -294,7 +299,7 @@
 
             <div class="tab-pane fade" id="tab-credits">
                 <section>
-                     <p><strong>squeezelite-esp32</strong>, &copy; 2019, philippe44, sle118, daduke<br />Licender under ???</p>
+                     <p><strong>squeezelite-esp32</strong>, &copy; 2019, philippe44, sle118, daduke<br />Licensed under the GPL</p>
                      <p>
                         This app would not be possible without the following libraries:
                     </p>
@@ -309,5 +314,6 @@
 
         </div>
         <footer class="footer"><span id="foot-fw"></span><span id="foot-wifi"></span></footer>
+        <iframe width="0" height="0" border="0" name="dummyframe" id="dummyframe"></iframe>
     </body>
 </html>

+ 4 - 0
components/wifi-manager/style.css

@@ -327,3 +327,7 @@ span#flash-status {
 td.value {
     width: 80%;
 }
+
+#boot-div {
+    float: right;
+}