Sha256: 359c02736441df0bd815f81c30996c1742a517fb756fbaa46634ddb4228e2b4c
Contents?: true
Size: 1.02 KB
Versions: 44
Compression:
Stored size: 1.02 KB
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 if items_holder.present? items_holder.items else [] end end def visible_items items .map do |item| if item.respond_to? :hydrate item.hydrate(view: view) end item end .map do |item| visible(item) ? item : nil end .compact end def visible(item) if item.is_field? item.visible? && item.visible_on?(view) else item.visible? end end def visible? any_item_visible = visible_items.any? return any_item_visible unless 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
44 entries across 44 versions & 1 rubygems