Menü-Verwaltung in externe Datei verschoben und User-Input-Save gemacht
This commit is contained in:
104
main.js
104
main.js
@@ -3,17 +3,30 @@ var jade = require('jade');
|
||||
var bodyParser = require('body-parser');
|
||||
var session = require('express-session');
|
||||
var loginMod = require('./modules/login');
|
||||
var path = require('path');
|
||||
var menuMod = require('./modules/menu');
|
||||
//var path = require('path');
|
||||
var fs = require('fs');
|
||||
|
||||
var menuJSON;
|
||||
|
||||
var app = express();
|
||||
|
||||
|
||||
|
||||
|
||||
// **************************
|
||||
// APP VARS
|
||||
// **************************
|
||||
|
||||
app.set('view engine', 'jade');
|
||||
app.set('rundir', '.');
|
||||
app.set('views', app.get('rundir') + '/views');
|
||||
|
||||
|
||||
|
||||
|
||||
// **************************
|
||||
// MIDDLEWARE
|
||||
// **************************
|
||||
|
||||
app.use(session({
|
||||
secret: 'Jk0Z850cD2MXkcIRXDg1M4X6c1VKkJTb6VYQfbWUKw2XwqaBmqqaKu7K0Q8WlGZVqupF2fzXaavt1hNf',
|
||||
resave: true,
|
||||
@@ -26,16 +39,27 @@ app.use(bodyParser.urlencoded({
|
||||
|
||||
app.use('/bin', express.static(app.get('rundir') + '/public'));
|
||||
|
||||
fs.readFile(app.get('rundir') + '/data/menu.json', 'utf8', function (err, data) {
|
||||
if (err) throw err;
|
||||
menuJSON = JSON.parse(data);
|
||||
});
|
||||
|
||||
|
||||
|
||||
// **************************
|
||||
// INIT
|
||||
// **************************
|
||||
|
||||
menuMod.init(app.get('rundir') + '/data/menu.json');
|
||||
|
||||
|
||||
|
||||
|
||||
// **************************
|
||||
// ROUTES
|
||||
// **************************
|
||||
|
||||
app.get('/', function(req, res) {
|
||||
res.render('index', {
|
||||
title: 'Restaurant Reiskorn | Home',
|
||||
loginName: loginMod.getName(req),
|
||||
menuJSON: menuJSON
|
||||
menuJSON: menuMod.getJSON()
|
||||
});
|
||||
});
|
||||
|
||||
@@ -44,71 +68,41 @@ app.get('/speisekarte', function(req, res) {
|
||||
title: 'Restaurant Reiskorn | Speisekarte',
|
||||
loginName: loginMod.getName(req),
|
||||
isAdmin: loginMod.hasAccess(req, loginMod.AdminRight.MENU),
|
||||
menuJSON: menuJSON
|
||||
menuJSON: menuMod.getJSON()
|
||||
});
|
||||
});
|
||||
|
||||
app.post('/speisekarte', function(req, res) {
|
||||
var del = req.body.del;
|
||||
var item = req.body.nametag;
|
||||
var nametag = req.body.nametag;
|
||||
var name = req.body.name;
|
||||
var desc = req.body.desc;
|
||||
var price = req.body.price;
|
||||
if (item && /^[fd]-[0-9]+-new$/.test(item)) { // new
|
||||
var splitArr = item.split("-");
|
||||
if (splitArr[0] == "f") {
|
||||
splitArr[0] = "food";
|
||||
} else {
|
||||
splitArr[0] = "drinks";
|
||||
}
|
||||
price = parseInt(price);
|
||||
menuJSON[splitArr[0]][parseInt(splitArr[1])]["items"].push({
|
||||
name: name,
|
||||
desc: desc,
|
||||
price: price
|
||||
});
|
||||
} else if (item && /^[fd]-[0-9]+-[0-9]+$/.test(item)) { // edit
|
||||
var splitArr = item.split("-");
|
||||
if (splitArr[0] == "f") {
|
||||
splitArr[0] = "food";
|
||||
} else {
|
||||
splitArr[0] = "drinks";
|
||||
}
|
||||
price = parseInt(price);
|
||||
menuJSON[splitArr[0]][parseInt(splitArr[1])]["items"][parseInt(splitArr[2])] = {
|
||||
name: name,
|
||||
desc: desc,
|
||||
price: price
|
||||
};
|
||||
} else if (del && /^[fd]-[0-9]+-[0-9]+$/.test(del)) { // delete
|
||||
var splitArr = del.split("-");
|
||||
if (splitArr[0] == "f") {
|
||||
splitArr[0] = "food";
|
||||
} else {
|
||||
splitArr[0] = "drinks";
|
||||
}
|
||||
menuJSON[splitArr[0]][parseInt(splitArr[1])]["items"].splice(parseInt(splitArr[2]), 1);
|
||||
|
||||
if (loginMod.hasAccess(req, loginMod.AdminRight.MENU)) {
|
||||
var action = menuMod.determineAction(nametag);
|
||||
var error = 0;
|
||||
if (action == menuMod.MenuAction.CREATE)
|
||||
error = menuMod.addValue(name, desc, price, nametag);
|
||||
else if (action == menuMod.MenuAction.UPDATE)
|
||||
error = menuMod.updateValue(name, desc, price, nametag);
|
||||
else if (action == menuMod.MenuAction.DELETE)
|
||||
error = menuMod.deleteValue(nametag);
|
||||
console.log(error);
|
||||
}
|
||||
|
||||
res.render('menu', {
|
||||
title: 'Restaurant Reiskorn | Speisekarte',
|
||||
loginName: loginMod.getName(req),
|
||||
isAdmin: loginMod.hasAccess(req, loginMod.AdminRight.MENU),
|
||||
menuJSON: menuJSON
|
||||
menuJSON: menuMod.getJSON()
|
||||
});
|
||||
|
||||
fs.writeFile(app.get('rundir') + '/data/menu.json', JSON.stringify(menuJSON, null, 4), function(err) {
|
||||
if(err) {
|
||||
console.log(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
app.get('/kontakt', function(req, res) {
|
||||
res.render('contact', {
|
||||
title: 'Restaurant Reiskorn | Kontakt',
|
||||
loginName: loginMod.getName(req),
|
||||
menuJSON: menuJSON
|
||||
menuJSON: menuMod.getJSON()
|
||||
});
|
||||
});
|
||||
|
||||
@@ -117,7 +111,7 @@ app.get('/login', function(req, res) {
|
||||
title: 'Restaurant Reiskorn | Login',
|
||||
loginName: loginMod.getName(req),
|
||||
isAdmin: loginMod.hasAccess(req, loginMod.AdminRight.ADMIN),
|
||||
menuJSON: menuJSON
|
||||
menuJSON: menuMod.getJSON()
|
||||
});
|
||||
});
|
||||
|
||||
@@ -144,7 +138,7 @@ app.post('/login', function(req, res) {
|
||||
title: 'Restaurant Reiskorn | Login',
|
||||
loginName: loginMod.getName(req),
|
||||
isAdmin: loginMod.hasAccess(req, loginMod.AdminRight.ADMIN),
|
||||
menuJSON: menuJSON,
|
||||
menuJSON: menuMod.getJSON(),
|
||||
loginAction: action
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user