Module: SimpleForm::Bootstrap::FormBuilders::Button

Defined in:
lib/simple_form/bootstrap/form_builders/button.rb

Constant Summary collapse

BUTTON_CLASSES =
['btn-default', 'btn-primary', 'btn-success', 'btn-info', 'btn-warning',
'btn-danger', 'btn-link'].freeze

Instance Method Summary collapse

Instance Method Details

#button(type, *args, &proc) ⇒ Object

Adds the btn-default class selectively to buttons which do not have an explicit button type.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/simple_form/bootstrap/form_builders/button.rb', line 6

def button(type, *args, &proc)
  options = args.extract_options!.dup
  options[:class] = [*options[:class]]

  # Add the specified class type.
  if options[:class].select { |cls| BUTTON_CLASSES.include?(cls) }.empty?
    if type.to_s == :submit.to_s.freeze
      options[:class] << 'btn-primary'
    else
      options[:class] << 'btn-default'
    end
  end
  args << options

  super(type, *args, &proc)
end

#submit_button(*args, &block) ⇒ Object

Creates a submit button.

This augments the original button implementation to generate a button element with a submit action when a block is given. Otherwise, it falls back to the original submit helper.



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/simple_form/bootstrap/form_builders/button.rb', line 28

def submit_button(*args, &block)
  if block_given?
    options = args.extract_options!.dup
    options[:type] = :submit
    options[:name] ||= 'commit'
    args << options
    button_button(options, &block)
  else
    submit(*args)
  end
end