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;