/* jshint node: true */ var User = require('./schemas/User'), Project = require('./schemas/Project'), Documentation = require('./schemas/Documentation'), config = require('../../config'), marked = require('marked'), util = require('./util'), _ = require('lodash'); marked.setOptions({ renderer: new marked.Renderer(), gfm: true, sanitize: true, smartLists: true, smartypants: true, }); var views = {} views.modal = function (req, res) { res.render('modal', { }); }; views.home = function (req, res) { res.render('home', { }) } views.docs = function (req, res){ var name = req.params.name || "index" if (name === "new") { res.render('docs', { doc: { name: "new" }, content: null, isNew: true }) return } Documentation.findOne({ name: name }, function(err, doc) { if (err || ! doc) { return res.render('docs', { doc: { name: util.sanitize(name) }, content: null, isNew: true }) } res.render('docs', { doc: doc, content: marked(doc.body), isNew: false }) }) } views.profile = function (req, res) { var username = req.params[0] || req.user.username if (username) { User.findOne({ username: username }, function (err, user) { user ? next(user) : done(err, {}, []) }) } else { done() } function next(user){ Project.find({ user_id: user._id }, function(err, projects){ done(err, user, projects) }) } function done(err, user, projects){ if (! user) { return res.redirect('/') } res.render('profile', { profile: user, projects: projects || [], }) } } views.staff = { index: function(req, res){ res.render('staff') }, bless: function(req, res){ req.user.isStaff = true req.user.save(function(){ res.redirect("/staff") }) }, } module.exports = views