klnodekb/routes/vehicles.js

220 lines
5.8 KiB
JavaScript

const express = require('express');
const router = express.Router();
const moment = require('moment');
var utils = require('../js/utils');
let Vehicle = require('../models/vehicle.js');
const fullCalendar=require('../node_modules/fullcalendar');
const { apiGetVehicles, apiRefuelingById, apiGetVehicle, apiUpdateVehicle, apiOilChangeVehicle, apiGetFueling, apiGetSettings, apiUpdateSettings } = require('../js/vehicleApi');
router.route('/api/getVehicles').get(apiGetVehicles);
router.route('/api/refueling/').post(apiRefuelingById);
router.route('/api/fueling/:id/:selectedMonth').get(apiGetFueling);
router.route('/api/getVehicle/:id').get(apiGetVehicle);
router.route('/api/updateVehicle/:id').post(apiUpdateVehicle);
router.route('/api/oilchangeVehicle/:id').post(apiOilChangeVehicle);
router.route('/api/settings/:keyName').get(apiGetSettings);
router.route('/api/settings').post(apiUpdateSettings);
// Edit Vehicle
router.get('/edit/:id', utils.ensureAuthenticated,function (req,res) {
Vehicle.findById(req.params.id, function(err,vehicle)
{
if (err)
{
console.log(err);
res.send('Hiba történt az oldal betöltése során. ');
}
else
{
res.render('vehicle_edit', {
title: 'Jármű módosítása',
vehicle: vehicle,
});
}
});
});
router.post('/edit/:id', utils.ensureAuthenticated,function (req,res) {
req.checkBody('Name','Jármű mgnevezése kötelező!').notEmpty();
req.checkBody('vehicleId','Jármű rendzsám nincs megadva!').notEmpty();
req.checkBody('persons','Személyek száma nem megfelelő (1-10)!').notEmpty().isInt({ min:1, max: 10});
// Get errors
let errors = req.validationErrors();
if(errors)
{
let errorMessages = errors.map(el => el.msg)
req.flash('danger', errorMessages);
res.redirect('/vehicles/edit/'+req.params.id);
} else {
let vehicle={}
Vehicle.findByIdAndUpdate(req.params.id,{name: req.body.Name,persons: req.body.persons, vehicle_id: req.body.vehicleId,visible:Boolean(req.body.mobilePortalAccessEnabled)},function(err,docs){
if (err){
console.log(err)
}
else{
console.log("Updated Vehicle : ", docs);
req.flash('success','Jármű sikeresen módosítva');
console.log('Jármű sikeresen módosítva');
res.redirect('/vehicles/view');
}
})
}
});
// New Vehicle
router.get('/new', utils.ensureAuthenticated,function (req,res) {
res.render('vehicle_new', {
title: 'Új jármű',
user:req.user
});
});
// Add Submit POST Route
router.post('/new', utils.ensureAuthenticated,function(req,res){
req.checkBody('Name','Jármű mgnevezése kötelező!').notEmpty();
req.checkBody('vehicleId','Jármű rendzsám nincs megadva!').notEmpty();
req.checkBody('persons','Személyek száma nem megfelelő (1-10)!').notEmpty().isInt({ min:1, max: 10});
// Get errors
let errors = req.validationErrors();
if(errors)
{
res.render('vehicle_new', {
title: 'Új jármű',
user:req.user,
errors:errors
})
} else {
let vehicle=new Vehicle();
vehicle.name=req.body.Name;
vehicle.vehicle_id = req.body.vehicleId;
vehicle.device_id='none';
vehicle.service=0;
vehicle.persons=req.body.persons;
vehicle.timeStamp=moment().format("YYYY.MM.DD HH:mm");
vehicle.visible=true;
Vehicle.findOne ({vehicle_id:vehicle.vehicle_id},function(err,veh){
if (err)
{
console.log("vehicle BD error!");
}
else
{
if (veh){
req.flash('warning','Már van jármű '+vehicle.vehicle_id+' rendszámmal!');
console.log('Már van jármű '+vehicle.vehicle_id+' rendszámmal!');
res.redirect('/vehicles/new');
}
else
{
vehicle.save(function(err){
if(err){
console.log(err);
return;
}else{
req.flash('success','Jármű sikeresen hozzáadva');
console.log('Jármű sikeresen hozzáadva');
res.redirect('/vehicles/view');
}
});
}
}
})
}
});
// List Vehicles
router.get('/view', utils.ensureAuthenticated, function(req, res) {
var admin=false;
Vehicle.find({} ,function(err, vehicles){
if (err)
{
console.log(err);
}
else {
res.render('vehicles', {
title: 'Járművek',
Vehicles: vehicles,
showAll: false,
// articles: workSign
});
}
});
});
// List Vehicles
router.get('/viewAll', utils.ensureAuthenticated, function(req, res) {
var admin=false;
Vehicle.find({} ,function(err, vehicles){
if (err)
{
console.log(err);
}
else {
res.render('vehicles', {
title: 'Összes jármű',
Vehicles: vehicles,
showAll: true
// articles: workSign
});
}
});
});
// List Details
router.get('/details/:id', utils.ensureAuthenticated, function(req, res) {
var admin=false;
Vehicle.findById(req.params.id ,function(err, vehicle){
if (err)
{
console.log(err);
}
else {
res.render('vehicle_details', {
title: vehicle.name+' '+vehicle.vehicle_id,
Vehicle: vehicle,
// articles: workSign
});
}
});
});
//ajax
// List Details
router.get('/getvehicle/:id', utils.ensureAuthenticated, function(req, res) {
Vehicle.findById(req.params.id ,function(err, vehicle){
if (err)
{
console.log(err);
}
else {
var locations=[];
vehicle.lastCity.forEach(element => {
locations.push({title:element.city,start:element.timestamp,allDay:false})
});
res.send(locations);
// articles: workSign
}
});
});
module.exports = router;