Real initial commit
Set real eMail-Address
This commit is contained in:
185
routes/away.js
Normal file
185
routes/away.js
Normal 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
635
routes/events.js
Normal 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
901
routes/index.js
Normal 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
183
routes/keep_in_mind.js
Normal 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
90
routes/pcalpub.js
Normal 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
261
routes/tevents.js
Normal 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
188
routes/todo.js
Normal 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
9
routes/users.js
Normal 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
217
routes/vehicle_use.js
Normal 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;
|
||||
Reference in New Issue
Block a user