Sha256: e983fe2c9a6db503fbafb019066272000386cf8a005226f44ec201f1aeed10ca
Contents?: true
Size: 996 Bytes
Versions: 18
Compression:
Stored size: 996 Bytes
Contents
# This concern helps us figure out what items are visible for each tab, panel or sidebar module Avo module Concerns module VisibleItems extend ActiveSupport::Concern def items items_holder&.items || [] end def visible_items items .select do |item| if item.respond_to? :hydrate item.hydrate(view: view, resource: resource) end visible(item) end end 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 def visible? any_item_visible = visible_items.any? return any_item_visible if !respond_to?(:visible_on?) visible_on?(view) && any_item_visible end def hydrate(view: nil) @view = view self end end end end
Version data entries
18 entries across 18 versions & 1 rubygems