diff --git a/Gemfile b/Gemfile index 0c5c45db..b7b6d548 100644 --- a/Gemfile +++ b/Gemfile @@ -34,6 +34,7 @@ gem 'base32' gem 'coveralls', require: false gem 'sanitize' gem 'linnaeus', git: 'https://github.com/neocities/linnaeus.git', branch: 'soften_redis_gemspec' +gem 'will_paginate' platform :mri, :rbx do gem 'magic' # sudo apt-get install file, For OSX: brew install libmagic diff --git a/app/browse.rb b/app/browse.rb index b017f2ff..3d4717ef 100644 --- a/app/browse.rb +++ b/app/browse.rb @@ -1,7 +1,7 @@ get '/browse/?' do - @current_page = params[:current_page] - @current_page = @current_page.to_i - @current_page = 1 if @current_page == 0 + + @page = params[:page].to_i + @page = 1 if @page == 0 params.delete 'tag' if params[:tag].nil? || params[:tag].strip.empty? @@ -11,12 +11,14 @@ get '/browse/?' do site_dataset = browse_sites_dataset end - site_dataset = site_dataset.paginate @current_page, Site::BROWSE_PAGINATION_LENGTH - @page_count = site_dataset.page_count || 1 + site_dataset = site_dataset.paginate @page, Site::BROWSE_PAGINATION_LENGTH + @pagination_dataset = site_dataset @sites = site_dataset.all + if params[:tag] @title = "Sites tagged #{params[:tag]}" end + erb :browse end diff --git a/app/index.rb b/app/index.rb index b5753f34..e905414c 100644 --- a/app/index.rb +++ b/app/index.rb @@ -6,23 +6,23 @@ get '/?' do @suggestions = current_site.suggestions - @current_page = params[:current_page].to_i - @current_page = 1 if @current_page == 0 + @page = params[:page].to_i + @page = 1 if @page == 0 if params[:activity] == 'mine' - events_dataset = current_site.latest_events(@current_page, 10) + events_dataset = current_site.latest_events(@page, 10) elsif params[:event_id] event = Event.select(:id).where(id: params[:event_id]).first not_found if event.nil? not_found if event.is_deleted events_dataset = Event.where(id: params[:event_id]).paginate(1, 1) elsif params[:activity] == 'global' - events_dataset = Event.global_dataset @current_page + events_dataset = Event.global_dataset @page else - events_dataset = current_site.news_feed(@current_page, 10) + events_dataset = current_site.news_feed(@page, 10) end - @page_count = events_dataset.page_count || 1 + @pagination_dataset = events_dataset @events = events_dataset.all current_site.events_dataset.update notification_seen: true diff --git a/app/site.rb b/app/site.rb index 3e10291a..eceaffe5 100644 --- a/app/site.rb +++ b/app/site.rb @@ -13,9 +13,9 @@ get '/site/:username/?' do |username| @title = site.title - @current_page = params[:current_page] - @current_page = @current_page.to_i - @current_page = 1 if @current_page == 0 + @page = params[:page] + @page = @page.to_i + @page = 1 if @page == 0 if params[:event_id] not_found unless params[:event_id].is_integer? @@ -23,10 +23,11 @@ get '/site/:username/?' do |username| not_found if event.nil? events_dataset = Event.where(id: params[:event_id]).paginate(1, 1) else - events_dataset = site.latest_events(@current_page, 10) + events_dataset = site.latest_events(@page, 10) end @page_count = events_dataset.page_count || 1 + @pagination_dataset = events_dataset @latest_events = events_dataset.all erb :'site', locals: {site: site, is_current_site: site == current_site} diff --git a/app/surf.rb b/app/surf.rb index 95d819db..a96b8995 100644 --- a/app/surf.rb +++ b/app/surf.rb @@ -1,8 +1,8 @@ get '/surf/?' do - @current_page = params[:current_page].to_i || 1 + @page = params[:page].to_i || 1 params.delete 'tag' if params[:tag].nil? || params[:tag].strip.empty? site_dataset = browse_sites_dataset - site_dataset = site_dataset.paginate @current_page, 1 + site_dataset = site_dataset.paginate @page, 1 @page_count = site_dataset.page_count || 1 @site = site_dataset.first redirect "/browse?#{Rack::Utils.build_query params}" if @site.nil? diff --git a/environment.rb b/environment.rb index efaef8f0..d3a35a9e 100644 --- a/environment.rb +++ b/environment.rb @@ -33,6 +33,8 @@ raise 'hash_ip_salt is required' unless $config['ip_hash_salt'] DB = Sequel.connect $config['database'], sslmode: 'disable', max_connections: $config['database_pool'] DB.extension :pagination +require 'will_paginate/sequel' + # :nocov: =begin if defined?(Pry) diff --git a/views/_news.erb b/views/_news.erb index 2641c68d..7ca1b3c5 100644 --- a/views/_news.erb +++ b/views/_news.erb @@ -126,26 +126,7 @@ <% if params[:activity] != 'global' %>
- <% if @page_count > 1 %> - - <% end %> + <%== erb :_pagination, layout: false %>
<% end %> diff --git a/views/browse.erb b/views/browse.erb index 6dbe0187..b7f9c542 100644 --- a/views/browse.erb +++ b/views/browse.erb @@ -1,10 +1,10 @@ @@ -76,7 +76,7 @@