summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-10-09 17:26:24 -0400
committerJules Laplace <jules@okfoc.us>2014-10-09 17:26:24 -0400
commit4d4add72dec5d5f1db96430fe2de21c09451ebea (patch)
treee9746b90ad929a3827f5db8187c92a6fdb216d39 /server
parent376d300765870960e161c96324693a2c21e0194b (diff)
feature projects, show featured projects on homepage, fix profile sort
Diffstat (limited to 'server')
-rw-r--r--server/lib/schemas/Project.js1
-rw-r--r--server/lib/views/index.js42
-rw-r--r--server/lib/views/staff.js15
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: {