Class: ActiveAdmin::Views::AttributesTable
- Defined in:
- lib/active_admin/views/components/attributes_table.rb
Instance Method Summary collapse
- #build(obj, *attrs) ⇒ Object
-
#build_colgroups ⇒ Object
protected
Build Colgroups.
- #content_for(record, attr) ⇒ Object protected
- #default_id_for_prefix ⇒ Object protected
- #empty_value ⇒ Object protected
- #header_content_for(attr) ⇒ Object protected
- #row(*args, &block) ⇒ Object
- #rows(*attrs) ⇒ Object
- #single_record? ⇒ Boolean protected
Instance Method Details
#build(obj, *attrs) ⇒ Object
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/active_admin/views/components/attributes_table.rb', line 7 def build(obj, *attrs) @collection = Array.wrap(obj) @resource_class = @collection.first.class = { } [:for] = @collection.first if single_record? super() @table = table build_colgroups rows(*attrs) end |
#build_colgroups ⇒ Object (protected)
Build Colgroups
Colgroups are only necessary for a collection of records; not a single record.
55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/active_admin/views/components/attributes_table.rb', line 55 def build_colgroups return if single_record? reset_cycle(self.class.to_s) within @table do col # column for row headers @collection.each do |record| classes = Arbo::HTML::ClassList.new classes << cycle(:even, :odd, name: self.class.to_s) classes << dom_class_name_for(record) col(id: dom_id_for(record), class: classes) end end end |
#content_for(record, attr) ⇒ Object (protected)
81 82 83 84 85 86 |
# File 'lib/active_admin/views/components/attributes_table.rb', line 81 def content_for(record, attr) value = helpers.format_attribute record, attr value.blank? && current_arbo_element.children.to_s.empty? ? empty_value : value # Don't add the same Arbre twice, while still allowing format_attribute to call status_tag current_arbo_element << value unless current_arbo_element.children.include? value end |
#default_id_for_prefix ⇒ Object (protected)
47 48 49 |
# File 'lib/active_admin/views/components/attributes_table.rb', line 47 def default_id_for_prefix 'attributes_table' end |
#empty_value ⇒ Object (protected)
77 78 79 |
# File 'lib/active_admin/views/components/attributes_table.rb', line 77 def empty_value span I18n.t('active_admin.empty'), class: "empty" end |
#header_content_for(attr) ⇒ Object (protected)
69 70 71 72 73 74 75 |
# File 'lib/active_admin/views/components/attributes_table.rb', line 69 def header_content_for(attr) if @resource_class.respond_to?(:human_attribute_name) @resource_class.human_attribute_name(attr, default: attr.to_s.titleize) else attr.to_s.titleize end end |
#row(*args, &block) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/active_admin/views/components/attributes_table.rb', line 22 def row(*args, &block) title = args[0] = args. classes = [:row] if [:class] classes << [:class] elsif title.present? classes << "row-#{title.to_s.parameterize(separator: "_")}" end [:class] = classes.join(' ') @table << tr() do th do header_content_for(title) end @collection.each do |record| td do content_for(record, block || title) end end end end |
#rows(*attrs) ⇒ Object
18 19 20 |
# File 'lib/active_admin/views/components/attributes_table.rb', line 18 def rows(*attrs) attrs.each {|attr| row(attr) } end |
#single_record? ⇒ Boolean (protected)
88 89 90 |
# File 'lib/active_admin/views/components/attributes_table.rb', line 88 def single_record? @single_record ||= @collection.size == 1 end |