From 39d85a692b607c9fe24b6a8e28dc572f43d10d9e Mon Sep 17 00:00:00 2001 From: "D. Berge" Date: Thu, 20 May 2021 20:38:39 +0200 Subject: [PATCH] Use default Nunjucks template if necessary. If the survey configuration does not itself have a template we will use the one in etc/defaults/templates/sequence.html.njk. It is not very likely that the template will be changed all that often and it avoids issues when people forget to copy it across to a new survey, etc. --- lib/www/server/api/middleware/event/get/html.js | 7 +++++-- lib/www/server/api/middleware/event/get/pdf.js | 6 ++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/www/server/api/middleware/event/get/html.js b/lib/www/server/api/middleware/event/get/html.js index 8e466af..bda4571 100644 --- a/lib/www/server/api/middleware/event/get/html.js +++ b/lib/www/server/api/middleware/event/get/html.js @@ -2,14 +2,17 @@ const { configuration } = require('../../../../lib/db'); const { transform, prepare } = require('../../../../lib/sse'); const render = require('../../../../lib/render'); +// FIXME Refactor when able +const defaultTemplatePath = require('path').resolve(__dirname, "../../../../../../../etc/default/templates/sequence.html.njk"); + const html = async function (req, res, next) { try { const query = req.query; query.sequence = req.params.sequence; const {events, sequences} = await prepare(req.params.project, query); const seis = transform(events, sequences, {projectId: req.params.project}); - const templates = await configuration.get(req.params.project, "sse/templates"); - const template = templates[0].template; + const template = (await configuration.get(req.params.project, "sse/templates/0/template")) || defaultTemplatePath; + console.log("TEMPLATE", template); const response = await render(seis, template); diff --git a/lib/www/server/api/middleware/event/get/pdf.js b/lib/www/server/api/middleware/event/get/pdf.js index a1f9e88..1bc387d 100644 --- a/lib/www/server/api/middleware/event/get/pdf.js +++ b/lib/www/server/api/middleware/event/get/pdf.js @@ -6,6 +6,9 @@ const { transform, prepare } = require('../../../../lib/sse'); const render = require('../../../../lib/render'); const { url2pdf } = require('../../../../lib/selenium'); +// FIXME Refactor when able +const defaultTemplatePath = require('path').resolve(__dirname, "../../../../../../../etc/default/templates/sequence.html.njk"); + function tmpname (tmpdir="/dev/shm") { return Path.join(tmpdir, crypto.randomBytes(16).toString('hex')+".tmp"); } @@ -17,8 +20,7 @@ const pdf = async function (req, res, next) { query.sequence = req.params.sequence; const {events, sequences} = await prepare(req.params.project, query); const seis = transform(events, sequences, {projectId: req.params.project}); - const templates = await configuration.get(req.params.project, "sse/templates"); - const template = templates[0].template; + const template = (await configuration.get(req.params.project, "sse/templates/0/template")) || defaultTemplatePath; const html = await render(seis, template);