Module: Dbviewer::PaginationConcern

Extended by:
ActiveSupport::Concern
Included in:
TablesController
Defined in:
app/controllers/concerns/dbviewer/pagination_concern.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#calculate_total_pages(total_count, per_page) ⇒ Object

Calculate the total number of pages



39
40
41
# File 'app/controllers/concerns/dbviewer/pagination_concern.rb', line 39

def calculate_total_pages(total_count, per_page)
  (total_count.to_f / per_page).ceil
end

#set_pagination_paramsObject

Set pagination parameters from request or defaults



22
23
24
25
26
# File 'app/controllers/concerns/dbviewer/pagination_concern.rb', line 22

def set_pagination_params
  @current_page = [ 1, params[:page].to_i ].max
  @per_page = params[:per_page] ? params[:per_page].to_i : self.class.default_per_page
  @per_page = self.class.default_per_page unless self.class.per_page_options.include?(@per_page)
end

#set_sorting_paramsObject

Set sorting parameters from request or defaults



29
30
31
32
33
34
35
36
# File 'app/controllers/concerns/dbviewer/pagination_concern.rb', line 29

def set_sorting_params
  @order_by = params[:order_by].presence ||
              database_manager.primary_key(@table_name).presence ||
              (@columns.first ? @columns.first[:name] : nil)

  @order_direction = params[:order_direction].upcase if params[:order_direction].present?
  @order_direction = "ASC" unless self.class::VALID_SORT_DIRECTIONS.include?(@order_direction)
end