diff --git a/app/controllers/inner_performance/events_controller.rb b/app/controllers/inner_performance/events_controller.rb index a6cc88c..fb84392 100644 --- a/app/controllers/inner_performance/events_controller.rb +++ b/app/controllers/inner_performance/events_controller.rb @@ -2,12 +2,24 @@ module InnerPerformance class EventsController < ApplicationController - include Pagy::Backend + RESULTS_PER_PAGE = 50 def index - @q = InnerPerformance::Event.all.ransack(params[:q]) + @current_page = params[:page].presence&.to_i + + if current_page.nil? || current_page < 1 + @current_page = 1 + end + + @q = InnerPerformance::Event + .all + .limit(RESULTS_PER_PAGE) + .offset(RESULTS_PER_PAGE * (@current_page - 1)) + .ransack(params[:q]) + @q.sorts = "created_at desc" if @q.sorts.empty? - @pagy, @events = pagy(@q.result) + + @events = @q.result end def show diff --git a/app/helpers/inner_performance/application_helper.rb b/app/helpers/inner_performance/application_helper.rb index 54d30ee..222b488 100644 --- a/app/helpers/inner_performance/application_helper.rb +++ b/app/helpers/inner_performance/application_helper.rb @@ -2,8 +2,6 @@ module InnerPerformance module ApplicationHelper - include Pagy::Frontend - # Based on https://stackoverflow.com/a/45428183/552936 and # https://datadome.co/learning-center/how-to-reduce-server-response-time/ def row_class_from_duration(duration) diff --git a/app/views/inner_performance/events/index.html.erb b/app/views/inner_performance/events/index.html.erb index dec7c76..e9d4b07 100644 --- a/app/views/inner_performance/events/index.html.erb +++ b/app/views/inner_performance/events/index.html.erb @@ -36,4 +36,12 @@ -<%== pagy_nav(@pagy) if @pagy.pages > 1 %> +