Add commands management to routes
This commit is contained in:
parent
c0a683d98e
commit
9a674f8acb
7 changed files with 105 additions and 16 deletions
2
app.js
2
app.js
|
@ -14,6 +14,7 @@ let ordersRouter = require("./routes/orders");
|
||||||
let sandwichesRouter = require("./routes/sandwiches");
|
let sandwichesRouter = require("./routes/sandwiches");
|
||||||
let profileRouter = require("./routes/profile");
|
let profileRouter = require("./routes/profile");
|
||||||
let adminRouter = require("./routes/admin");
|
let adminRouter = require("./routes/admin");
|
||||||
|
let adminCommandsRouter = require("./routes/admin/commands");
|
||||||
|
|
||||||
let app = express();
|
let app = express();
|
||||||
let sess = {
|
let sess = {
|
||||||
|
@ -46,6 +47,7 @@ app.use("/orders", ordersRouter);
|
||||||
app.use("/sandwiches", sandwichesRouter);
|
app.use("/sandwiches", sandwichesRouter);
|
||||||
app.use("/profile", profileRouter);
|
app.use("/profile", profileRouter);
|
||||||
app.use("/admin", adminRouter);
|
app.use("/admin", adminRouter);
|
||||||
|
app.use("/admin/commands", adminCommandsRouter);
|
||||||
|
|
||||||
// catch 404 and forward to error handler
|
// catch 404 and forward to error handler
|
||||||
app.use((req, res) => {
|
app.use((req, res) => {
|
||||||
|
|
|
@ -190,6 +190,33 @@ p.before-link a::before {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#commandsManagement {
|
||||||
|
max-height: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#commandsManagement h2 {
|
||||||
|
margin: 0.2em 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#commandsManagement>div {
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#commandsManagement .command {
|
||||||
|
box-shadow: 0.5em 0.5em 0.5em rgba(0, 0, 255, .2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#commandsManagement .command .title, #commandsManagement .sandwich {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#commandsManagement input[value="x"] {
|
||||||
|
border: none;
|
||||||
|
background-color: unset;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
@media (hover: none) and (pointer: coarse) {
|
@media (hover: none) and (pointer: coarse) {
|
||||||
body {
|
body {
|
||||||
font-size: xx-large;
|
font-size: xx-large;
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
let express = require("express");
|
|
||||||
let router = express.Router();
|
|
||||||
let sessionCheck = require("../middlewares/sessionCheck");
|
|
||||||
let models = require("../models");
|
|
||||||
|
|
||||||
|
|
||||||
router.get("/", sessionCheck(3), async (req, res) => {
|
|
||||||
res.render("admin", {title: "SOD", user: req.session.user, sandwiches: await models.Sandwich.findAll(), users: await models.User.findAll()});
|
|
||||||
});
|
|
||||||
|
|
||||||
module.exports = router;
|
|
40
routes/admin/commands.js
Normal file
40
routes/admin/commands.js
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
let express = require("express");
|
||||||
|
let router = express.Router();
|
||||||
|
let sessionCheck = require("../../middlewares/sessionCheck");
|
||||||
|
let models = require("../../models");
|
||||||
|
|
||||||
|
|
||||||
|
router.get("/", sessionCheck(3), async (req, res) => {
|
||||||
|
res.render("admin/commands", {
|
||||||
|
title: "SOD",
|
||||||
|
user: req.session.user,
|
||||||
|
commands: await models.Command.findAll({include: models.Sandwich, order: ["date"]})
|
||||||
|
});
|
||||||
|
}).post("/command/delete", sessionCheck(3), async (req, res) => {
|
||||||
|
if (!req.body.id)
|
||||||
|
res.render("error", {message: "Fail to remove command !", error: {status: "Missing args"}});
|
||||||
|
try {
|
||||||
|
await (await models.Command.findByPk(req.body.id)).destroy();
|
||||||
|
res.redirect("/admin/commands");
|
||||||
|
} catch (e) {
|
||||||
|
res.render("error", {message: "Fail to remove command !", error: {}});
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}).post("/sandwich/delete", sessionCheck(3), async (req, res) => {
|
||||||
|
if (!req.body.id)
|
||||||
|
res.render("error", {message: "Fail to remove sandwich !", error: {status: "Missing args"}});
|
||||||
|
try {
|
||||||
|
let sandwich = await models.SandwichCommand.findByPk(req.body.id);
|
||||||
|
let command = await models.Command.findByPk(sandwich.CommandId, {include: models.Sandwich});
|
||||||
|
await sandwich.destroy();
|
||||||
|
await command.reload();
|
||||||
|
if (!command.Sandwiches.length)
|
||||||
|
await command.destroy();
|
||||||
|
res.redirect("/admin/commands");
|
||||||
|
} catch (e) {
|
||||||
|
res.render("error", {message: "Fail to remove sandwich !", error: {}});
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = router;
|
11
routes/admin/index.js
Normal file
11
routes/admin/index.js
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
let express = require("express");
|
||||||
|
let router = express.Router();
|
||||||
|
let sessionCheck = require("../../middlewares/sessionCheck");
|
||||||
|
let models = require("../../models");
|
||||||
|
|
||||||
|
|
||||||
|
router.get("/", sessionCheck(3), async (req, res) => {
|
||||||
|
res.render("admin/index", {title: "SOD", user: req.session.user, sandwiches: await models.Sandwich.findAll(), users: await models.User.findAll()});
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = router;
|
20
views/admin/commands.pug
Normal file
20
views/admin/commands.pug
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
extends ../layout
|
||||||
|
|
||||||
|
block content
|
||||||
|
div.card#commandsManagement
|
||||||
|
h1 Commands management
|
||||||
|
div
|
||||||
|
each command in commands
|
||||||
|
div.command
|
||||||
|
div.title
|
||||||
|
h2=command.id
|
||||||
|
form(action="/admin/commands/command/delete" method="POST")
|
||||||
|
input.hide(type="number" name="id" value=command.id)
|
||||||
|
input(type="submit" value="x")
|
||||||
|
h3 #{command.firstName} #{command.lastName}
|
||||||
|
each sandwich in command.Sandwiches
|
||||||
|
div.sandwich
|
||||||
|
p #{sandwich.name} - #{sandwich.SandwichCommand.date}
|
||||||
|
form(action="/admin/commands/sandwich/delete" method="POST")
|
||||||
|
input.hide(type="number" name="id" value=sandwich.SandwichCommand.id)
|
||||||
|
input(type="submit" value="x")
|
|
@ -1,15 +1,15 @@
|
||||||
extends layout
|
extends ../layout
|
||||||
|
|
||||||
block content
|
block content
|
||||||
div.card
|
div.card
|
||||||
h1 Administration
|
h1 Administration
|
||||||
div
|
div
|
||||||
h2 Order management
|
h2 Commands management
|
||||||
div.buttons
|
div.buttons
|
||||||
a(href="/admin/orders/date")
|
a(href="/admin/commands/date")
|
||||||
button Orders date
|
button Orders date
|
||||||
a(href="/admin/order")
|
a(href="/admin/commands")
|
||||||
button Manage orders
|
button Manage commands
|
||||||
|
|
||||||
div
|
div
|
||||||
h2 Sandwich management
|
h2 Sandwich management
|
Reference in a new issue