218 lines
6.0 KiB
JavaScript
218 lines
6.0 KiB
JavaScript
var express = require('express');
|
|
var router = express.Router();
|
|
|
|
var jsonsrv = require('../lib/jsonsrv');
|
|
var pcalutils = require('../lib/pcalutils');
|
|
|
|
function vehicle_use_from_session(req)
|
|
{
|
|
console.log(req.params);
|
|
console.log(req.session.cache.days);
|
|
console.log(req.session.cache.days[req.params.day]);
|
|
if(typeof req.session.cache.days[req.params.day] === 'undefined')
|
|
{
|
|
console.log("-> day undefined");
|
|
return null;
|
|
}
|
|
if(typeof req.session.cache.days[req.params.day].vehicle_use[req.params.vehicle_use] === 'undefined')
|
|
{
|
|
console.log("-> vehicle_use undefined");
|
|
return null;
|
|
}
|
|
return req.session.cache.days[req.params.day].vehicle_use[req.params.vehicle_use];
|
|
}
|
|
|
|
function vehicle_use_from_session_is_invalid(req, res, aw)
|
|
{
|
|
if(aw === null)
|
|
{
|
|
console.log('vehicle_use UNDEFINED!');
|
|
console.log(req.params);
|
|
res.redirect('/day');
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
router.get('/:day/:vehicle_use/cancel', function(req, res, next) {
|
|
delete req.session.cache.days[req.params.day].vehicle_use[req.params.vehicle_use];
|
|
|
|
pcalutils.redirect_after_editing(req, res);
|
|
});
|
|
|
|
router.post('/:day/:vehicle_use/commit', function(req, res, next) {
|
|
|
|
console.log(req.body);
|
|
|
|
var vehicle_use = vehicle_use_from_session(req);
|
|
if(vehicle_use_from_session_is_invalid(req, res, vehicle_use))
|
|
return;
|
|
|
|
vehicle_use.name = req.body.edit_name;
|
|
vehicle_use.description = req.body.area_description;
|
|
vehicle_use.vehicle_id = req.body.combo_vehicle;
|
|
|
|
console.log(vehicle_use);
|
|
|
|
var data = {
|
|
"request" : "commit_vehicle_use",
|
|
"sessionuuid" : req.session.sessionuuid,
|
|
"date" : req.params.day,
|
|
"vehicle_use" : req.params.vehicle_use,
|
|
"vehicle_use_data" : vehicle_use
|
|
};
|
|
|
|
jsonsrv.do_jsonsrv2(data,
|
|
function(result) {
|
|
if(result.result === "OK") {
|
|
delete req.session.cache.days[req.params.day].vehicle_use[req.params.vehicle_use];
|
|
|
|
pcalutils.redirect_after_editing(req, res);
|
|
}
|
|
else {
|
|
jsonsrv.handle_common_jsonsrverrors(req, res, result);
|
|
}
|
|
},
|
|
function(error) {
|
|
jsonsrv.handle_jsonconnectionerror(req, res, error);
|
|
});
|
|
});
|
|
|
|
function get_all_vehicles(req, res) {
|
|
var data = {
|
|
"request" : "get_all_vehicles_legacy",
|
|
"sessionuuid" : req.session.sessionuuid
|
|
};
|
|
|
|
jsonsrv.do_jsonsrv2(data,
|
|
function(result) {
|
|
if(result.result === "OK") {
|
|
req.session.cache.vehicles = result.vehicles;
|
|
console.log(req.session.cache.vehicles);
|
|
render_vehicle_use_edit(req, res);
|
|
}
|
|
else {
|
|
jsonsrv.handle_common_jsonsrverrors(req, res, result);
|
|
}
|
|
},
|
|
function(error) {
|
|
jsonsrv.handle_jsonconnectionerror(req, res, error);
|
|
});
|
|
}
|
|
|
|
generateUID = function() {
|
|
return ("0000" + (Math.random()*Math.pow(36,4) << 0).toString(36)).slice(-4)
|
|
}
|
|
|
|
function render_vehicle_use_edit(req, res) {
|
|
if(typeof req.session.cache.vehicles === 'undefined') {
|
|
get_all_vehicles(req, res);
|
|
return;
|
|
}
|
|
|
|
var the_vehicle_use = req.session.cache.days[req.params.day].vehicle_use[req.params.vehicle_use];
|
|
|
|
res.render("event_edit_container", { date: req.session.cache.days[req.params.day].date,
|
|
pentrytype: "vehicle_use",
|
|
pentrytype_pretty: "Fahrzeugbenutzung",
|
|
pentry: the_vehicle_use,
|
|
pentry_href : "/vehicle_use/" + req.params.day + "/" + req.params.vehicle_use,
|
|
pcalview : (typeof req.query.pcalview !== 'undefined' ? req.query.pcalview : 'day'),
|
|
edit_type: (the_vehicle_use.uuid.substr(0,4) === "new_" ? "erstellen" : "bearbeiten") });
|
|
|
|
console.log('render_vehicle_use_edit');
|
|
}
|
|
|
|
router.get('/:day/:vehicle_use/edit', function(req, res, next) {
|
|
if(typeof req.session.cache.days[req.params.day] !== 'undefined') {
|
|
if(typeof req.session.cache.days[req.params.day].vehicle_use[req.params.vehicle_use] !== 'undefined') {
|
|
render_vehicle_use_edit(req, res);
|
|
return;
|
|
}
|
|
}
|
|
else {
|
|
var day = {
|
|
events: {},
|
|
away : {},
|
|
keep_in_mind : {},
|
|
todo : {},
|
|
vehicle_use : {}
|
|
};
|
|
|
|
req.session.cache.days[req.params.day] = day;
|
|
|
|
console.log(req.session.cache.days);
|
|
|
|
console.log("created new day:");
|
|
console.log(req.session.cache.days[req.params.day]);
|
|
}
|
|
|
|
if(req.params.vehicle_use === "new") {
|
|
var data = {
|
|
"request" : "get_parishday",
|
|
"sessionuuid" : req.session.sessionuuid,
|
|
"date" : req.params.day,
|
|
};
|
|
|
|
jsonsrv.do_jsonsrv2(data,
|
|
function(result) {
|
|
if(result.result === "OK")
|
|
{
|
|
req.session.cache.days[req.params.day].date = result.day.date;
|
|
req.session.date = result.day.date;
|
|
|
|
var uuid = "new_" + generateUID();
|
|
var new_vehicle_use = pcalutils.create_empty_vehicle_use(uuid);
|
|
req.session.cache.days[req.params.day].vehicle_use[uuid] = new_vehicle_use;
|
|
|
|
var pcalview = "";
|
|
if(req.query.pcalview)
|
|
pcalview = '?pcalview='+req.query.pcalview;
|
|
|
|
res.redirect('/vehicle_use/'+req.params.day+'/'+uuid+'/edit'+pcalview);
|
|
}
|
|
else
|
|
jsonsrv.handle_common_jsonsrverrors(req, res, result);
|
|
},
|
|
function(error) {
|
|
jsonsrv.handle_jsonconnectionerror(req, res, error);
|
|
});
|
|
}
|
|
else
|
|
{
|
|
var data =
|
|
{
|
|
"request" : "vehicle_use_details",
|
|
"sessionuuid" : req.session.sessionuuid,
|
|
"date" : req.params.day,
|
|
"vehicle_use" : req.params.vehicle_use,
|
|
};
|
|
|
|
jsonsrv.do_jsonsrv2(data,
|
|
function(result) {
|
|
if(result.result === "OK")
|
|
{
|
|
req.session.date = result.date;
|
|
req.session.cache.days[req.params.day].date = result.date;
|
|
|
|
req.session.cache.days[req.params.day].vehicle_use[req.params.vehicle_use] = result.vehicle_use;
|
|
|
|
for(var idx in req.session.cache.days[req.params.day].vehicle_use[req.params.vehicle_use].involved) {
|
|
req.session.cache.days[req.params.day].vehicle_use[req.params.vehicle_use].involved[idx].uid = generateUID();
|
|
}
|
|
|
|
console.log(req.session.cache.days[req.params.day].vehicle_use[req.params.vehicle_use].involved);
|
|
|
|
render_vehicle_use_edit(req, res);
|
|
}
|
|
else
|
|
jsonsrv.handle_common_jsonsrverrors(req, res, result);
|
|
},
|
|
function(error) {
|
|
jsonsrv.handle_jsonconnectionerror(req, res, error);
|
|
});
|
|
}
|
|
});
|
|
|
|
module.exports = router;
|