Class: EasyAdmin::Layouts::Builders::ActionBarBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/easy_admin/layouts/builders/show_layout_builder.rb

Overview

Builder for action bars

Instance Method Summary collapse

Constructor Details

#initialize(parent_builder, action_bar_node) ⇒ ActionBarBuilder

Returns a new instance of ActionBarBuilder.



156
157
158
159
# File 'lib/easy_admin/layouts/builders/show_layout_builder.rb', line 156

def initialize(parent_builder, action_bar_node)
  @parent_builder = parent_builder
  @action_bar_node = action_bar_node
end

Instance Method Details

#button(text, action:, **attributes) ⇒ Object



171
172
173
174
175
176
177
178
179
# File 'lib/easy_admin/layouts/builders/show_layout_builder.rb', line 171

def button(text, action:, **attributes)
  action_node = Nodes::Action.new(
    :button,
    text: text,
    action: action,
    **attributes
  )
  @action_bar_node.add_child(action_node)
end


181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
# File 'lib/easy_admin/layouts/builders/show_layout_builder.rb', line 181

def dropdown(text, **attributes, &block)
  dropdown_node = Nodes::Dropdown.new(
    text: text,
    **attributes
  )
  @action_bar_node.add_child(dropdown_node)
  
  if block_given?
    @parent_builder.current_container_stack.push(dropdown_node)
    @parent_builder.instance_exec(&block)
    @parent_builder.current_container_stack.pop
  end
  
  dropdown_node
end


161
162
163
164
165
166
167
168
169
# File 'lib/easy_admin/layouts/builders/show_layout_builder.rb', line 161

def link(text, href:, **attributes)
  action_node = Nodes::Action.new(
    :link,
    text: text,
    href: href,
    **attributes
  )
  @action_bar_node.add_child(action_node)
end