Module: SmartTable::SmartTableConcern

Extended by:
ActiveSupport::Concern
Defined in:
app/controllers/concerns/smart_table/smart_table_concern.rb

Defined Under Namespace

Classes: Params

Instance Method Summary collapse

Instance Method Details

#smart_table_params(initial_page_size: 25, initial_sort_attribute: nil, initial_sort_order: :asc, remote: false) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'app/controllers/concerns/smart_table/smart_table_concern.rb', line 29

def smart_table_params(initial_page_size: 25, initial_sort_attribute: nil, initial_sort_order: :asc, remote: false)
  return @st_params if @st_params

  @st_params = Params.new
  @st_params.remote = remote

  @st_params.sort = params[SORT_PARAM]
  if @st_params.sort.nil? && initial_sort_attribute
    @st_params.sort = "#{initial_sort_attribute} #{initial_sort_order}"
  end

  @st_params.search = params[SEARCH_PARAM]
  @st_params.page_size = params[PAGE_SIZE_PARAM] || initial_page_size
  if @st_params.page_size == SHOW_ALL
    @st_params.page_size = nil
  else
    @st_params.page_size = @st_params.page_size.to_i

    if params[PAGE_PARAM].present? && params[PAGE_PARAM] =~ /\d+/
      page = params[PAGE_PARAM].to_i
      page = 1 if page < 1
      @st_params.page_number = page
    end
  end

  @st_params
end