Module: ActiveAdmin::ResourceController::Collection::Sorting

Included in:
ActiveAdmin::ResourceController::Collection
Defined in:
lib/active_admin/resource_controller/collection.rb

Instance Method Summary (collapse)

Instance Method Details

- (Object) active_admin_collection (protected)



39
40
41
# File 'lib/active_admin/resource_controller/collection.rb', line 39

def active_admin_collection
  sort_order(super)
end

- (Object) sort_order(chain) (protected)



43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/active_admin/resource_controller/collection.rb', line 43

def sort_order(chain)
  params[:order] ||= active_admin_config.sort_order
  if params[:order] && params[:order] =~ /^([\w\_\.]+)_(desc|asc)$/
    column = $1
    order  = $2
    table  = active_admin_config.resource_column_names.include?(column) ? active_admin_config.resource_table_name : nil
    table_column = (column =~ /\./) ? column :
      [table, active_admin_config.resource_quoted_column_name(column)].compact.join(".")

    chain.reorder("#{table_column} #{order}")
  else
    chain # just return the chain
  end
end