From 294625f25159a31ef891637d4fbf6aa55e515c3d Mon Sep 17 00:00:00 2001 From: Gibheer Date: Tue, 29 Oct 2013 20:39:47 +0100 Subject: [PATCH] add pagination to the page --- controller/post.rb | 11 +++++++++-- templates/posts/index.html.slim | 10 ++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/controller/post.rb b/controller/post.rb index 90bd815..39c0100 100644 --- a/controller/post.rb +++ b/controller/post.rb @@ -6,8 +6,15 @@ module Routes end def self.define_posts(session) - page = (session.request.params['page'] || 0).to_i - per_page = (session.request.params['per_page'] || 10).to_i + # compute pages + page = session.request.params['page'].to_i + session.options[:page] = page if page + per_page = session.request.params['per_page'].to_i + per_page = 10 if per_page == 0 + session.options[:per_page] = per_page if per_page + session.options[:pages] = DB[:posts].filter(:released => true).count / per_page + + # fetch the posts to show posts = DB[:posts]. filter(:released => true). select(:posts__id___post_id, :written, :title, :content, :username). diff --git a/templates/posts/index.html.slim b/templates/posts/index.html.slim index 5241c70..810299d 100644 --- a/templates/posts/index.html.slim +++ b/templates/posts/index.html.slim @@ -1,3 +1,8 @@ +- if 0 < fetch(:page) + a.page.up( + href="/post?page=#{fetch(:page) - 1}&per_page=#{fetch(:per_page)}" + ) show newer + - for post in fetch(:posts) article header @@ -8,3 +13,8 @@ .date= post[:written].strftime('%Y-%m-%d') .time= post[:written].strftime('%H-%M') section==Kramdown::Document.new(post[:content]).to_html + +- if fetch(:page) < fetch(:pages) + a.page.down( + href="/post?page=#{fetch(:page) + 1}&per_page=#{fetch(:per_page)}" + ) show older