Module: Avo::Fields::Concerns::Nested
- Extended by:
- ActiveSupport::Concern
- Included in:
- HasOneField, ManyFrameBaseField
- Defined in:
- lib/avo/fields/concerns/nested.rb
Constant Summary collapse
- NESTED_DEFAULT =
{ on: [:new, :edit] }
Instance Attribute Summary collapse
-
#nested ⇒ Object
readonly
Returns the value of attribute nested.
Instance Method Summary collapse
- #component_for_view(view = Avo::ViewInquirer.new("index")) ⇒ Object
- #initialize_nested(**args) ⇒ Object
- #nested_on?(view) ⇒ Boolean
Instance Attribute Details
#nested ⇒ Object (readonly)
Returns the value of attribute nested.
8 9 10 |
# File 'lib/avo/fields/concerns/nested.rb', line 8 def nested @nested end |
Instance Method Details
#component_for_view(view = Avo::ViewInquirer.new("index")) ⇒ Object
27 28 29 30 31 |
# File 'lib/avo/fields/concerns/nested.rb', line 27 def component_for_view(view = Avo::ViewInquirer.new("index")) view = Avo::ViewInquirer.new(view) nested_on?(view) ? Avo::Fields::Common::NestedFieldComponent : super(view) end |
#initialize_nested(**args) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/avo/fields/concerns/nested.rb', line 16 def initialize_nested(**args) if args[:nested].blank? @nested = {} return end @nested = (args[:nested] == true) ? NESTED_DEFAULT : args[:nested] @nested[:on] = [:new, :edit] if @nested[:on] == :forms end |
#nested_on?(view) ⇒ Boolean
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/avo/fields/concerns/nested.rb', line 33 def nested_on?(view) return false if view.display? || @nested[:on].nil? view = if view.create? "new" elsif view.update? "edit" else view end Array.wrap(@nested[:on]).map(&:to_s).include?(view) end |