Sha256: 5a71c8feec40f410eb778def1dd239e4db2ecc5e58e383894436a824de8385c0

Contents?: true

Size: 943 Bytes

Versions: 5

Compression:

Stored size: 943 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 request.params.merge(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

5 entries across 5 versions & 1 rubygems

Version Path
madmin-1.2.5 app/helpers/madmin/sort_helper.rb
madmin-1.2.4 app/helpers/madmin/sort_helper.rb
madmin-1.2.3 app/helpers/madmin/sort_helper.rb
madmin-1.2.2 app/helpers/madmin/sort_helper.rb
madmin-1.2.1 app/helpers/madmin/sort_helper.rb