Smart_listing rails configuration

I am trying to customize the smart_listing gem in my application. Where and how can I set a default value for paginated page results. The smart_listing docs mention that he uses kiminari.

+5
source share
2 answers

If you do not already have the config/initializers/kaminari_config.rb , start the Kaminari configuration generator:

 bundle exec rails generate kaminari:config 

This will create config/initializers/kaminari_config.rb with default content:

 Kaminari.configure do |config| # config.default_per_page = 25 # config.max_per_page = nil # config.window = 4 # config.outer_window = 0 # config.left = 0 # config.right = 0 # config.page_method_name = :page # config.param_name = :page end 

Just uncomment and edit the configuration options you want to change.

Update:

SmartListing provides its own pagination configuration options in config/initializers/smart_listing.rb :

 SmartListing.configure do |config| config.global_options({ #:param_names => { # param names #:page => :page, #:per_page => :per_page, #:sort => :sort, #}, #:array => false, # controls whether smart list should be using arrays or AR collections #:max_count => nil, # limit number of rows #:unlimited_per_page => false, # allow infinite page size #:paginate => true, # allow pagination #:memorize_per_page => false, # save per page settings in the cookie #:page_sizes => DEFAULT_PAGE_SIZES, # set available page sizes array #:kaminari_options => {:theme => "smart_listing"}, # Kaminari paginate helper options }) config.constants :classes, { #:main => "smart-listing", #:editable => "editable", #:content => "content", #:loading => "loading", #:status => "smart-listing-status", #:item_actions => "actions", #:new_item_placeholder => "new-item-placeholder", #:new_item_action => "new-item-action", #:new_item_button => "btn", #:hidden => "hidden", #:autoselect => "autoselect", #:callback => "callback", #:pagination_per_page => "pagination-per-page text-center", #:pagination_count => "count", #:inline_editing => "info", #:no_records => "no-records", #:limit => "smart-listing-limit", #:limit_alert => "smart-listing-limit-alert", #:controls => "smart-listing-controls", #:controls_reset => "reset", #:filtering => "filter", #:filtering_search => "glyphicon-search", #:filtering_cancel => "glyphicon-remove", #:filtering_disabled => "disabled", #:sortable => "sortable", #:icon_new => "glyphicon glyphicon-plus", #:icon_edit => "glyphicon glyphicon-pencil", #:icon_trash => "glyphicon glyphicon-trash", #:icon_inactive => "glyphicon glyphicon-circle", #:icon_show => "glyphicon glyphicon-share-alt", #:icon_sort_none => "glyphicon glyphicon-resize-vertical", #:icon_sort_up => "glyphicon glyphicon-chevron-up", #:icon_sort_down => "glyphicon glyphicon-chevron-down", } config.constants :data_attributes, { #:main => "smart-listing", #:confirmation => "confirmation", #:id => "id", #:href => "href", #:callback_href => "callback-href", #:max_count => "max-count", #:inline_edit_backup => "smart-listing-edit-backup", #:params => "params", #:observed => "observed", #:href => "href", #:autoshow => "autoshow", #:popover => "slpopover", } config.constants :selectors, { #:item_action_destroy => "a.destroy", #:edit_cancel => "button.cancel", #:row => "tr", #:head => "thead", #:filtering_icon => "i" } end 

Uncomment the page_sizes line and replace DEFAULT_PAGE_SIZES with an array like [10, 20, 50, 100]

+4
source

No need to comment on page_sizes in initializers/smart_listing.rb . You can simply define the per_page value in the controller, for example:

 users_scope = User.all.includes(:bio) users_scope = users_scope.like(params[:filter]) if params[:filter] @users = smart_listing_create :users, users_scope, partial: "users/list", page_sizes: [5, 7, 13, 26] 

smart_listing v1.1.2

+1
source

Source: https://habr.com/ru/post/1200278/


All Articles