Skip to content

Instantly share code, notes, and snippets.

@madhums
Created August 20, 2012 04:54
Show Gist options
  • Save madhums/3401057 to your computer and use it in GitHub Desktop.
Save madhums/3401057 to your computer and use it in GitHub Desktop.
create pagination helper
res.locals.createPagination = function (pages, page) {
var url = require('url')
, qs = require('querystring')
, params = qs.parse(url.parse(req.url).query)
, str = ''
params.page = 0
var clas = page == 0 ? "active" : "no"
str += '<li class="'+clas+'"><a href="?'+qs.stringify(params)+'">First</a></li>'
for (var p = 1; p < pages; p++) {
params.page = p
clas = page == p ? "active" : "no"
str += '<li class="'+clas+'"><a href="?'+qs.stringify(params)+'">'+ p +'</a></li>'
}
params.page = --p
clas = page == params.page ? "active" : "no"
str += '<li class="'+clas+'"><a href="?'+qs.stringify(params)+'">Last</a></li>'
return str
}
exports.index = function (req, res) {
var perPage = 10
, page = req.param('page') > 0 ? req.param('page') : 0
Event
.find()
.select('name')
.limit(perPage)
.skip(perPage * page)
.sort({name: 'asc'})
.exec(function (err, events) {
Event.count().exec(function (err, count) {
res.render('events', {
events: events
, page: page
, pages: count / perPage
})
})
})
}
table.table
thead
tr
th #
th Name
tbody
each event, i in events
tr
td= 10 * page + (i + 1)
td
a(href="/admin/events/"+event.id)= event.name
if (pages > 1)
.pagination
ul
!= createPagination(pages, page)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment