wip: start scan results page
This commit is contained in:
Родитель
4346d527cf
Коммит
3c649f7ecb
|
@ -13,6 +13,7 @@
|
|||
"client-sessions": "^0.8.0",
|
||||
"dotenv": "^5.0.1",
|
||||
"express": "^4.16.2",
|
||||
"express-hbs": "^1.0.4",
|
||||
"hbs": "^4.0.1",
|
||||
"nodemailer": "^4.6.0",
|
||||
"pg": "^7.4.1",
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
"use strict";
|
||||
|
||||
const AppConstants = require("../app-constants");
|
||||
|
||||
const express = require("express");
|
||||
const router = express.Router();
|
||||
|
||||
const models = require("../db/models");
|
||||
|
||||
router.get("/", (req, res) => {
|
||||
res.render("home", {
|
||||
title: "Firefox Breach Alerts",
|
||||
});
|
||||
});
|
||||
|
||||
router.post("/scan", (req, res) => {
|
||||
// const email = req.body.email
|
||||
// breachedHash = models.BreachedHash.get({ where: { hash: sha1(email) } })
|
||||
// breaches = models.Breaches.findAll({ where: {id: [breach1ID, breach2ID, ...] } })
|
||||
// res.render("scan", {
|
||||
// title: "Firefox Breach Alerts: Scan Results",
|
||||
// email: email,
|
||||
// breaches: breaches
|
||||
// });
|
||||
res.render("scan");
|
||||
});
|
||||
|
||||
module.exports = router;
|
20
server.js
20
server.js
|
@ -4,16 +4,23 @@ const AppConstants = require("./app-constants");
|
|||
|
||||
const bodyParser = require("body-parser");
|
||||
const express = require("express");
|
||||
const hbs = require("express-hbs");
|
||||
const sessions = require("client-sessions");
|
||||
|
||||
const EmailUtils = require("./email-utils");
|
||||
const OAuthRoute = require("./routes/oauth");
|
||||
const UserRoute = require("./routes/user");
|
||||
const BaseRoutes = require("./routes/home");
|
||||
const OAuthRoutes = require("./routes/oauth");
|
||||
const UserRoutes = require("./routes/user");
|
||||
|
||||
const app = express();
|
||||
app.use(bodyParser.json());
|
||||
app.use(express.static("public"));
|
||||
|
||||
app.engine("hbs", hbs.express4({
|
||||
layoutsDir: __dirname + "/views/layouts"
|
||||
}));
|
||||
app.set("view engine", "hbs");
|
||||
app.set("views", __dirname + "/views");
|
||||
|
||||
app.use(sessions({
|
||||
cookieName: "session",
|
||||
|
@ -22,12 +29,9 @@ app.use(sessions({
|
|||
activeDuration: 5 * 60 * 1000, // 5 minutes
|
||||
}));
|
||||
|
||||
app.get("/", (req, res) => {
|
||||
res.render("home");
|
||||
});
|
||||
|
||||
app.use("/oauth", OAuthRoute);
|
||||
app.use("/user", UserRoute);
|
||||
app.use("/", BaseRoutes);
|
||||
app.use("/oauth", OAuthRoutes);
|
||||
app.use("/user", UserRoutes);
|
||||
|
||||
EmailUtils.init().then(() => {
|
||||
const listener = app.listen(AppConstants.PORT, () => {
|
||||
|
|
|
@ -1,16 +1,4 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Firefox Breach Alerts</title>
|
||||
<link rel="stylesheet" href="/css/vendor/foundation.min.css">
|
||||
<script type="text/javascript" src="/js/vendor/jquery.js" defer></script>
|
||||
<script type="text/javascript" src="/js/vendor/foundation.min.js" defer></script>
|
||||
<script type="text/javascript" src="/js/test.js" defer></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{{!< default }}
|
||||
<div class="top-bar">
|
||||
<div class="top-bar-left">
|
||||
<h1><a href="/">Firefox Breach Alert</a></h1>
|
||||
|
@ -32,9 +20,9 @@
|
|||
<p>Simple reason and explanation as to what scanning will do and why the user should do it.</p>
|
||||
<form action="/scan" method="post">
|
||||
<div class="input-group">
|
||||
<input class="input-group-field" type="email" name="email">
|
||||
<input class="input-group-field email-to-hash" type="email" name="email">
|
||||
<div class="input-group-button">
|
||||
<input type="submit" class="button" value="Scan">
|
||||
<input id="submit-email" type="submit" class="button" value="Scan">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
@ -60,7 +48,3 @@
|
|||
<input type="submit" class="button" value="Subscribe with Email Account">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ title }}</title>
|
||||
<link rel="stylesheet" href="/css/vendor/foundation.min.css">
|
||||
<script type="text/javascript" src="/js/vendor/jquery.js" defer></script>
|
||||
<script type="text/javascript" src="/js/vendor/foundation.min.js" defer></script>
|
||||
<script type="text/javascript" src="/js/test.js" defer></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
{{{ body }}}
|
||||
|
||||
|
||||
<div class="reveal" id="subscribe-modal" data-reveal>
|
||||
<h3>Subscribe to Breach Alerts</h3>
|
||||
<p>Explanation of what the user will get if they subscribe to breach alerts.</p>
|
||||
<a id="subscribe-fxa-btn" class="button sign-in-btn">Subscribe with Firefox Accounts</a>
|
||||
<div class="grid-x">
|
||||
<div class="cell small-5"><hr></div>
|
||||
<div class="cell small-2">or</div>
|
||||
<div class="cell small-5"><hr></div>
|
||||
</div>
|
||||
<form action="/subscribe" method="post">
|
||||
<input type="email" name="email">
|
||||
<input type="submit" class="button" value="Subscribe with Email Account">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,44 @@
|
|||
{{!< default }}
|
||||
|
||||
<div class="top-bar">
|
||||
<div class="top-bar-left">
|
||||
<h1><a href="/">Firefox Breach Alerts</a></h1>
|
||||
</div>
|
||||
<div class="top-bar-right">
|
||||
<ul class="menu">
|
||||
<li><a href="/">About</a></li>
|
||||
<li><a href="#tips">Tips</a></li>
|
||||
<li><a class="button" data-open="subscribe-modal">Subscribe</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid-x grid-margin-x grid-padding-x grid-margin-y grid-padding-y">
|
||||
|
||||
<div class="cell small-8">
|
||||
<h2>Uh oh! Here are your results</h2>
|
||||
<h3>{{ email }} <a href="">Subscribe</a></h3>
|
||||
<div class="callout alert"><img src="http://via.placeholder.com/100x100">Really bad breach</div>
|
||||
<div class="callout warning"><img src="http://via.placeholder.com/100x100">Bad breach</div>
|
||||
<div class="callout secondary"><img src="http://via.placeholder.com/100x100">Regular breach</div>
|
||||
</div>
|
||||
|
||||
<div class="cell small-4">
|
||||
<p>Title that encourages user to try again</p>
|
||||
<form action="/scan" method="post">
|
||||
<div class="input-group">
|
||||
<input class="input-group-field email-to-hash" type="email" name="email" placeholder="Enter Email">
|
||||
<div class="input-group-button">
|
||||
<input id="submit-email" type="submit" class="button" value="Scan">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<hr>
|
||||
<p>Text explaining that you should tell your friends about this great feature and why.</p>
|
||||
<p>
|
||||
<a class="button" data-open="share-modal">Share</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
Загрузка…
Ссылка в новой задаче