Module: MaterialDesign::MenuHelper

Defined in:
app/helpers/material_design/menu_helper.rb

Instance Method Summary collapse

Instance Method Details

#md_menu(menu_options: [], data: {}, form: nil, attribute: nil) ⇒ Object



3
4
5
6
7
8
9
# File 'app/helpers/material_design/menu_helper.rb', line 3

def md_menu(menu_options: [], data: {}, form: nil, attribute: nil)
  (:div, class: "menu", data: data) do
    menu_options.each do |option|
      concat(menu_option(option, form, attribute))
    end
  end
end


11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/helpers/material_design/menu_helper.rb', line 11

def menu_option(option, form, attribute)
  if option[:path]
    link_to option[:path], data: option[:data], method: option[:method] do
      (:div, class: class_names("menu__item", divider: option[:divider])) do
        concat(render("material_design/icons/icon", locals: { icon: option[:icon], size: 18 })) if option[:icon]
        concat((:span, option[:label]))
      end
    end
  elsif form
    form.label "#{attribute}_#{option[:value]}", option[:label] do
      concat(form.radio_button attribute, option[:value], class: "hidden", onchange: option[:onchange], checked: option[:checked])
      concat((:div, class: class_names("menu__item", divider: option[:divider])) do
        concat(render("material_design/icons/icon", locals: { icon: option[:icon], size: 18 })) if option[:icon]
        concat((:span, option[:label]))
      end)
    end
  end
end