TemplatesController.coffee 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. path = require('path')
  2. AuthenticationController = require('../../../js/Features/Authentication/AuthenticationController')
  3. TemplatesManager = require('./TemplatesManager')
  4. logger = require('logger-sharelatex')
  5. ENGINE_TO_COMPILER_MAP = {
  6. latex_dvipdf: "latex"
  7. pdflatex: "pdflatex"
  8. xelatex: "xelatex"
  9. lualatex: "lualatex"
  10. }
  11. module.exports = TemplatesController =
  12. getV1Template: (req, res)->
  13. templateVersionId = req.params.Template_version_id
  14. templateId = req.query.id
  15. if !/^[0-9]+$/.test(templateVersionId) || !/^[0-9]+$/.test(templateId)
  16. logger.err templateVersionId:templateVersionId, templateId: templateId, "invalid template id or version"
  17. return res.sendStatus 400
  18. data = {}
  19. data.templateVersionId = templateVersionId
  20. data.templateId = templateId
  21. data.name = req.query.templateName
  22. data.compiler = ENGINE_TO_COMPILER_MAP[req.query.latexEngine]
  23. data.mainFile = req.query.mainFile
  24. data.brandVariationId = req.query.brandVariationId
  25. res.render path.resolve(__dirname, "../../../views/project/editor/new_from_template"), data
  26. createProjectFromV1Template: (req, res, next)->
  27. user_id = AuthenticationController.getLoggedInUserId(req)
  28. TemplatesManager.createProjectFromV1Template req.body.brandVariationId, req.body.compiler, req.body.mainFile, req.body.templateId, req.body.templateName, req.body.templateVersionId, user_id, (err, project) ->
  29. return next err if err?
  30. delete req.session.templateData
  31. res.redirect "/project/#{project._id}"