Sha256: a4408701124dd26e10be0cdd3e6e42c8adb302e8ebd6f8b4d55cd6a7ea13b02d

Contents?: true

Size: 1.66 KB

Versions: 46

Compression:

Stored size: 1.66 KB

Contents

module ActiveAdmin
  module Views

    class AttributesTable < ActiveAdmin::Component
      builder_method :attributes_table_for

      attr_reader :resource

      def build(record, *attrs)
        @record = record
        super(:for => @record)
        @table = table
        rows(*attrs)
      end

      def rows(*attrs)
        attrs.each {|attr| row(attr) }
      end

      def row(*args, &block)
        title   = args[0]
        options = args.extract_options!
        options[:class] ||= :row
        @table << tr(options) do
          th do
            header_content_for(title)
          end
          td do
            content_for(block || title)
          end
        end
      end

      protected

      def default_id_for_prefix
        'attributes_table'
      end

      def header_content_for(attr)
        if @record.class.respond_to?(:human_attribute_name)
          @record.class.human_attribute_name(attr, :default => attr.to_s.titleize)
        else
          attr.to_s.titleize
        end
      end

      def empty_value
        span I18n.t('active_admin.empty'), :class => "empty"
      end

      def content_for(attr_or_proc)
        value = case attr_or_proc
                when Proc
                  attr_or_proc.call(@record)
                else
                  content_for_attribute(attr_or_proc)
                end
        value = pretty_format(value)
        value == "" || value.nil? ? empty_value : value
      end

      def content_for_attribute(attr)
        if attr.to_s =~ /^([\w]+)_id$/ && @record.respond_to?($1.to_sym)
          content_for_attribute($1)
        else
          @record.send(attr.to_sym)
        end
      end
    end

  end
end

Version data entries

46 entries across 46 versions & 2 rubygems

Version Path
lalala-4.0.0.dev.141 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.136 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.135 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.134 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.133 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.132 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.131 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.129 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.128 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.126 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.125 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.124 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.123 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.118 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.116 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.114 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.113 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.111 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.109 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb
lalala-4.0.0.dev.107 vendor/deps/active_admin/lib/active_admin/views/components/attributes_table.rb