Module: Avo::Concerns::VisibleItems

Extended by:
ActiveSupport::Concern
Included in:
Resources::Items::ItemGroup, Resources::Items::Row, Resources::Items::Tab
Defined in:
lib/avo/concerns/visible_items.rb

Instance Method Summary collapse

Instance Method Details

#hydrate(view: nil) ⇒ Object



36
37
38
39
40
# File 'lib/avo/concerns/visible_items.rb', line 36

def hydrate(view: nil)
  @view = view

  self
end

#itemsObject



6
7
8
# File 'lib/avo/concerns/visible_items.rb', line 6

def items
  items_holder&.items || []
end

#visible(item) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/avo/concerns/visible_items.rb', line 21

def visible(item)
  return item.visible? if !item.is_field?

  return false if item.respond_to?(:authorized?) && item.resource.present? && !item.authorized?

  item.visible? && item.visible_in_view?(view: view)
end

#visible?Boolean

Returns:

  • (Boolean)


29
30
31
32
33
34
# File 'lib/avo/concerns/visible_items.rb', line 29

def visible?
  any_item_visible = visible_items.any?
  return any_item_visible if !respond_to?(:visible_on?)

  visible_on?(view) && any_item_visible
end

#visible_itemsObject



10
11
12
13
14
15
16
17
18
19
# File 'lib/avo/concerns/visible_items.rb', line 10

def visible_items
  items
    .select do |item|
      if item.respond_to? :hydrate
        item.hydrate(view: view, resource: resource)
      end

      visible(item)
    end
end