module Administrate::DefaultOrder

Constants

VERSION

Public Instance Methods

default_order(model, options) click to toggle source
# File lib/administrate/default_order.rb, line 9
def default_order(model, options)
  param = ::Kernel::String(model.try(:name) || model).underscore.to_sym

  order = extract_sort_by_from_options(options)

  before_action(options.without(:_order, :_direction, :order)) do
    if !params[param] || !params[param][:order]
      params[param] ||= {}
      params[param].merge!(order)
    end
  end
end
extract_sort_by_from_options(options) click to toggle source
# File lib/administrate/default_order.rb, line 24
def extract_sort_by_from_options(options)
  return { order: options, direction: :asc } unless options.is_a?(::Hash)

  if options[:order] && !%i[asc desc ASC DESC].include?(options[:order].to_sym)
    return { order: options[:order], direction: options[:direction] || :asc }
  end

  { order: options.keys.first, direction: options.values.first }
end