Sha256: 76dfa09fa62736e103b6ccb0705ea970a095df5f8c0fb4ec646a118b2f99a376
Contents?: true
Size: 1.58 KB
Versions: 12
Compression:
Stored size: 1.58 KB
Contents
module Avo module Concerns module Pagination extend ActiveSupport::Concern included do include Pagy::Backend class_attribute :pagination, default: {} unless defined? PAGINATION_METHOD PAGINATION_METHOD = { default: :pagy, countless: :pagy_countless, } end unless defined? PAGINATION_DEFAULTS PAGINATION_DEFAULTS = { type: :default, size: [1, 2, 2, 1], } end end def pagination_type @pagination_type ||= ActiveSupport::StringInquirer.new(pagination_hash[:type].to_s) end def apply_pagination(index_params:, query:) extra_pagy_params = {} # Reset open filters when a user navigates to a new page if params[:keep_filters_panel_open] == "1" extra_pagy_params[:keep_filters_panel_open] = "0" end send PAGINATION_METHOD[pagination_type.to_sym], query, items: index_params[:per_page], link_extra: "data-turbo-frame=\"#{params[:turbo_frame]}\"", # Add extra arguments in pagy 7. anchor_string: "data-turbo-frame=\"#{params[:turbo_frame]}\"", # Add extra arguments in pagy 8. params: extra_pagy_params, size: pagination_hash[:size] end private def pagination_hash @pagination ||= PAGINATION_DEFAULTS.merge(Avo.configuration.pagination).merge Avo::ExecutionContext.new( target: pagination, resource: self, view: @view ).handle end end end end
Version data entries
12 entries across 12 versions & 1 rubygems