221 lines
6.0 KiB
JavaScript
221 lines
6.0 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, apiTimingReplacementVehicle } = require('../js/vehicleApi');
|
|
|
|
|
|
router.route('/api/getVehicles').get(apiGetVehicles);
|
|
router.route('/api/refueling/').post(apiRefuelingById);
|
|
router.route('/api/fueling/:id/:selectedMonth/:showAll').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);
|
|
router.route('/api/timingReplacementVehicle/:id').post(apiTimingReplacementVehicle);
|
|
// 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,id:element._id,lat:element.lat,lon:element.lon})
|
|
|
|
});
|
|
res.send(locations);
|
|
|
|
// articles: workSign
|
|
|
|
}
|
|
});
|
|
|
|
});
|
|
module.exports = router; |