Real initial commit

Set real eMail-Address
This commit is contained in:
2019-12-02 13:38:49 +01:00
parent 56e8d0c48f
commit 4736ddeb82
170 changed files with 20857 additions and 0 deletions

185
routes/away.js Normal file
View File

@@ -0,0 +1,185 @@
var express = require('express');
var router = express.Router();
var jsonsrv = require('../lib/jsonsrv');
var pcalutils = require('../lib/pcalutils');
function away_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].away[req.params.away] === 'undefined')
{
console.log("-> away undefined");
return null;
}
return req.session.cache.days[req.params.day].away[req.params.away];
}
function away_from_session_is_invalid(req, res, aw)
{
if(aw === null)
{
console.log('AWAY UNDEFINED!');
console.log(req.params);
res.redirect('/day');
return true;
}
return false;
}
router.get('/:day/:away/cancel', function(req, res, next) {
delete req.session.cache.days[req.params.day].away[req.params.away];
pcalutils.redirect_after_editing(req, res);
});
router.post('/:day/:away/commit', function(req, res, next) {
console.log(req.body);
var away = away_from_session(req);
if(away_from_session_is_invalid(req, res, away))
return;
away.name = req.body.edit_name;
away.involveddb_id = req.body.involveddb_id;
away.reason = req.body.edit_reason;
console.log(away);
var data = {
"request" : "commit_away",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"away" : req.params.away,
"away_data" : away
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK") {
delete req.session.cache.days[req.params.day].away[req.params.away];
pcalutils.redirect_after_editing(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_away_edit(req, res) {
var the_away = req.session.cache.days[req.params.day].away[req.params.away];
res.render("event_edit_container", { date: req.session.cache.days[req.params.day].date,
pentrytype: "away",
pentrytype_pretty: "Abwesenheit",
pentry: the_away,
pentry_href : "/away/" + req.params.day + "/" + req.params.away,
pcalview : (typeof req.query.pcalview !== 'undefined' ? req.query.pcalview : 'day'),
edit_type: (the_away.uuid.substr(0,4) === "new_" ? "erstellen" : "bearbeiten") });
console.log('render_away_edit');
}
router.get('/:day/:away/edit', function(req, res, next) {
if(typeof req.session.cache.days[req.params.day] !== 'undefined') {
console.log(req.session.cache.days[req.params.day]);
if(typeof req.session.cache.days[req.params.day].away[req.params.away] !== 'undefined') {
render_away_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.away === "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_away = pcalutils.create_empty_away(uuid);
req.session.cache.days[req.params.day].away[uuid] = new_away;
var pcalview = "";
if(req.query.pcalview)
pcalview = '?pcalview='+req.query.pcalview;
res.redirect('/away/'+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" : "away_details",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"away" : req.params.away,
};
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].away[req.params.away] = result.away;
render_away_edit(req, res);
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
}
});
module.exports = router;

635
routes/events.js Normal file
View File

@@ -0,0 +1,635 @@
var express = require('express');
var router = express.Router();
var jsonsrv = require('../lib/jsonsrv');
var eventutils = require('../lib/eventutils');
router.get('/:day/:event', function(req, res, next) {
var data =
{
"request" : "event_details",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"event" : req.params.event,
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK")
res.render("event_details", { date: result.date.date, event: result.event });
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
function event_from_session(req)
{
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].events[req.params.event] === 'undefined')
{
console.log("-> event undefined");
return null;
}
return req.session.cache.days[req.params.day].events[req.params.event];
}
function event_from_session_is_invalid(req, res, ev)
{
if(ev === null)
{
console.log('EVENT UNDEFINED!');
console.log(req.params);
res.redirect('/day');
return true;
}
return false;
}
/*function delete_event_if_nothing_is_edited(day, event)
{
if(event.in_editing)
return;
var can_delete = true;
for(idx in event.thereafter)
{
if(event.thereafter[idx].in_editing === true)
{
can_delete = false;
break;
}
}
if(can_delete)
{
var found = false;
var idx;
for(idx in day.events)
{
console.log("DELETE_IDX", idx);
if(day.events[idx].uuid === event.uuid)
{
found = true;
break;
}
}
if(found)
{
console.log("DELETING EVENT: ", event.uuid);
delete day.events[event.uuid];
}
}
}*/
function end_event_editing(day, event) {
event.in_editing = false;
eventutils.delete_event_if_nothing_is_edited(day, event);
}
router.get('/:day/:event/cancel', function(req, res, next) {
end_event_editing( req.session.cache.days[req.params.day],
req.session.cache.days[req.params.day].events[req.params.event]);
console.log('NOW REDIRECT');
switch(req.query.pcalview) {
case 'timeline': {
if(req.params.event.substring(0, 4) === "new_")
res.redirect("/timeline/" + req.params.day);
else
res.redirect('/timeline/' + req.params.day + '/' + req.params.event);
break;
}
default: {
if(req.params.event.substring(0, 4) === "new_")
res.redirect("/day/" + req.params.day + "?back=false");
else
res.redirect('/day/' + req.params.day + '/' +req.params.event);
}
}
});
router.post('/:day/:event/commit', function(req, res, next) {
var event = event_from_session(req);
console.log("EVENT_form_session: ", event, "\n___");
if(event_from_session_is_invalid(req, res, event))
return;
//event.punit = { name : req.body.punit_name, dn : req.body.punit_dn };
event.name = req.body.edit_name;
event.name_secondary = req.body.edit_name_secondary;
event.visibility = req.body.combo_type;
event.start = req.body.edit_begin;
event.end = req.body.edit_end;
if(event.end !== "")
event.end_is_vague = (req.body.check_end_is_vague === "on" ? true : false);
event.description = req.body.area_description;
event.annotations = req.body.area_annotations;
console.log(event);
var data = {
"request" : "commit_event",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"event" : req.params.event,
"event_data" : event
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK") {
end_event_editing(req.session.cache.days[req.params.day], event);
switch(req.body.pcalview) {
case 'pfarreientimeline' : {
if(req.params.event.substr(0,4) === "new_")
res.redirect("/pfarreientimeline/" + req.params.day + "?scrollto=" + request.uuid);
else
res.redirect('/pfarreientimeline/' + req.params.day + '/' + req.params.event);
}
case 'pastoralteam' : {
if(req.params.event.substr(0,4) === "new_")
res.redirect("/pastoralteam/" + req.params.day + "?scrollto=" + request.uuid);
else
res.redirect('/pastoralteam/' + req.params.day + '/' + req.params.event);
}
case 'timeline': {
if(req.params.event.substr(0,4) === "new_")
res.redirect("/timeline/" + req.params.day + "?scrollto=" + request.uuid);
else
res.redirect('/timeline/' + req.params.day + '/' + req.params.event);
}
default : {
if(req.params.event.substr(0,4) === "new_")
res.redirect("/day/" + req.params.day + "?back=false");
else
res.redirect('/day/' + req.params.day + '/' + req.params.event);
}
}
}
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_event_edit(req, res) {
var event_href = "/event/" + req.params.day + "/" + req.params.event;
var the_event = req.session.cache.days[req.params.day].events[req.params.event];
res.render("event_edit_container", { date: req.session.cache.days[req.params.day].date,
pentrytype: "event",
pentrytype_pretty: "Ereignis",
pentry: the_event,
pentry_href : event_href,
pcalview : (typeof req.query.pcalview !== 'undefined' ? req.query.pcalview : 'day'),
edit_type: (the_event.uuid.substr(0,4) === "new_" ? "erstellen" : "bearbeiten") });
console.log('render_event_edit');
}
router.get('/:day/:event/edit', function(req, res, next) {
if(typeof req.session.cache.days[req.params.day] !== 'undefined') {
if(typeof req.session.cache.days[req.params.day].events[req.params.event] !== 'undefined') {
if(req.session.cache.days[req.params.day].events[req.params.event].in_editing === true) {
render_event_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.event === "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_event = eventutils.create_empty_event();
new_event.uuid = uuid;
new_event.in_editing = true;
new_event.thereafter = {};
req.session.cache.days[req.params.day].events[uuid] = new_event;
//render_event_edit(req, res );
var pcalview = "";
if(req.query.pcalview)
pcalview = '?pcalview='+req.query.pcalview;
res.redirect('/event/'+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" : "event_details",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"event" : req.params.event,
};
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;
// the event-object might exist, if there is a thereafter of it editet in the same session (other window)
// so we create it only, if it does not exist, so that thereafters in editing are not deleted!
if(! req.session.cache.days[req.params.day].events[req.params.event] ) {
console.log("creating new event-object for ", req.params.day, "/", req.params.event);
req.session.cache.days[req.params.day].events[req.params.event] = { thereafter: {} };
}
else
console.log("using existing (from thereafter!) event-object for ", req.params.day, "/", req.params.event);
eventutils.copy_event_without_thereafter(req.session.cache.days[req.params.day].events[req.params.event], result.event)
req.session.cache.days[req.params.day].events[req.params.event].in_editing = true;
console.log("NOW ADDING UIDs");
eventutils.add_uids_to_event(req.session.cache.days[req.params.day].events[req.params.event]);
/* NOT NECCESSARY: WE DO NOT SAVE THEREAFTERS WHICH WE GOT IN THIS event_details-call!
// they are loaded, when we edit them (see tevents.js!)
thereafter = req.session.cache.days[req.params.day].events[req.params.event].thereafter;
for(idx in thereafter)
{
add_uids_to_event(thereafter[idx]);
thereafter[idx].in_editing = false;
}*/
console.log("END ADDING UIDs");
render_event_edit(req, res);
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
}
});
/*router.get('/:day/:event/clone', function(req, res, next) {
var data =
{
"request" : "event_details",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"event" : req.params.event,
};
jsonsrv.do_jsonsrv(req, res, data,
function(req, res, result) {
if(result.result === "OK")
res.render("pentrymove", { pentrytype: "event",
date : result.date.date,
uuid : result.event.uuid,
clone_or_move: "clone",
clone_or_move_pretty_verb: "geklont",
clone_or_move_pretty_noun: "Klonen",
pcalview : (typeof req.query.pcalview !== 'undefined' ? req.query.pcalview : 'day'),
pentryname: "das Ereignis \"" + result.event.name +"\"",
});
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/:day/:event/move', function(req, res, next) {
var data =
{
"request" : "event_details",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"event" : req.params.event,
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK")
res.render("pentrymove", { pentrytype: "event",
date : result.date.date,
uuid : result.event.uuid,
clone_or_move: "move",
clone_or_move_pretty_verb: "verschoben",
clone_or_move_pretty_noun: "Verschieben",
pcalview : (typeof req.query.pcalview !== 'undefined' ? req.query.pcalview : 'day'),
pentryname: "das Ereignis \"" + result.event.name +"\"",
});
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});*/
router.post('/:day/:event/delete', function(req, res, next) {
console.log(req.body);
var data = {
"request" : "delete_event",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"event" : req.params.event,
};
jsonsrv.do_jsonsrv(req, res, data,
function(req, res, result) {
if(result.result === "OK")
res.redirect("/day/" + req.params.day + "?back=false");
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
module.exports = router;
/*
router.get('/:day/:event/select_pastoralunit', function(req, res, next) {
var data =
{
"request" : "get_all_pastoralunits",
"sessionuuid" : req.session.sessionuuid
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK")
{
var event = event_from_session(req);
res.render("pastoralunitselector", {
actual_punit_dn : event.punit.dn,
actual_punit_name: event.punit.name,
pentry_edit_base: '/event/' + req.params.day + '/' + req.params.event,
pastoralunits: result.pastoralunits
});
}
else
res.redirect("/login");
},
redirect_to_login);
});
router.post('/:day/:event/pastoralunit_selected', function(req, res, next) {
var event = event_from_session(req);
event.punit.dn = req.body.actual_punit_dn;
event.punit.name = req.body.actual_punit_name;
console.log(event);
res.redirect('/event/' + req.params.day + '/' + req.params.event + "/edit");
});
router.get('/:day/:event/add_predefined_location', function(req, res, next) {
var data =
{
"request" : "get_all_predefined_locations",
"sessionuuid": req.session.sessionuuid,
"omitt" : []
};
for(idx in req.session.event.locations)
{
var loc = req.session.event.locations[idx];
if(loc.id != "other")
data.omitt.push(loc.id);
}
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK")
{
res.render("locationselector", {
pentry_edit_base: '/event/' + req.params.day + '/' + req.params.event,
units: result.locations
});
}
else
res.redirect('/login');
},
function(error) {
res.redirect('/login');
});
});
router.post('/:day/:event/add_predefined_location', function(req, res, next) {
var loc =
{
uid : generateUID(),
name : req.body.actual_location_name,
sign : req.body.actual_location_sign,
id : req.body.actual_location_id
};
var event = event_from_session(req);
event.locations.push(loc);
console.log(event.locations);
res.redirect('/event/' + req.params.day + '/' + req.params.event + "/edit#locations");
});
router.get('/:day/:event/add_actor', function(req, res, next) {
var data =
{
"request" : "get_all_actors",
"sessionuuid" : req.session.sessionuuid,
"omitt" : []
};
var role = '';
if(typeof req.query.role !== 'undefined')
{
role = req.query.role;
console.log('ADD ACTOR FOR ROLE '+req.query.role);
}
var event = event_from_session(req);
var the_involved = get_involved_from_event(event, role);
for(a in the_involved)
{
var actor = the_involved[a];
if(actor.id !== "other" && actor.id !== "dn")
data.omitt.push(actor.id);
}
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK")
{
res.render("actorselector", {
pentry_edit_base: '/event/' + req.params.day + '/' + req.params.event,
units: result.actors,
for_role: role
});
}
else
res.redirect("/login");
},
redirect_to_login);
});
router.post('/:day/:event/add_actor', function(req, res, next) {
var actor =
{
uid : generateUID(),
name : req.body.actual_actor_name,
id : req.body.actual_actor_id
};
var event = event_from_session(req);
var the_involved = get_involved_from_event(event, req.body.for_role);
the_involved.push(actor);
console.log(the_involved);
res.redirect('/event/' + req.params.day + '/' + req.params.event + "/edit");
});
function do_add_edit_role(req, res, next, pentry_edit_base, submit_dest, role_uid)
{
var data =
{
"request" : "get_predefined_roles",
"sessionuuid" : req.session.sessionuuid,
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK")
{
var event = event_from_session(req);
var role_name = '';
if(submit_dest == 'edit_role')
{
role_name = get_role_from_uid(event, role_uid).name;
}
var already_defined_roles = [];
for( idx in event.involved_roles )
{
if(event.involved_roles[idx].name !== role_name)
already_defined_roles.push(event.involved_roles[idx].name);
}
res.render("roleeditor", {
pentry_edit_base: pentry_edit_base,
roles : result.roles,
submit_dest : submit_dest,
role_name : role_name,
role_uid : role_uid,
already_defined_roles : already_defined_roles
});
}
else
res.redirect("/login");
},
redirect_to_login);
}
router.get('/:day/:event/add_role', function(req, res, next) {
do_add_edit_role(req, res, next, '/event/' + req.params.day + '/' + req.params.event, 'add_role', '')
});
router.get('/:day/:event/edit_role/:role', function(req, res, next) {
do_add_edit_role(req, res, next, '/event/' + req.params.day + '/' + req.params.event, 'edit_role', req.params.role)
});
router.post('/event/:day/:event/add_role', function(req, res, next) {
var role =
{
uid : generateUID(),
name : req.body.role_name,
involved : []
};
var event = event_from_session(req);
event.involved_roles.push(role);
console.log(event);
res.redirect('/event/' + req.params.day + '/' + req.params.event + "/edit");
});
router.post('/:day/:event/edit_role', function(req, res, next) {
console.log(req.body);
var event = event_from_session(req);
get_role_from_uid(event, req.body.role_uid).name = req.body.role_name;
console.log(event);
res.redirect('/event/' + req.params.day + '/' + req.params.event + "/edit");
});
*/

901
routes/index.js Normal file
View File

@@ -0,0 +1,901 @@
var express = require('express');
/*var session = require('express-session');*/
var net = require('net');
var crypto = require('crypto');
var jade = require('jade');
var router = express.Router();
var jsonsrv = require('../lib/jsonsrv');
var pcalutils = require('../lib/pcalutils');
router.get('/:pcalview/picker', function(req, res, next) {
var d = new Date(Date.now());
var messages = [];
if(req.query.start)
{
var matches = /^(\d{4})-(\d{2})-(\d{2})$/.exec(req.query.start);
if(matches)
{
var start = Date.parse(req.query.start);
if( ! isNaN(start))
d = new Date(start);
else
messages.push({type: "danger", title: "Eingabefehler:", message: "Das von Ihnen angegeben Startdatum ('" + req.query.start + "') konnte nicht interpretiert werden! Es wird auf 'heute' ausgewichen." });
}
else
messages.push({type: "danger", title: "Eingabefehler:", message: "Das von Ihnen angegeben Startdatum ('" + req.query.start + "') entspricht nicht dem Format 'yyyy-mm-dd'! Es wird auf 'heute' ausgewichen." });
}
res.render("datepicker", { date: d.toISOString().slice(0, 10), pcalview: req.params.pcalview, messages: messages });
});
router.get("/:pcalview/:date/select_punits_for_view", function(req, res, next) {
var data =
{
"request" : "get_pastoralunits_for_viewselection",
"sessionuuid" : req.session.sessionuuid,
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK" )
{
res.render('select_punits_for_view', { u : req.params.pcalview, d : req.params.date, pastoralunits : result.pastoralunits, exclude_from_view : result.exclude_from_view } );
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
/*
do_day = function(req, res, next, date) {
var data = {
"request" : "get_parishday",
"format" : "day",
"date" : date,
"sessionuuid" : req.session.sessionuuid
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK" || result.result === "OK_invalid_date") {
var params = pcalutils.do_day_renderparams_from_result(result, req.session);
var can_go_back = true;
if(req.query.back) {
if(req.query.back == "false")
params.can_go_back = false;
else
params.can_go_back = true;
}
res.render('index', params);
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
}
*/
do_timeline = function(req, res, next, date, viewformat, event) {
var data = {
"request" : "get_parishday",
"format" : viewformat,
"date" : date,
"sessionuuid" : req.session.sessionuuid
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK" || result.result === "OK_invalid_date") {
var params = pcalutils.do_day_renderparams_from_result(result, req.session);
params.event = event;
params.viewformat = viewformat;
if(req.query.scrollto)
params.scrollto = req.query.scrollto;
else
params.scrollto = "";
var can_go_back = true;
if(req.query.back) {
if(req.query.back == "false")
params.can_go_back = false;
else
params.can_go_back = true;
}
res.render('day', params);
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
}
do_week = function(req, res, next, date) {
var data = {
"request" : "get_parishweek",
"date" : date,
"sessionuuid" : req.session.sessionuuid
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK" || result.result === "OK_invalid_date") {
var params = pcalutils.do_week_renderparams_from_result(result, req.session);
var can_go_back = true;
if(req.query.back) {
if(req.query.back == "false")
params.can_go_back = false;
else
params.can_go_back = true;
}
res.render('week', params);
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
}
/*router.get('/', function(req, res, next) {
do_day(req, res, next, (new Date(Date.now())).toISOString().slice(0,10)); });
router.get('/day/', function(req, res, next) {
do_day(req, res, next, (new Date(Date.now())).toISOString().slice(0,10)); });
router.get('/day/:d', function(req, res, next) {
do_day(req, res, next, req.params.d); });*/
router.get('/', function(req, res, next) {
do_timeline(req, res, next, (new Date(Date.now())).toISOString().slice(0,10), "day", ""); });
router.get('/day/', function(req, res, next) {
do_timeline(req, res, next, (new Date(Date.now())).toISOString().slice(0,10), "day", ""); });
router.get('/day/:day', function(req, res, next) {
do_timeline(req, res, next, req.params.day, "day", ""); });
router.get('/day/:day/:event', function(req, res, next) {
do_timeline(req, res, next, req.params.day, "day", req.params.event); });
router.get('/week/', function(req, res, next) {
do_week(req, res, next, (new Date(Date.now())).toISOString().slice(0,10)); });
router.get('/week/:d', function(req, res, next) {
do_week(req, res, next, req.params.d); });
router.get('/timeline/', function(req, res, next) {
do_timeline(req, res, next, (new Date(Date.now())).toISOString().slice(0,10), "timeline", ""); });
router.get('/timeline/:day', function(req, res, next) {
do_timeline(req, res, next, req.params.day, "timeline", ""); });
router.get('/timeline/:day/:event', function(req, res, next) {
do_timeline(req, res, next, req.params.day, "timeline", req.params.event); });
router.get('/pastoralteam/', function(req, res, next) {
do_timeline(req, res, next, (new Date(Date.now())).toISOString().slice(0,10), "pastoralteam", ""); });
router.get('/pastoralteam/:day', function(req, res, next) {
do_timeline(req, res, next, req.params.day, "pastoralteam", ""); });
router.get('/pastoralteam/:day/:event', function(req, res, next) {
do_timeline(req, res, next, req.params.day, "pastoralteam", req.params.event); });
router.get('/pfarreientimeline/', function(req, res, next) {
do_timeline(req, res, next, (new Date(Date.now())).toISOString().slice(0,10), "pfarreientimeline", ""); });
router.get('/pfarreientimeline/:day', function(req, res, next) {
do_timeline(req, res, next, req.params.day, "pfarreientimeline", ""); });
router.get('/pfarreientimeline/:day/:event', function(req, res, next) {
do_timeline(req, res, next, req.params.day, "pfarreientimeline", req.params.event); });
router.post("/adjust_date", function(req, res, next) {
console.log(req.body);
var data =
{
"request" : "adjust_date",
"sessionuuid" : req.session.sessionuuid,
"adjust_date" : req.body.adjust_date
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK")
res.redirect(req.session.pcalview);
else
res.redirect("/login");
},
function(error) {
res.redirect('/login')
});
});
/*function do_clone_move(req, res, next, clone_or_move) {
var data = {
"request" : req.params.pentrytype + "_details",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.date
};
data[req.params.pentrytype] = req.params.uuid;
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK") {
var renderdata = { pentrytype : req.params.pentrytype,
date : result.date,
uuid : req.params.uuid,
pcalview : (typeof req.query.pcalview !== 'undefined' ? req.query.pcalview : 'day'),
sessionuuid : req.session.sessionuuid
};
switch(clone_or_move) {
case "clone":
renderdata["clone_or_move"] = "clone";
renderdata["clone_or_move_pretty_verb"] = "geklont";
renderdata["clone_or_move_pretty_verb2"] = "klonen";
renderdata["clone_or_move_pretty_noun"] = "Klonen";
break;
case "move":
renderdata["clone_or_move"] = "move";
renderdata["clone_or_move_pretty_verb"] = "verschoben";
renderdata["clone_or_move_pretty_verb2"] = "verschieben";
renderdata["clone_or_move_pretty_noun"] = "Verschieben";
}
switch(req.params.pentrytype) {
case "event":
renderdata["pentryname"] = result.event.name;
renderdata["pentrytype_pretty"] = "Ereignis";
break;
case "away":
renderdata["pentryname"] = result.away.name;
renderdata["pentrytype_pretty"] = "Abwesenheit";
break;
case "keep_in_mind":
renderdata["pentryname"] = result.keep_in_mind.name;
renderdata["pentrytype_pretty"] = "Zu-Beachten";
break;
case "todo":
renderdata["pentryname"] = result.todo.name;
renderdata["pentrytype_pretty"] = "Zu-Tun";
break;
case "vehicle_use":
renderdata["pentryname"] = result.vehicle_use.name + " (" + result.vehicle_use.pretty.vehicle +")";
renderdata["pentrytype_pretty"] = "Fahrzeugbenutzung";
break;
}
res.render("pentrymove", renderdata);
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
}
router.get('/pentry/:date/:pentrytype/:uuid/clone', function(req, res, next) {
do_clone_move(req, res, next, "clone")});
router.get('/pentry/:date/:pentrytype/:uuid/move', function(req, res, next) {
do_clone_move(req, res, next, "move")});
*/
/*router.get('/email', function(req, res, next) {
var jsondata = {
"request" : "get_parishdbelems_flat_email",
"sessionuuid" : req.session.sessionuuid
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK") {
for(idx in result.parishdb) {
result.parishdb[idx].uid = generateUID();
if(result.parishdb[idx].type === "group") {
for(midx in result.parishdb[idx].members)
result.parishdb[idx].members[midx].uid = generateUID();
}
}
res.render('email', { parishdb : result.parishdb });
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});*/
router.get('/templates/:template.js', function(req, res, next) {
res.send(jade.compileFileClient('views/'+req.params.template+".jade", {name: req.params.template+'_template', compileDebug: true}));
});
router.get('/templates/:dir/:template.js', function(req, res, next) {
res.send(jade.compileFileClient('views/'+req.params.dir+"/"+req.params.template+".jade", {name: req.params.template+'_template', compileDebug: true}));
});
router.get('/birthdaycards/:taskuuid/download/:file', function(req, res, next) {
var jsondata = {
"sessionuuid" : req.session.sessionuuid,
"taskuuid" : req.params.taskuuid
};
switch(req.params.file) {
case "cards.pdf": jsondata.request = "get_cards"; break;
case "envelopes.pdf": jsondata.request = "get_envelopes"; break;
default:
var err = new Error('Not Found');
err.status = 404;
res.render('error', {
message: err.message,
error: err
});
return;
}
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK") {
res.setHeader("Content-Type", "application/pdf");
res.send(new Buffer(result.data, 'base64'));
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/birthdaycards/:taskuuid', function(req, res, next) {
var jsondata = {
"request" : "get_taskdata",
"sessionuuid" : req.session.sessionuuid,
"taskuuid" : req.params.taskuuid
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
console.log(result);
if(result.result === "OK") {
res.render('birthdaycards', { sessionuuid: req.session.sessionuuid, taskuuid: req.params.taskuuid, data : result });
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/birthdaycards', function(req, res, next) {
var jsondata = {
sessionuuid: req.session.sessionuuid,
request : "create_task",
tasktype: "birthdaycards"
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK")
res.redirect('/birthdaycards/'+result.taskuuid);
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
//
router.get('/labelprinter/:taskuuid/download/:file', function(req, res, next) {
var jsondata = {
"sessionuuid" : req.session.sessionuuid,
"taskuuid" : req.params.taskuuid
};
switch(req.params.file) {
case "labels.pdf": jsondata.request = "get_labels"; break;
case "postmen.html": jsondata.request = "get_postmen"; break;
default:
var err = new Error('Not Found');
err.status = 404;
res.render('error', {
message: err.message,
error: err
});
return;
}
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK") {
if(req.params.file == "labels.pdf")
res.setHeader("Content-Type", "application/pdf");
else
res.setHeader("Content-Type", "text/html");
res.send(new Buffer(result.data, 'base64'));
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/labelprinter/:taskuuid', function(req, res, next) {
var jsondata = {
"request" : "get_taskdata",
"sessionuuid" : req.session.sessionuuid,
"taskuuid" : req.params.taskuuid
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
console.log(result);
if(result.result === "OK") {
res.render('labelprinter', { sessionuuid: req.session.sessionuuid, taskuuid: req.params.taskuuid, data : result });
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/labelprinter', function(req, res, next) {
var jsondata = {
sessionuuid: req.session.sessionuuid,
request : "create_task",
tasktype: "labelprinter"
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK")
res.redirect('/labelprinter/'+result.taskuuid);
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
//
router.get('/patenurkunde/:taskuuid', function(req, res, next) {
var jsondata = {
"request" : "get_taskdata",
"sessionuuid" : req.session.sessionuuid,
"taskuuid" : req.params.taskuuid
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
console.log(result);
if(result.result === "OK") {
console.log(result);
res.render('patenurkunde', { sessionuuid: req.session.sessionuuid, taskuuid: req.params.taskuuid, data : result });
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/patenurkunde', function(req, res, next) {
var jsondata = {
sessionuuid: req.session.sessionuuid,
request : "create_task",
tasktype: "patenurkunde"
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK")
res.redirect('/patenurkunde/'+result.taskuuid);
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/patenurkunde/:taskuuid/download/:file', function(req, res, next) {
var jsondata = {
"sessionuuid" : req.session.sessionuuid,
"taskuuid" : req.params.taskuuid,
"request" : "get_file",
"filename" : req.params.file
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK") {
if(req.params.file.endsWith(".html"))
res.setHeader("Content-Type", "text/html");
else
res.setHeader("Content-Type", "application/pdf");
res.send(new Buffer(result.data, 'base64'));
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
//
router.get('/email/:taskuuid', function(req, res, next) {
var jsondata = {
"request" : "get_parishdbelems_flat_email",
"sessionuuid" : req.session.sessionuuid
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK") {
for(idx in result.parishdb) {
result.parishdb[idx].uid = generateUID();
if(result.parishdb[idx].type === "group") {
for(midx in result.parishdb[idx].members)
result.parishdb[idx].members[midx].uid = generateUID();
}
}
res.render('email', { sessionuuid: req.session.sessionuuid, taskuuid: req.params.taskuuid, parishdb : result.parishdb });
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/email', function(req, res, next) {
var jsondata = {
sessionuuid: req.session.sessionuuid,
request : "create_task",
tasktype: "email"
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK")
res.redirect('/email/'+result.taskuuid);
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/volunteerslist/:taskuuid', function(req, res, next) {
var jsondata = {
"request" : "init_task",
"sessionuuid" : req.session.sessionuuid,
"taskuuid" : req.params.taskuuid
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
console.log(result.parishes);
if(result.result === "OK") {
res.render('volunteerslist', { sessionuuid: req.session.sessionuuid, taskuuid: req.params.taskuuid, sortorder: result.sortorder, parishes : result.parishes });
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/volunteerslist', function(req, res, next) {
var jsondata = {
sessionuuid: req.session.sessionuuid,
request : "create_task",
tasktype: "volunteerslist"
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK")
res.redirect('/volunteerslist/'+result.taskuuid);
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/volunteerslist/:taskuuid/download/letters.pdf', function(req, res, next) {
var jsondata = {
"sessionuuid" : req.session.sessionuuid,
"taskuuid" : req.params.taskuuid,
"request" : "get_letters"
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK") {
res.setHeader("Content-Type", "application/pdf");
res.send(new Buffer(result.data, 'base64'));
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
//
router.get('/pcalimport/:taskuuid', function(req, res, next) {
var jsondata = {
"request" : "init_task",
"sessionuuid" : req.session.sessionuuid,
"taskuuid" : req.params.taskuuid
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
console.log(result.parishes);
if(result.result === "OK") {
res.render('pcalimport', { sessionuuid: req.session.sessionuuid, taskuuid: req.params.taskuuid });
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/pcalimport', function(req, res, next) {
var jsondata = {
sessionuuid: req.session.sessionuuid,
request : "create_task",
tasktype: "pcalimport"
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK")
res.redirect('/pcalimport/'+result.taskuuid);
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
//
/*router.get('/sockettest/:taskuuid', function(req, res, next) {
res.render('sockettest', { sessionuuid: req.session.sessionuuid, taskuuid: req.params.taskuuid});
});
router.get('/sockettest', function(req, res, next) {
var jsondata = {
sessionuuid: req.session.sessionuuid,
request : "create_task",
tasktype: "email"
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK")
res.redirect('/sockettest/'+result.taskuuid);
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});*/
/*
router.post("/pentry/:date/:pentrytype/:uuid/:clone_or_move", function(req, res, next) {
console.log(req.body);
var data = {
"request" : "pentry_clone_move",
"sessionuuid" : req.session.sessionuuid,
"type" : req.params.clone_or_move,
"date" : req.params.date,
"pentrytype": req.params.pentrytype,
"uuid" : req.params.uuid,
"new_date" : req.body.new_date
}
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK") {
req.session.messages = result.messages.concat(req.session.messages);
switch(req.body.pcalview) {
case 'timeline': {
res.redirect('/timeline/' + req.params.date);
break;
}
default:
res.redirect("/day/" + req.params.date + "?back=false");
}
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});*/
router.get("/parishdb", function(req, res, next) {
var jsondata = {
sessionuuid: req.session.sessionuuid,
request : "get_parishdbelems_tree"
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
console.log(result);
if(result.result === "OK")
res.render("parishdb", { "parishdb": result.parishdb, "sessionuuid" : req.session.sessionuuid });
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.post("/select_punits_for_view", function(req, res, next) {
console.log(req.body);
var data =
{
"request" : "exclude_pastoralunits_from_view",
"sessionuuid" : req.session.sessionuuid,
"exclude_from_view" : req.body.exclude_from_view.split(',')
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK")
{
res.redirect(req.body.u + "/" + req.body.d);
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/about', function(req, res) {
res.render('about');
});
router.get('/parishcalA4week/:basedate', function(req, res, next) {
var jsondata = {
"sessionuuid" : req.session.sessionuuid,
"request" : "get_parishcalA4week",
"date" : req.params.basedate
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK") {
res.setHeader("Content-Type", "application/pdf");
res.send(new Buffer(result.data, 'base64'));
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/login', function(req, res) {
res.render('login');
});
hash = function(pwd, salt)
{
var len = 32;
var iterations = 12000;
var h = crypto.pbkdf2Sync(pwd, salt, iterations, len, 'sha512');
var s = h.toString('hex')
return (new Buffer(s).toString('base64'));
}
router.post('/login', function(req, res){
var email = req.body.ID1;
var data =
{
"request": "auth",
"id1" : email,
"id2" : hash(req.body.ID2, email),
"id3" : hash(req.body.ID3, email)
};
jsonsrv.do_jsonsrv2(data,
function(result) {
console.log(result.authresult);
if(result.authresult === "OK")
{
console.log(result.username);
console.log(result.sessionuuid);
console.log(result.pfis_login_c);
var maxAge = 60*60*24*7*1000;
console.log("maxAge: ", maxAge);
res.cookie("pfis_login_c", result.pfis_login_c, {maxAge: maxAge, httpOnly: true });
req.session.regenerate(function(){
req.session.user = result.username;
req.session.sessionuuid = result.sessionuuid;
req.session.cache = { days : {} };
req.session.messages = [];
res.redirect("/");
});
}
else
res.redirect("http://www.erzbistum-bamberg.de");
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/logout', function(req, res){
// destroy the user's session to log them out
// will be re-created next request
req.session.destroy(function(){
res.clearCookie("pfis_login_c");
res.redirect('/login');
});
});
module.exports = router;

183
routes/keep_in_mind.js Normal file
View File

@@ -0,0 +1,183 @@
var express = require('express');
var router = express.Router();
var jsonsrv = require('../lib/jsonsrv');
var pcalutils = require('../lib/pcalutils');
function keep_in_mind_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].keep_in_mind[req.params.keep_in_mind] === 'undefined')
{
console.log("-> keep_in_mind undefined");
return null;
}
return req.session.cache.days[req.params.day].keep_in_mind[req.params.keep_in_mind];
}
function keep_in_mind_from_session_is_invalid(req, res, aw)
{
if(aw === null)
{
console.log('keep_in_mind UNDEFINED!');
console.log(req.params);
res.redirect('/day');
return true;
}
return false;
}
router.get('/:day/:keep_in_mind/cancel', function(req, res, next) {
delete req.session.cache.days[req.params.day].keep_in_mind[req.params.keep_in_mind];
pcalutils.redirect_after_editing(req, res);
});
router.post('/:day/:keep_in_mind/commit', function(req, res, next) {
console.log(req.body);
var keep_in_mind = keep_in_mind_from_session(req);
if(keep_in_mind_from_session_is_invalid(req, res, keep_in_mind))
return;
keep_in_mind.name = req.body.edit_name;
keep_in_mind.description = req.body.area_description;
console.log(keep_in_mind);
var data = {
"request" : "commit_keep_in_mind",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"keep_in_mind" : req.params.keep_in_mind,
"keep_in_mind_data" : keep_in_mind
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK") {
delete req.session.cache.days[req.params.day].keep_in_mind[req.params.keep_in_mind];
pcalutils.redirect_after_editing(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_keep_in_mind_edit(req, res) {
var the_keep_in_mind = req.session.cache.days[req.params.day].keep_in_mind[req.params.keep_in_mind];
res.render("event_edit_container", { date: req.session.cache.days[req.params.day].date,
pentrytype: "keep_in_mind",
pentrytype_pretty: "Zu-Beachten",
pentry: the_keep_in_mind,
pentry_href : "/keep_in_mind/" + req.params.day + "/" + req.params.keep_in_mind,
pcalview : (typeof req.query.pcalview !== 'undefined' ? req.query.pcalview : 'day'),
edit_type: (the_keep_in_mind.uuid.substr(0,4) === "new_" ? "erstellen" : "bearbeiten") });
console.log('render_keep_in_mind_edit');
}
router.get('/:day/:keep_in_mind/edit', function(req, res, next) {
if(typeof req.session.cache.days[req.params.day] !== 'undefined') {
if(typeof req.session.cache.days[req.params.day].keep_in_mind[req.params.keep_in_mind] !== 'undefined') {
render_keep_in_mind_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.keep_in_mind === "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_keep_in_mind = pcalutils.create_empty_keep_in_mind(uuid);
req.session.cache.days[req.params.day].keep_in_mind[uuid] = new_keep_in_mind;
var pcalview = "";
if(req.query.pcalview)
pcalview = '?pcalview='+req.query.pcalview;
res.redirect('/keep_in_mind/'+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" : "keep_in_mind_details",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"keep_in_mind" : req.params.keep_in_mind,
};
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].keep_in_mind[req.params.keep_in_mind] = result.keep_in_mind;
render_keep_in_mind_edit(req, res);
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
}
});
module.exports = router;

90
routes/pcalpub.js Normal file
View File

@@ -0,0 +1,90 @@
var express = require('express');
var net = require('net');
var crypto = require('crypto');
var router = express.Router();
var jsonsrv = require('../lib/jsonsrv');
var pcalutils = require('../lib/pcalutils');
router.get('/:taskuuid', function(req, res, next) {
var jsondata = {
"request" : "init_task",
"sessionuuid" : req.session.sessionuuid,
"taskuuid" : req.params.taskuuid
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
var date = (new Date(Date.now())).toISOString().slice(0,10);
if(result.result === "OK") {
res.render('pcalpub', { date: date, publicationformats: result.publicationformats, sessionuuid: req.session.sessionuuid, taskuuid: req.params.taskuuid });
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/', function(req, res, next) {
var jsondata = {
sessionuuid: req.session.sessionuuid,
request : "create_task",
tasktype: "pcalpub"
};
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK")
res.redirect('/pcalpub/'+result.taskuuid);
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
router.get('/:taskuuid/download/:file', function(req, res, next) {
var jsondata = {
"sessionuuid" : req.session.sessionuuid,
"taskuuid" : req.params.taskuuid,
"request" : "get_file",
"filename" : req.params.file
};
/*switch(req.params.file) {
case "cards.pdf": jsondata.request = "get_cards"; break;
case "envelopes.pdf": jsondata.request = "get_envelopes"; break;
default:
var err = new Error('Not Found');
err.status = 404;
res.render('error', {
message: err.message,
error: err
});
return;
}*/
jsonsrv.do_jsonsrv2(jsondata,
function(result) {
if(result.result === "OK") {
if(req.params.file.endsWith(".html"))
res.setHeader("Content-Type", "text/html");
else
res.setHeader("Content-Type", "application/pdf");
res.send(new Buffer(result.data, 'base64'));
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error){
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
module.exports = router;

261
routes/tevents.js Normal file
View File

@@ -0,0 +1,261 @@
var express = require('express');
var router = express.Router();
var jsonsrv = require('../lib/jsonsrv');
var eventutils = require('../lib/eventutils');
function event_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].events[req.params.event] === 'undefined') {
console.log("-> event undefined");
return null;
}
if(typeof req.session.cache.days[req.params.day].events[req.params.event].thereafter[req.params.tevent] === 'undefined') {
console.log('event_from_session: thereafter ', req.params.thereafter, ' of event ', req.params.event, ' not defined in day ', req.params.day, '!');
return null;
}
return req.session.cache.days[req.params.day].events[req.params.event].thereafter[req.params.tevent];
}
function event_from_session_is_invalid(req, res, ev)
{
if(ev === null)
{
console.log('EVENT UNDEFINED!');
console.log(req.params);
res.redirect('/day');
return true;
}
return false;
}
function end_tevent_editing(day, event, tevent) {
console.log(Object.keys(event.thereafter).length);
console.log("deleteing thereafter: ", tevent.uuid);
delete event.thereafter[tevent.uuid];
console.log(Object.keys(event.thereafter).length);
eventutils.delete_event_if_nothing_is_edited(day, event);
}
router.get('/:day/:event/:tevent/cancel', function(req, res, next) {
console.log('NOW REDIRECT');
end_tevent_editing( req.session.cache.days[req.params.day],
req.session.cache.days[req.params.day].events[req.params.event],
req.session.cache.days[req.params.day].events[req.params.event].thereafter[req.params.tevent]);
switch(req.query.pcalview) {
case 'timeline': {
res.redirect('/timeline/'+req.params.day+'/'+req.params.event);
break;
}
default: {
res.redirect('/day/'+req.params.day+'/'+req.params.event);
}
}
});
router.post('/:day/:event/:tevent/commit', function(req, res, next) {
console.log(req.body);
var event = event_from_session(req);
if(event_from_session_is_invalid(req, res, event))
return;
console.log(event);
event.name = req.body.edit_name;
event.name_secondary = req.body.edit_name_secondary;
event.visibility = req.body.combo_type;
event.end = req.body.edit_end;
if(event.end !== "")
event.end_is_vague = (req.body.check_end_is_vague === "on" ? true : false);
event.description = req.body.area_description;
event.annotations = req.body.area_annotations;
console.log(event);
var data = {
"request" : "commit_thereafter",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"event" : req.params.event,
"thereafter" : req.params.tevent,
"event_data" : event
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK") {
end_tevent_editing(req.session.cache.days[req.params.day], req.session.cache.days[req.params.day].events[req.params.event],event);
switch(req.body.pcalview) {
case 'timeline': {
res.redirect('/timeline/' + req.params.day + '/'+ req.params.event);
}
default : {
res.redirect('/day/' + req.params.day + '/' + req.params.event);
}
}
}
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_tevent_edit(req, res) {
var event_href = "/tevent/" + req.params.day + "/" + req.params.event + "/" + req.params.tevent;
var the_event = req.session.cache.days[req.params.day].events[req.params.event].thereafter[req.params.tevent];
res.render("event_edit_container", { date: req.session.cache.days[req.params.day].date,
pentrytype : "tevent",
pentrytype_pretty: the_event.parent_pretty,
parent_event : req.session.cache.days[req.params.day].events[req.params.event],
pentry: the_event,
pentry_href : event_href,
pcalview : (typeof req.query.pcalview !== 'undefined' ? req.query.pcalview : 'day'),
edit_type: (the_event.uuid.substr(0,4) === "new_" ? "erstellen" : "bearbeiten") });
console.log('render_tevent_edit');
}
router.get('/:day/:event/:tevent/edit', function(req, res, next) {
if( req.session.cache.days[req.params.day] ) {
if( req.session.cache.days[req.params.day].events[req.params.event] ) {
if( req.session.cache.days[req.params.day].events[req.params.event].thereafter[req.params.tevent] ) {
render_tevent_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("created new day:");
console.log(req.session.cache.days[req.params.day]);
}
if(! req.session.cache.days[req.params.day].events[req.params.event] )
{
// the parent-event is not loaded for editing, so create an empty object
req.session.cache.days[req.params.day].events[req.params.event] = { in_editing: false, uuid : req.params.event, thereafter: {}};
}
// for the thereafter-event to be edited or created, we always use 'event_details' als request!
var data = {
"request" : "event_details",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"event" : req.params.event,
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK") {
req.session.cache.days[req.params.day].date = result.date;
req.session.date = result.date;
if(req.params.tevent === "new") {
var uuid = "new_" + generateUID();
var new_event = eventutils.create_empty_thereafter();
new_event.uuid = uuid;
new_event.parent_start = result.event.start;
req.session.cache.days[req.params.day].events[req.params.event].thereafter[uuid] = new_event;
req.session.cache.days[req.params.day].events[req.params.event].thereafter[uuid].parent_start = result.event.start;
req.session.cache.days[req.params.day].events[req.params.event].thereafter[uuid].parent_pretty = "Folgeereignis von \"" + result.event.name + "\"";
if(result.event.pretty.time.length > 0)
req.session.cache.days[req.params.day].events[req.params.event].thereafter[uuid].parent_pretty += " (" + result.event.pretty.time + ")";
console.log(new_event);
var pcalview = "";
if(req.query.pcalview)
pcalview = '?pcalview='+req.query.pcalview;
res.redirect('/tevent/'+req.params.day+'/'+ req.params.event +'/'+uuid+'/edit' + pcalview);
}
else {
req.session.cache.days[req.params.day].events[req.params.event].thereafter[req.params.tevent] = {};
var found = false;
// now searching the thereafter
for(idx in result.event.thereafter) {
if(result.event.thereafter[idx].uuid === req.params.tevent) {
req.session.cache.days[req.params.day].events[req.params.event].thereafter[req.params.tevent] =
result.event.thereafter[idx];
found = true;
break;
}
}
req.session.cache.days[req.params.day].events[req.params.event].thereafter[req.params.tevent].parent_start = result.event.start;
req.session.cache.days[req.params.day].events[req.params.event].thereafter[req.params.tevent].parent_pretty = "Folgeereignis von \"" + result.event.name + "\"";
if(result.event.pretty.time.length > 0)
req.session.cache.days[req.params.day].events[req.params.event].thereafter[req.params.tevent].parent_pretty += " (" + result.event.pretty.time + ")";
console.log("NOW ADDING UIDs");
eventutils.add_uids_to_event(req.session.cache.days[req.params.day].events[req.params.event].thereafter[req.params.tevent]);
console.log("END ADDING UIDs");
render_tevent_edit(req, res);
}
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
});
/*router.post('/:day/:event/:tevent/delete', function(req, res, next) {
console.log(req.body);
var data = {
"request" : "delete_thereafter",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"event" : req.params.event,
"thereafter" : req.params.tevent
};
jsonsrv.do_jsonsrv(req, res, data,
function(req, res, result) {
if(result.result === "OK")
res.redirect( "/day");
else
res.redirect("/login");
},
redirect_to_login);
});*/
module.exports = router;

188
routes/todo.js Normal file
View File

@@ -0,0 +1,188 @@
var express = require('express');
var router = express.Router();
var jsonsrv = require('../lib/jsonsrv');
var pcalutils = require('../lib/pcalutils');
function todo_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].todo[req.params.todo] === 'undefined')
{
console.log("-> todo undefined");
return null;
}
return req.session.cache.days[req.params.day].todo[req.params.todo];
}
function todo_from_session_is_invalid(req, res, aw)
{
if(aw === null)
{
console.log('todo UNDEFINED!');
console.log(req.params);
res.redirect('/day');
return true;
}
return false;
}
router.get('/:day/:todo/cancel', function(req, res, next) {
delete req.session.cache.days[req.params.day].todo[req.params.todo];
pcalutils.redirect_after_editing(req, res);
});
router.post('/:day/:todo/commit', function(req, res, next) {
console.log(req.body);
var todo = todo_from_session(req);
if(todo_from_session_is_invalid(req, res, todo))
return;
todo.name = req.body.edit_name;
todo.description = req.body.area_description;
console.log(todo);
var data = {
"request" : "commit_todo",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"todo" : req.params.todo,
"todo_data" : todo
};
jsonsrv.do_jsonsrv2(data,
function(result) {
if(result.result === "OK") {
delete req.session.cache.days[req.params.day].todo[req.params.todo];
pcalutils.redirect_after_editing(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_todo_edit(req, res) {
var the_todo = req.session.cache.days[req.params.day].todo[req.params.todo];
res.render("event_edit_container", { date: req.session.cache.days[req.params.day].date,
pentrytype: "todo",
pentrytype_pretty: "Zu-Tun",
pentry: the_todo,
pentry_href : "/todo/" + req.params.day + "/" + req.params.todo,
pcalview : (typeof req.query.pcalview !== 'undefined' ? req.query.pcalview : 'day'),
edit_type: (the_todo.uuid.substr(0,4) === "new_" ? "erstellen" : "bearbeiten") });
console.log('render_todo_edit');
}
router.get('/:day/:todo/edit', function(req, res, next) {
if(typeof req.session.cache.days[req.params.day] !== 'undefined') {
if(typeof req.session.cache.days[req.params.day].todo[req.params.todo] !== 'undefined') {
render_todo_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.todo === "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_todo = pcalutils.create_empty_todo(uuid);
req.session.cache.days[req.params.day].todo[uuid] = new_todo;
var pcalview = "";
if(req.query.pcalview)
pcalview = '?pcalview='+req.query.pcalview;
res.redirect('/todo/'+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" : "todo_details",
"sessionuuid" : req.session.sessionuuid,
"date" : req.params.day,
"todo" : req.params.todo,
};
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].todo[req.params.todo] = result.todo;
for(var idx in req.session.cache.days[req.params.day].todo[req.params.todo].involved) {
req.session.cache.days[req.params.day].todo[req.params.todo].involved[idx].uid = generateUID();
}
console.log(req.session.cache.days[req.params.day].todo[req.params.todo].involved);
render_todo_edit(req, res);
}
else
jsonsrv.handle_common_jsonsrverrors(req, res, result);
},
function(error) {
jsonsrv.handle_jsonconnectionerror(req, res, error);
});
}
});
module.exports = router;

9
routes/users.js Normal file
View File

@@ -0,0 +1,9 @@
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;

217
routes/vehicle_use.js Normal file
View File

@@ -0,0 +1,217 @@
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;