Sha256: 14be842a51995cdfb186efdd6cda47002594e61dfcc4fcc3ed035381d2f43250

Contents?: true

Size: 1.26 KB

Versions: 8

Compression:

Stored size: 1.26 KB

Contents

module Godmin
  module Helpers
    module Tables
      def column_header(attribute)
        if @resource_service.orderable_column?(attribute.to_s)
          direction =
            if params[:order].present?
              if params[:order].match(/\A#{attribute.to_s}_(asc|desc)\z/)
                $1 == "desc" ? "asc" : "desc"
              elsif params[:order].match(/\A\w+_(asc|desc)\z/)
                $1
              else
                "desc"
              end
            else
              "desc"
            end
          link_to @resource_class.human_attribute_name(attribute.to_s), url_for(params.to_unsafe_h.merge(order: "#{attribute}_#{direction}"))
        else
          @resource_class.human_attribute_name(attribute.to_s)
        end
      end

      def column_value(resource, attribute)
        partial_override "#{controller_path}/columns/#{attribute}", resource: resource do
          column_value = resource.send(attribute)

          if column_value.is_a?(Date) || column_value.is_a?(Time)
            column_value = l(column_value, format: :long)
          end

          if column_value.is_a?(TrueClass) || column_value.is_a?(FalseClass)
            column_value = t(column_value.to_s)
          end

          column_value
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
godmin-2.2.1 lib/godmin/helpers/tables.rb
godmin-2.2.0 lib/godmin/helpers/tables.rb
godmin-2.1.0 lib/godmin/helpers/tables.rb
godmin-2.0.0 lib/godmin/helpers/tables.rb
godmin-1.5.0 lib/godmin/helpers/tables.rb
godmin-1.4.0 lib/godmin/helpers/tables.rb
godmin-1.3.1 lib/godmin/helpers/tables.rb
godmin-1.3.0 lib/godmin/helpers/tables.rb