Skip to content

Commit

Permalink
Add reset handling
Browse files Browse the repository at this point in the history
  • Loading branch information
lbussy committed Apr 18, 2020
1 parent 764840a commit 93b14e6
Show file tree
Hide file tree
Showing 2 changed files with 164 additions and 1 deletion.
162 changes: 162 additions & 0 deletions data/reset.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
<!doctype html>
<html lang="en" class="h-100">

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<meta name="description" content="Brew Bubbles, a Home Brewing application">
<meta name="author" content="Lee Bussy">

<title>Brew Bubbles</title>

<link rel="canonical" href="https://www.brewbubbles.com/">

<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<meta name="apple-mobile-web-app-title" content="Brew Bubbles">
<meta name="application-name" content="Brew Bubbles">
<meta name="msapplication-TileColor" content="#00aba9">
<meta name="msapplication-TileImage" content="/mstile-144x144.png">
<meta name="msapplication-config" content="/browserconfig.xml">
<meta name="theme-color" content="#ffffff">

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootswatch/4.4.1/united/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" crossorigin="anonymous">

<style>
main>.container {
padding: 60px 15px 0;
}

.footer {
background-color: #f5f5f5f5;
}

.footer>.container {
padding-right: 15px;
padding-left: 15px;
}
</style>

</head>

<body class="d-flex flex-column h-100">

<header>
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">

<a class="navbar-brand" href="/">
<img src="/mstile-144x144.png" style="width:25px;height:25px;">
&nbsp;Brew Bubbles
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarColor01"
aria-controls="navbarColor01" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarColor01">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="/">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="/settings/">Settings</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/help/">Help</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/about/">About</a>
</li>
</ul>
</div>
</nav>
</header>

<main role="main" class="flex-shrink-0">

<div class="container" id="settingsapp"> <!-- Container -->

<div class="page-header" id="banner">
<h1>Restart</h1>
</div>
<div class="card border-dark mb-3">

<!-- Controller Reset Information -->
<div class="card-header">
<h4 class="card-title">Controller Reset</h4>
</div>
<div class="card-body">
<p class="card-text">
Your Brew Bubbles' controller is being reset and will return momentarily. You will be redirected to the hope bage when
that is complete.
</p>
</div>
</div> <!-- Controller Reset Information -->

</div> <!-- Container -->

</main>

<footer class="footer mt-auto py-3">
<div class="container">
<span class="text-muted">Copyright &copy; 2019-2020, Lee C. Bussy</span>
</div>
</footer>

<script src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous">
</script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous">
</script>

<script type="text/javascript">
// Attach the event after the page loads
if (window.addEventListener)
window.addEventListener("load", loadPage, false);
else if (window.attachEvent)
window.attachEvent("onload", loadPage);
else window.onload = loadPage;

function loadPage() { // Load the page's JS elements
// Wait for restart to complete
var running = false;
var intervalID = window.setInterval(function () { // Poll every 5 seconds
checkSemaphore(function (semaphore) {
didreset = semaphore;
if (didreset == true) {
// Reset is complete
$("#banner").replaceWith("<h1>Controller Reset Complete</h1>");
$("#subtitle").replaceWith("<h4 class='card-header' class='card-title'>Redirect Pending</h4>");
$("#message").replaceWith("<p class='card-body'>The controller reset is complete. You will be redirected momentarily.</p>");
setTimeout(function () { window.location.href = "/"; }, 5000);
}
});
}, 5000);
}

function checkSemaphore(callback) { // Check to see if the update is complete
var jqxhr = $.getJSON("/config/")
.done(function (data) {
callback(true);
})
.fail(function () {
// This will fail while controller resets
callback({});
}
);
}
</script>

</body>

</html>
3 changes: 2 additions & 1 deletion src/webserver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ void setRegPageAliases()
server.serveStatic("/ota2/", SPIFFS, "/").setDefaultFile("ota2.htm").setCacheControl("max-age=600");
server.serveStatic("/settings/", SPIFFS, "/").setDefaultFile("settings.htm").setCacheControl("max-age=600");
server.serveStatic("/wifi/", SPIFFS, "/").setDefaultFile("wifi.htm").setCacheControl("max-age=600");
server.serveStatic("/reset/", SPIFFS, "/").setDefaultFile("reset.htm").setCacheControl("max-age=600");
}

void setActionPageHandlers()
Expand All @@ -80,7 +81,7 @@ void setActionPageHandlers()
Log.verbose(F("Processing /reset/." CR));
request->send(200, F("text/plain"), F("Ok"));
// Redirect to Settings page
request->redirect("/settings/#restart");
request->redirect("/reset/");
_delay(1000);
reboot();
});
Expand Down

0 comments on commit 93b14e6

Please sign in to comment.