diff options
| -rw-r--r-- | server/lib/views/staff.js | 39 | ||||
| -rw-r--r-- | views/staff/_projects.ejs | 2 | ||||
| -rw-r--r-- | views/staff/users/media.ejs | 16 | ||||
| -rw-r--r-- | views/staff/users/show.ejs | 20 |
4 files changed, 65 insertions, 12 deletions
diff --git a/server/lib/views/staff.js b/server/lib/views/staff.js index d27ba0f..e776b7f 100644 --- a/server/lib/views/staff.js +++ b/server/lib/views/staff.js @@ -27,7 +27,7 @@ var staff = module.exports = { middleware: { - ensureUsers: function(req, res, next){ + ensureUsers: function(req, res, next, criteria){ var limit = Math.max( Number(req.query.limit) || 50, 200 ) var offset = Number(req.query.offset) || 0 var sort @@ -43,7 +43,8 @@ var staff = module.exports = { sort = {'username': 1} break } - User.find({}) + criteria = criteria || {} + User.find(criteria) .select(staff.fields.user) .sort(sort) .skip(offset) @@ -59,7 +60,7 @@ var staff = module.exports = { staff.middleware.ensureUsers(dreq, res, next) }, - ensureProjects: function(req, res, next){ + ensureProjects: function(req, res, next, criteria){ var limit = Math.max( Number(req.query.limit) || 50, 200 ) var offset = Number(req.query.offset) || 0 var sort @@ -71,7 +72,8 @@ var staff = module.exports = { sort = {'slug': 1} break } - Project.find({}) + criteria = criteria || {} + Project.find(criteria) .select(staff.fields.project) .sort(sort) .skip(offset) @@ -82,7 +84,7 @@ var staff = module.exports = { }) }, - ensureMedia: function(req, res, next){ + ensureMedia: function(req, res, next, criteria){ var limit = Math.max( Number(req.query.limit) || 50, 200 ) var offset = Number(req.query.offset) || 0 var sort @@ -92,7 +94,8 @@ var staff = module.exports = { sort = {'created_at': -1} break } - Media.find({}) + criteria = criteria || {} + Media.find(criteria) // .select(staff.fields.media) .sort(sort) .skip(offset) @@ -228,6 +231,11 @@ var staff = module.exports = { }) }, + ensureProfileMedia: function(req, res, next){ + if (! res.locals.profile) { return next() } + staff.middleware.ensureMedia(req, res, next, { user_id: res.locals.profile._id }) + }, + ensureProject: function(req, res, next){ res.locals.project = req.project next() @@ -314,6 +322,15 @@ var staff = module.exports = { staff.users.show ); + app.get('/staff/users/:username/media', + middleware.ensureAuthenticated, + middleware.ensureIsStaff, + + staff.middleware.ensureProfile, + staff.middleware.ensureProfileMedia, + + staff.users.media + ); app.put('/staff/users/:username/bless', middleware.ensureAuthenticated, middleware.ensureIsStaff, @@ -393,6 +410,14 @@ var staff = module.exports = { res.render('staff/users/show_404') } }, + media: function(req, res){ + if (res.locals.profile) { + res.render('staff/users/media') + } + else { + res.render('staff/users/show_404') + } + }, bless: function(req, res){ res.locals.profile.isStaff = req.body.state == "true" res.locals.profile.save(function(err, user){ @@ -412,7 +437,7 @@ var staff = module.exports = { res.render('staff/projects/show', { projectJSON: util.escape( JSON.stringify( res.locals.project ) ), projectUserJSON: util.escape( JSON.stringify( res.locals.projectUser ) ), - collaboratorsJSON: util.escape( JSON.stringify( res.locals.collaborators ) ) + collaboratorsJSON: util.escape( JSON.stringify( res.locals.collaborators ) ), }) } else { diff --git a/views/staff/_projects.ejs b/views/staff/_projects.ejs index 83041ae..9e37a6c 100644 --- a/views/staff/_projects.ejs +++ b/views/staff/_projects.ejs @@ -8,9 +8,11 @@ <a href="/project/[[- project.slug ]]">[view]</a> <a href="/project/[[- project.slug ]]/edit">[edit]</a> </td> + [[ if (project.user) { ]] <td> <a href="/staff/users/[[- project.user.username ]]">[[- project.user.username ]]</a> </td> + [[ } ]] <td> [[- project.date ]] </td> diff --git a/views/staff/users/media.ejs b/views/staff/users/media.ejs new file mode 100644 index 0000000..6ea2668 --- /dev/null +++ b/views/staff/users/media.ejs @@ -0,0 +1,16 @@ +[[ include ../_header ]] + + <h1>Users</h1> + + <nav> + <a href="/staff">home</a> + <a href="/staff/users">users</a> + <a href="/staff/projects">projects</a> + <a href="/staff/media">media</a> + </nav> + + <hr> + +[[ include ../_media ]] + +[[ include ../_footer ]] diff --git a/views/staff/users/show.ejs b/views/staff/users/show.ejs index afcd761..127ca8c 100644 --- a/views/staff/users/show.ejs +++ b/views/staff/users/show.ejs @@ -23,11 +23,14 @@ </td> <td class="editLinks"> <a href="/profile/[[- profile.username ]]">[view profile]</a> + <a href="/staff/users/[[- profile.username ]]/media">[view media]</a> </td> </tr> </table> - <br> - <table style="margin-left: 50px;"> + + <h2>Profile</h2> + + <table> <tr> <th> location @@ -57,7 +60,7 @@ media </th> <td> - [[- profile.mediaCount ]] + [[- profile.mediaCount ]] <a href="/staff/users/[[- profile.username ]]/media">[show]</a> </td> </tr> <tr> @@ -87,8 +90,15 @@ [[ } ]] </td> </tr> - </table> - <br><br> + </table> + + <h2>Projects</h2> + + [[- include ../_projects ]] + + <br> + <br> + <div class="json"> [[- profileJSON ]] </div> |
