madhums / node-express-mongoose-demo

A simple demo app using node and mongodb for beginners (with docker)
https://nodejs-express-demo.fly.dev
MIT License
5.12k stars 1.38k forks source link

CreatePagination missing #138

Closed cedricnicolas closed 9 years ago

cedricnicolas commented 9 years ago

In index.html views you have a tag {{ createPagination(pages,page) }}, but swig.defaults.locals is not initialized to handle that function.

Must add the following code to config / express.js

swig.setDefaults({ 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
  }
}});
cedricnicolas commented 9 years ago

Sorry, I'm wrong. In fact this code (slightly different) is in view-helpers module..