summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/lib/views/staff.js69
1 files changed, 66 insertions, 3 deletions
diff --git a/server/lib/views/staff.js b/server/lib/views/staff.js
index 4351ef0..39a8dca 100644
--- a/server/lib/views/staff.js
+++ b/server/lib/views/staff.js
@@ -124,7 +124,35 @@ var staff = module.exports = {
next()
})
},
-
+
+ ensureSubscriptions: function(req, res, next){
+ var paginationInfo = res.locals.pagination = {}
+ var criteria = req.criteria || {}
+ var limit = paginationInfo.limit = Math.min( Number(req.query.limit) || 50, 200 )
+ var offset = paginationInfo.offset = Number(req.query.offset) || 0
+ var sort
+ paginationInfo.sort = req.query.sort
+ paginationInfo.sortOptions = ["date", "name"]
+ switch (req.query.sort) {
+ case 'created':
+ sort = {'created_at': -1}
+ break
+ default:
+ case 'date':
+ sort = {'updated_at': -1}
+ break
+ }
+ Subscription.find(criteria)
+ .select(staff.fields.project)
+ .sort(sort)
+ .skip(offset)
+ .limit(limit)
+ .exec(function (err, subscriptions) {
+ res.locals.subscriptions = subscriptions.map(staff.helpers.subscription)
+ next()
+ })
+ },
+
ensurePlans: function(req, res, next){
Plan.find(function (err, plans) {
res.locals.plans = (plans || []).map(staff.helpers.plan)
@@ -150,6 +178,24 @@ var staff = module.exports = {
}
},
+ ensureSubscription: function (req, res, next) {
+ if (req.params.id) {
+ Subscription.findOne({ _id: req.params.id }, function(err, subscription){
+ if (err || ! subscription) {
+ console.error(err)
+ res.redirect("/staff/subscriptions/")
+ }
+ else {
+ req.subscription = subscription
+ next()
+ }
+ })
+ }
+ else {
+ res.redirect("/staff/subscriptions/")
+ }
+ },
+
ensureRecentProjects: function(req, res, next){
var dreq = { params: { sort: 'created_at', limit: 20, offset: 0 } }
staff.middleware.ensureProjects(dreq, res, next)
@@ -160,11 +206,23 @@ var staff = module.exports = {
staff.middleware.ensureObjectsUsers(res.locals.projects, next)
},
+ ensureSubscriptionsUsers: function(req, res, next){
+ if (! res.locals.subscriptions || ! res.locals.subscriptions.length) { return next() }
+ staff.middleware.ensureObjectsUsers(res.locals.subscriptions, next)
+ },
+
ensureMediaUsers: function(req, res, next){
if (! res.locals.media || ! res.locals.media.length) { return next() }
staff.middleware.ensureObjectsUsers(res.locals.media, next)
},
+ ensureSubscriptionUser: function(req, res, next){
+ if (! res.locals.subscription) { return next() }
+ staff.middleware.ensureObjectsUsers([ res.locals.subscription ], function(){
+ next()
+ })
+ },
+
ensureMediaUser: function(req, res, next){
if (! res.locals.media) { return next() }
staff.middleware.ensureObjectsUsers([ res.locals.media ], function(){
@@ -338,6 +396,13 @@ var staff = module.exports = {
plan.user = {}
return plan
},
+
+ subscription: function(subscription){
+ subscription = subscription.toObject()
+ subscription.date = moment( subscription.updated_at || subscription.created_at ).format("M/DD/YYYY hh:mm a")
+ subscription.user = {}
+ return subscription
+ },
},
route: function(app){
@@ -694,11 +759,9 @@ var staff = module.exports = {
subscriptions: {
index: function(req, res){
- res.locals.subscriptions = req.subscriptions
res.render('staff/plans/index')
},
show: function(req, res){
- res.locals.subscription = req.subscription
res.render('staff/plans/show')
},
},