902 lines
24 KiB
JavaScript
902 lines
24 KiB
JavaScript
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;
|