diff --git a/app.rb b/app.rb index 89147304..9281f86a 100644 --- a/app.rb +++ b/app.rb @@ -132,12 +132,18 @@ get '/?' do @suggestions = current_site.suggestions end + @current_page = params[:current_page].to_i + @current_page = 1 if @current_page == 0 + if params[:activity] == 'mine' - @events = current_site.latest_events + events_dataset = current_site.latest_events(@current_page, 10) else - @events = current_site.news_feed + events_dataset = current_site.news_feed(@current_page, 10) end + @page_count = events_dataset.page_count || 1 + @events = events_dataset.all + halt erb :'home', locals: {site: current_site} end diff --git a/models/site.rb b/models/site.rb index 4323cedd..df53cb63 100644 --- a/models/site.rb +++ b/models/site.rb @@ -512,13 +512,13 @@ class Site < Sequel::Model 'Supporter Plan' end - def latest_events(limit=10, offset=0) - events_dataset.order(:created_at.desc).limit(limit, offset).all + def latest_events(current_page=1, limit=10) + events_dataset.order(:created_at.desc).paginate(current_page, limit) end - def news_feed(limit=10, offset=0) + def news_feed(current_page=1, limit=10) following_ids = self.followings_dataset.select(:site_id).all.collect {|f| f.site_id} - Event.filter(site_id: following_ids+[self.id]).order(:created_at.desc).limit(limit, offset).all + Event.filter(site_id: following_ids+[self.id]).order(:created_at.desc).paginate(current_page, limit) end def host diff --git a/views/_news.erb b/views/_news.erb index c55ea4d7..ed3e5cc8 100644 --- a/views/_news.erb +++ b/views/_news.erb @@ -1,3 +1,8 @@ + @@ -92,4 +97,27 @@ <% end %> +
+ <% if @page_count > 1 %> +
+ <% if @current_page != 1 %> +   + <% end %> + + <% 1.upto(@page_count) do |num| %> + <% if num == @current_page %> + <%= num %>  + <% else %> + <%= num %>  + <% end %> + + <% end %> + + <% if @current_page != @page_count %> + + <% end %> +
+ <% end %> +
+ <%== erb :'_news_templates', layout: false %> diff --git a/views/browse.erb b/views/browse.erb index 9d3b7da5..116defbc 100644 --- a/views/browse.erb +++ b/views/browse.erb @@ -95,7 +95,11 @@ <% end %> <% 1.upto(@page_count) do |num| %> - <%= num %>  + <% if num == @current_page %> + <%= num %>  + <% else %> + <%= num %>  + <% end %> <% end %> <% if @current_page != @page_count %>