Sha256: 5ab3f83b9812e19dfa542c514abd36d0bd1bdcf78c2fbe8e6da0dab7519e442a

Contents?: true

Size: 946 Bytes

Versions: 4

Compression:

Stored size: 946 Bytes

Contents

module Madmin
  module SortHelper
    def sortable(column, title, options = {})
      matching_column = (column.to_s == sort_column)
      direction = (sort_direction == "asc") ? "desc" : "asc"

      link_to resource.index_path(sort: column, direction: direction), options do
        concat title
        if matching_column
          concat " "
          concat tag.i((sort_direction == "asc") ? "▲" : "▼")
        end
      end
    end

    def sort_column
      resource.sortable_columns.include?(params[:sort]) ? params[:sort] : default_sort_column
    end

    def sort_direction
      ["asc", "desc"].include?(params[:direction]) ? params[:direction] : default_sort_direction
    end

    def default_sort_column
      resource.try(:default_sort_column) || (["created_at", "id", "uuid"] & resource.model.column_names).first
    end

    def default_sort_direction
      resource.try(:default_sort_direction) || "desc"
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
madmin-1.2.11 app/helpers/madmin/sort_helper.rb
madmin-1.2.10 app/helpers/madmin/sort_helper.rb
madmin-1.2.9 app/helpers/madmin/sort_helper.rb
madmin-1.2.8 app/helpers/madmin/sort_helper.rb