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

Version Path
avo-3.0.1.beta23 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta20 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta21 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta17 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta22 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta18 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta19 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta24 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta15 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta16 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta14 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta12 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta13 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta10 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta11 lib/avo/concerns/visible_items.rb
avo-3.0.0.pre19 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta8 lib/avo/concerns/visible_items.rb
avo-3.0.1.beta9 lib/avo/concerns/visible_items.rb