diff options
Diffstat (limited to 'server/lib/views.js')
| -rw-r--r-- | server/lib/views.js | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/server/lib/views.js b/server/lib/views.js deleted file mode 100644 index b3c1d18..0000000 --- a/server/lib/views.js +++ /dev/null @@ -1,164 +0,0 @@ -/* jshint node: true */ - -var User = require('./schemas/User'), - Project = require('./schemas/Project'), - Documentation = require('./schemas/Documentation'), - Collaborator = require('./schemas/Collaborator'), - config = require('../../config'), - marked = require('marked'), - util = require('./util'), - _ = require('lodash'), - moment = require('moment'); - -marked.setOptions({ - renderer: new marked.Renderer(), - gfm: true, - sanitize: true, - smartLists: true, - smartypants: true, -}); - -var views = {} - -views.editor_new = function (req, res) { - if (! req.user) { - res.redirect('/') - } - else { - res.render('editor') - } -} - -views.editor = function (req, res) { - if (! req.project) { - res.redirect('/') - } - else if (req.isOwner || req.isCollaborator) { - res.render('editor') - } - else { - views.reader(req, res) - } -} - -views.reader = function (req, res) { - if (! req.project) { - res.redirect('/') - } - User.findOne({ _id: req.project.user_id }, function(err, user) { - if (err || ! user) { - console.error(err) - res.redirect('/') - return - } - res.render('reader', { - name: util.sanitize(req.project.name), - description: util.sanitize(req.project.description), - date: moment(req.project.updated_at).format("M/DD/YYYY"), - author: user.displayName, - authorlink: "/profile/" + user.username, - canEdit: req.isOwner || req.isCollaborator, - editlink: "/project/" + req.project.slug + "/edit", - noui: !! (req.query.noui === '1'), - }) - }) -} - -views.builder = function (req, res) { - res.render('builder') -} - -views.modal = function (req, res) { - res.render('modal'); -}; - -views.home = function (req, res) { - if (req.user) { - Project.find({ privacy: false }) - .sort('-created_at') - .limit(20) - .exec(function(err, projects){ - res.render('home', { projects: projects || [] }) - }) - } - else { - res.send("<html></html>") - } -} - -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 && req.user.username) - if (username) { - User.findOne({ username: username }, function (err, user) { - user ? next(user) : done(err, {}, []) - }) - } - else { - done() - } - - function next(user){ - var criteria = { user_id: user._id } - if ( ! (req.user && req.user._id && req.user._id == user._id) ) { - criteria.privacy = false - } - Project.find(criteria, function(err, projects){ - projects = projects.map(function(project){ - project = project.toObject() - project.date = moment(project.updated_at).format("M/DD/YYYY") - return project - }) - 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 |
