Sha256: ab361ae287902fb43cf322720c882e91bda9593cec3462dd0c67d6f986d456c8
Contents?: true
Size: 1.44 KB
Versions: 3
Compression:
Stored size: 1.44 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]}\"", 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
avo-3.6.4 | lib/avo/concerns/pagination.rb |
avo-3.6.3 | lib/avo/concerns/pagination.rb |
avo-3.6.2 | lib/avo/concerns/pagination.rb |