diff options
Diffstat (limited to 'server/lib/views/index.js')
| -rw-r--r-- | server/lib/views/index.js | 60 |
1 files changed, 45 insertions, 15 deletions
diff --git a/server/lib/views/index.js b/server/lib/views/index.js index 8c3e63d..5d82979 100644 --- a/server/lib/views/index.js +++ b/server/lib/views/index.js @@ -4,6 +4,7 @@ var User = require('../schemas/User'), Project = require('../schemas/Project'), Documentation = require('../schemas/Documentation'), Collaborator = require('../schemas/Collaborator'), + Plan = require('../schemas/Plan'), config = require('../../../config'), marked = require('marked'), util = require('../util'), @@ -83,33 +84,42 @@ var views = module.exports = { res.render('builder') }, + blueprint: function (req, res) { + res.render('blueprint') + }, + modal: function (req, res) { res.render('modal'); }, home: function (req, res) { - // while in development, blank homepage if not logged in -/* - if (! req.user) { - res.send("<html></html>") - return - } -*/ - views_middleware.fetchProjects({ featured: true }, null, null, function(err, projects){ - res.render('home', { - projects: projects || [] + views_middleware.ensurePlans(req, res, function(err){ + views_middleware.fetchProjects({ featured: true }, null, null, function(err, projects){ + res.render('home', { + projects: projects || [], + }) }) }) }, demoHome: function (req, res) { - views_middleware.fetchProjects({ featured: true }, null, null, function(err, projects){ - res.render('home', { - projects: projects || [] + views_middleware.ensurePlans(req, res, function(err){ + views_middleware.fetchProjects({ featured: true }, null, null, function(err, projects){ + res.render('home', { + projects: projects || [], + }) }) }) }, + partials: { + plans: function (req, res){ + views_middleware.ensurePlans(req, res, function(){ + res.render('about/_plans', { logged_in: res.locals.logged_in || false }) + }) + }, + }, + docs: function (req, res){ var name = req.params.name || "about" @@ -117,10 +127,17 @@ var views = module.exports = { res.render('about/' + name) return } - if (name == "about" || name == "index") { - res.render('about/' + name) + if (name == "brochure" || name == "plans") { + // TODO: fetch plans + views_middleware.ensurePlans(req, res, function(){ + res.render('about/' + name) + }) return } + if (name == "about" || name == "index" || name == "terms" || name == "privacy") { + res.render('about/' + name) + return + } if (name === "new") { res.render('docs', { @@ -225,6 +242,19 @@ var views = module.exports = { } var views_middleware = { + ensurePlans: function(req, res, next){ + Plan.find(function (err, plans) { + res.locals.plans = {} + plans.forEach(function(plan){ + res.locals.plans[ plan.slug ] = plan + "monthly_price yearly_price basic_layout_monthly_price basic_layout_yearly_price pro_layout_monthly_price pro_layout_yearly_price".split(" ").forEach(function(key){ + plan[key] = (plan[key]/100).toFixed(2)+"" + }) + }) + next() + }) + }, + fetchProjects: function (criteria, limit, offset, next) { limit = limit || 7 offset = offset || 0 |
