From bbd60a6f239269d8c44ecc2a8a29596fb56fc27b Mon Sep 17 00:00:00 2001 From: Jacob Gable Date: Sun, 18 Aug 2013 12:41:55 -0500 Subject: [PATCH] Redirect to last page of posts If requesting a page of posts that is above the total number of pages, redirect to the last page of posts. --- core/server/controllers/frontend.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/server/controllers/frontend.js b/core/server/controllers/frontend.js index b0c5c32fd4..7292cffb59 100644 --- a/core/server/controllers/frontend.js +++ b/core/server/controllers/frontend.js @@ -12,8 +12,15 @@ var Ghost = require('../../ghost'), frontendControllers = { 'homepage': function (req, res) { - var page = req.params.page !== undefined ? parseInt(req.params.page, 10) : 1; - api.posts.browse({page: page}).then(function (page) { + // Parse the page number + var pageParam = req.params.page !== undefined ? parseInt(req.params.page, 10) : 1; + api.posts.browse({page: pageParam}).then(function (page) { + // If page is greater than number of pages we have, redirect to last page + if (pageParam > page.pages) { + return res.redirect("/page/" + (page.pages) + "/"); + } + + // Render the page of posts ghost.doFilter('prePostsRender', page.posts, function (posts) { res.render('index', {posts: posts, pagination: {page: page.page, prev: page.prev, next: page.next, limit: page.limit, total: page.total, pages: page.pages}}); });