From a1d00b56b26f24c1b91f6a28b04f4fa84eabb0e5 Mon Sep 17 00:00:00 2001 From: Jacob Gable Date: Mon, 19 Aug 2013 21:18:39 -0500 Subject: [PATCH] Trim title and don't allow negative pages Added a .trim() to the slug generation and redirect to the first page if the page parameter is parsed as less than 1. --- core/server/controllers/frontend.js | 6 ++++++ core/server/models/post.js | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/server/controllers/frontend.js b/core/server/controllers/frontend.js index 7292cffb59..7fb95e47d4 100644 --- a/core/server/controllers/frontend.js +++ b/core/server/controllers/frontend.js @@ -14,6 +14,12 @@ frontendControllers = { 'homepage': function (req, res) { // Parse the page number var pageParam = req.params.page !== undefined ? parseInt(req.params.page, 10) : 1; + + // No negative pages + if (pageParam < 1) { + return res.redirect("/page/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) { diff --git a/core/server/models/post.js b/core/server/models/post.js index d31228a569..93bc354fc6 100644 --- a/core/server/models/post.js +++ b/core/server/models/post.js @@ -95,7 +95,7 @@ Post = GhostBookshelf.Model.extend({ }; // Remove URL reserved chars: `:/?#[]@!$&'()*+,;=` as well as `\%<>|^~£"` - slug = title.replace(/[:\/\?#\[\]@!$&'()*+,;=\\%<>\|\^~£"]/g, '') + slug = title.trim().replace(/[:\/\?#\[\]@!$&'()*+,;=\\%<>\|\^~£"]/g, '') // Replace dots and spaces with a dash .replace(/(\s|\.)/g, '-') // Convert 2 or more dashes into a single dash