mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-24 17:51:51 +02:00
[web] Convert various pug pages to BS5 GitOrigin-RevId: f42de89eca778db19d5faa8a19fa8a210c7a749b
67 lines
2.1 KiB
JavaScript
67 lines
2.1 KiB
JavaScript
const path = require('path')
|
|
const SessionManager = require('../Authentication/SessionManager')
|
|
const TemplatesManager = require('./TemplatesManager')
|
|
const ProjectHelper = require('../Project/ProjectHelper')
|
|
const logger = require('@overleaf/logger')
|
|
const { expressify } = require('@overleaf/promise-utils')
|
|
const SplitTestHandler = require('../SplitTests/SplitTestHandler')
|
|
|
|
const TemplatesController = {
|
|
async getV1Template(req, res) {
|
|
// Read split test assignment so that it's available for Pug to read
|
|
await SplitTestHandler.promises.getAssignment(req, res, 'core-pug-bs5')
|
|
|
|
const templateVersionId = req.params.Template_version_id
|
|
const templateId = req.query.id
|
|
if (!/^[0-9]+$/.test(templateVersionId) || !/^[0-9]+$/.test(templateId)) {
|
|
logger.err(
|
|
{ templateVersionId, templateId },
|
|
'invalid template id or version'
|
|
)
|
|
return res.sendStatus(400)
|
|
}
|
|
const data = {
|
|
templateVersionId,
|
|
templateId,
|
|
name: req.query.templateName,
|
|
compiler: ProjectHelper.compilerFromV1Engine(req.query.latexEngine),
|
|
imageName: req.query.texImage,
|
|
mainFile: req.query.mainFile,
|
|
brandVariationId: req.query.brandVariationId,
|
|
}
|
|
res.render(
|
|
path.resolve(
|
|
__dirname,
|
|
'../../../views/project/editor/new_from_template'
|
|
),
|
|
data
|
|
)
|
|
},
|
|
|
|
async createProjectFromV1Template(req, res) {
|
|
const userId = SessionManager.getLoggedInUserId(req.session)
|
|
const project = await TemplatesManager.promises.createProjectFromV1Template(
|
|
req.body.brandVariationId,
|
|
req.body.compiler,
|
|
req.body.mainFile,
|
|
req.body.templateId,
|
|
req.body.templateName,
|
|
req.body.templateVersionId,
|
|
userId,
|
|
req.body.imageName
|
|
)
|
|
delete req.session.templateData
|
|
if (!project) {
|
|
throw new Error('failed to create project from template')
|
|
}
|
|
return res.redirect(`/project/${project._id}`)
|
|
},
|
|
}
|
|
|
|
module.exports = {
|
|
getV1Template: expressify(TemplatesController.getV1Template),
|
|
createProjectFromV1Template: expressify(
|
|
TemplatesController.createProjectFromV1Template
|
|
),
|
|
}
|