Module: CaseForm::Buttons

Included in:
FormBuilder
Defined in:
lib/case_form/buttons.rb

Instance Method Summary collapse

Instance Method Details

#button(options = {}) ⇒ Object Also known as: commit

Submit button

Creates a basic form submit button.

Examples:

# Generate only button

<%= case_form_for(@user) do |f| %>
  <%= f.button
<% end %>

<div class="buttons">
  <input name="submit" type="submit" value="Create" />
</div>

# or in buttons block

<%= case_form_for(@user) do |f| %>
  <%= f.buttons do %>
    <%= f.button %>
  <% end %>
<% end %>

<div class="fieldset">
  <div class="buttons">
    <input name="submit" type="submit" value="Create" />
  </div>
</div>

Allowed options:

  • :id - HTML ID

  • :class - HTML class

  • :style - not recommended HTML styles (use CSS)

  • :text - text on button

  • :disabled - disabled button

  • :as - button type (supported values: :submit and :reset)

I18n lookups priority:

  • ‘case_form.buttons.{model}.{button_type}’

  • ‘case_form.buttons.{button_type}’

  • Create || Update



122
123
124
# File 'lib/case_form/buttons.rb', line 122

def button(options={})
  Element::Button.new(self, options.merge(:as => :submit)).generate
end

#buttons(*args, &block) ⇒ Object

Buttons with or without block

With no arguments it creates fieldset with buttons defined in CaseForm config (by default :submit and :reset button). Also can create buttons determined in arguments.

Examples:

# Create buttons defined in CaseForm config

<%= case_form_for(@user) do |f| %>
  <%= f.buttons %>
<% end %>

<fieldset class="fieldset">
  <div class="buttons">
    <input name="submit" type="submit" value="Create" />
  </div>
  <div class="buttons">
    <input name="reset" type="reset" value="Reset" />
  </div>
</fieldset>

# or create buttons defined in arguments

<%= case_form_for(@user) do |f| %>
  <%= f.buttons(:commit) %>
<% end %>

<fieldset class="fieldset">
  <div class="buttons">
    <input name="submit" type="submit" value="Create" />
  </div>
</fieldset>

# or create buttons in block
<%= case_form_for(@user) do |f| %>
  <%= f.buttons do %>
    <%= f.button %>
  <% end %>
<% end %>

<fieldset class="fieldset">
  <div class="buttons">
    <input name="submit" type="submit" value="Create" />
  </div>
</fieldset>

Default buttons config:

  • CaseForm.form_buttons

  • CaseForm.wrapper_tag

Allowed options:

  • :id - HTML ID

  • :class - HTML class

  • :style - not recommended HTML styles (use CSS)

  • :text - legend for fieldset

For more advanced options for each button use block.



64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/case_form/buttons.rb', line 64

def buttons(*args, &block)
  options = args.extract_options!
  options[:class] ||= :buttons
  
  fieldset = Element::Fieldset.new(self, options)
  
  if block_given?
    fieldset.generate(&block)
  else
    args = CaseForm.form_buttons if args.empty?
    fieldset.generate(args.collect { |button| send(button) })
  end
end

#reset(options = {}) ⇒ Object

Reset button

Creates a new reset button for forms (support for HTML5).

Examples:

# Generate only button

<%= case_form_for(@user) do |f| %>
  <%= f.reset
<% end %>

<div class="buttons">
  <input name="reset" type="reset" value="Reset" />
</div>

# or in buttons block

<%= case_form_for(@user) do |f| %>
  <%= f.buttons do %>
    <%= f.reset %>
  <% end %>
<% end %>

<div class="fieldset">
  <div class="buttons">
    <input name="reset" type="reset" value="Reset" />
  </div>
</div>

Allowed options:

  • :id - HTML ID

  • :class - HTML class

  • :style - not recommended HTML styles (use CSS)

  • :text - text on button

  • :disabled - disabled button

  • :as - button type (supported values: :submit and :reset)

I18n lookups priority:

  • ‘case_form.buttons.{model}.{button_type}’

  • ‘case_form.buttons.{button_type}’

  • Reset



171
172
173
# File 'lib/case_form/buttons.rb', line 171

def reset(options={})
  Element::Button.new(self, options.merge(:as => :reset)).generate
end