diff --git a/server/controllers/project.controller.js b/server/controllers/project.controller.js index fd48b7558d..5c0722b093 100644 --- a/server/controllers/project.controller.js +++ b/server/controllers/project.controller.js @@ -85,7 +85,8 @@ export function updateProject(req, res) { export function getProject(req, res) { const { project_id: projectId, username } = req.params; - User.findByUsername(username, (err, user) => { // eslint-disable-line + // eslint-disable-next-line consistent-return + User.findByUsername(username, (err, user) => { if (!user) { return res .status(404) @@ -96,7 +97,8 @@ export function getProject(req, res) { $or: [{ _id: projectId }, { slug: projectId }] }) .populate('user', 'username') - .exec((err, project) => { // eslint-disable-line + // eslint-disable-next-line no-shadow + .exec((err, project) => { if (err) { console.log(err); return res @@ -126,7 +128,8 @@ export function getProjectAsset(req, res) { const projectId = req.params.project_id; Project.findOne({ $or: [{ _id: projectId }, { slug: projectId }] }) .populate('user', 'username') - .exec(async (err, project) => { // eslint-disable-line + // eslint-disable-next-line consistent-return + .exec(async (err, project) => { if (err) { return res .status(404) @@ -188,7 +191,7 @@ export function projectForUserExists(username, projectId, callback) { callback(false); return; } - callback(true); + callback(true, project.name); } ); }); diff --git a/server/routes/server.routes.js b/server/routes/server.routes.js index eda9464eba..c8039573ac 100644 --- a/server/routes/server.routes.js +++ b/server/routes/server.routes.js @@ -1,5 +1,5 @@ import { Router } from 'express'; -import { renderIndex } from '../views/index'; +import { renderIndex, renderProjectIndex } from '../views/index'; import { get404Sketch } from '../views/404Page'; import { userExists } from '../controllers/user.controller'; import { @@ -40,8 +40,13 @@ router.get('/:username/sketches/:project_id/add-to-collection', (req, res) => { }); router.get('/:username/sketches/:project_id', (req, res) => { - projectForUserExists(req.params.username, req.params.project_id, (exists) => - exists ? res.send(renderIndex()) : get404Sketch((html) => res.send(html)) + projectForUserExists( + req.params.username, + req.params.project_id, + (exists, projectName) => + exists + ? res.send(renderProjectIndex(projectName, req.params.username)) + : get404Sketch((html) => res.send(html)) ); }); diff --git a/server/views/index.js b/server/views/index.js index 8ec23d9c39..517fae2e91 100644 --- a/server/views/index.js +++ b/server/views/index.js @@ -1,5 +1,6 @@ export function renderIndex() { - const assetsManifest = process.env.webpackAssets && JSON.parse(process.env.webpackAssets); + const assetsManifest = + process.env.webpackAssets && JSON.parse(process.env.webpackAssets); return ` @@ -9,7 +10,11 @@ export function renderIndex() { p5.js Web Editor - ${process.env.NODE_ENV === 'production' ? `` : ''} + ${ + process.env.NODE_ENV === 'production' + ? `` + : '' + } @@ -23,9 +28,96 @@ export function renderIndex() { window.process.env.API_URL = '${process.env.API_URL}'; window.process.env.NODE_ENV = '${process.env.NODE_ENV}'; window.process.env.S3_BUCKET = '${process.env.S3_BUCKET}'; - window.process.env.S3_BUCKET_URL_BASE = ${process.env.S3_BUCKET_URL_BASE ? `'${process.env.S3_BUCKET_URL_BASE}'` : undefined}; + window.process.env.S3_BUCKET_URL_BASE = ${ + process.env.S3_BUCKET_URL_BASE + ? `'${process.env.S3_BUCKET_URL_BASE}'` + : undefined + }; window.process.env.AWS_REGION = '${process.env.AWS_REGION}'; - window.process.env.FORCE_TO_HTTPS = ${process.env.FORCE_TO_HTTPS === 'false' ? false : undefined}; + window.process.env.FORCE_TO_HTTPS = ${ + process.env.FORCE_TO_HTTPS === 'false' ? false : undefined + }; + window.process.env.CLIENT = true; + window.process.env.LOGIN_ENABLED = ${ + process.env.LOGIN_ENABLED === 'false' ? false : true + }; + window.process.env.EXAMPLES_ENABLED = ${ + process.env.EXAMPLES_ENABLED === 'false' ? false : true + }; + window.process.env.UI_ACCESS_TOKEN_ENABLED = ${ + process.env.UI_ACCESS_TOKEN_ENABLED === 'false' ? false : true + }; + window.process.env.UI_COLLECTIONS_ENABLED = ${ + process.env.UI_COLLECTIONS_ENABLED === 'false' ? false : true + }; + window.process.env.UPLOAD_LIMIT = ${ + process.env.UPLOAD_LIMIT ? `${process.env.UPLOAD_LIMIT}` : undefined + }; + window.process.env.MOBILE_ENABLED = ${ + process.env.MOBILE_ENABLED + ? `${process.env.MOBILE_ENABLED}` + : undefined + }; + window.process.env.TRANSLATIONS_ENABLED = ${ + process.env.TRANSLATIONS_ENABLED === 'true' ? true : false + }; + window.process.env.PREVIEW_URL = '${process.env.PREVIEW_URL}'; + window.process.env.GA_MEASUREMENT_ID='${process.env.GA_MEASUREMENT_ID}'; + + + +
+
+ + + + `; +} + +export function renderProjectIndex(projectName, username) { + const assetsManifest = + process.env.webpackAssets && JSON.parse(process.env.webpackAssets); + return ` + + + + + + + + + ${`${projectName} by ${username} -`} p5.js Web Editor + ${ + process.env.NODE_ENV === 'production' + ? `` + : '' + } + + + + + `;