diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-10-09 17:26:24 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-10-09 17:26:24 -0400 |
| commit | 4d4add72dec5d5f1db96430fe2de21c09451ebea (patch) | |
| tree | e9746b90ad929a3827f5db8187c92a6fdb216d39 /server | |
| parent | 376d300765870960e161c96324693a2c21e0194b (diff) | |
feature projects, show featured projects on homepage, fix profile sort
Diffstat (limited to 'server')
| -rw-r--r-- | server/lib/schemas/Project.js | 1 | ||||
| -rw-r--r-- | server/lib/views/index.js | 42 | ||||
| -rw-r--r-- | server/lib/views/staff.js | 15 |
3 files changed, 43 insertions, 15 deletions
diff --git a/server/lib/schemas/Project.js b/server/lib/schemas/Project.js index abf34fb..dd50da6 100644 --- a/server/lib/schemas/Project.js +++ b/server/lib/schemas/Project.js @@ -35,6 +35,7 @@ var ProjectSchema = new mongoose.Schema({ user_id: { type: mongoose.Schema.ObjectId, index: true }, created_at: { type: Date }, updated_at: { type: Date }, + featured: { type: Boolean, default: false }, }); module.exports = exports = mongoose.model('project', ProjectSchema); diff --git a/server/lib/views/index.js b/server/lib/views/index.js index 3f3880f..1b547ef 100644 --- a/server/lib/views/index.js +++ b/server/lib/views/index.js @@ -79,10 +79,20 @@ views.modal = function (req, res) { views.home = function (req, res) { if (req.user) { - Project.find({ privacy: false }) + Project.find({ featured: true }) .sort('-created_at') - .limit(20) + .limit(6) .exec(function(err, projects){ + projects = projects.map(function(project){ + project = project.toObject() + project.date = moment(project.updated_at).format("M/DD/YYYY") + if (project.colors.wall && project.colors.wall[0] == project.colors.wall[1] && project.colors.wall[1] == project.colors.wall[2] && project.colors.wall[2] > 238) { + project.color = [238,238,238] + } else { + project.color = project.colors.wall + } + return project + }) res.render('home', { projects: projects || [] }) }) } @@ -135,19 +145,21 @@ views.profile = function (req, res) { 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") - if (project.colors.wall && project.colors.wall[0] == project.colors.wall[1] && project.colors.wall[1] == project.colors.wall[2] && project.colors.wall[2] > 238) { - project.color = [238,238,238] - } else { - project.color = project.colors.wall - } - return project - }) - done(err, user, projects) - }) + Project.find(criteria) + .sort('-created_at') + .exec(function(err, projects){ + projects = projects.map(function(project){ + project = project.toObject() + project.date = moment(project.updated_at).format("M/DD/YYYY") + if (project.colors.wall && project.colors.wall[0] == project.colors.wall[1] && project.colors.wall[1] == project.colors.wall[2] && project.colors.wall[2] > 238) { + project.color = [238,238,238] + } else { + project.color = project.colors.wall + } + return project + }) + done(err, user, projects) + }) } function done(err, user, projects){ diff --git a/server/lib/views/staff.js b/server/lib/views/staff.js index 41877c8..da09d83 100644 --- a/server/lib/views/staff.js +++ b/server/lib/views/staff.js @@ -389,6 +389,15 @@ var staff = module.exports = { staff.projects.show ); + app.put('/staff/projects/:slug/feature', + middleware.ensureAuthenticated, + middleware.ensureIsStaff, + + middleware.ensureProject, + staff.middleware.ensureProject, + + staff.projects.feature + ); // // media @@ -505,6 +514,12 @@ var staff = module.exports = { res.render('staff/projects/show_404') } }, + feature: function(req, res){ + res.locals.project.featured = req.body.state == "true" + res.locals.project.save(function(err, project){ + res.json({ state: project.featured }) + }) + }, }, media: { |
