class Formbuilder::Views::Form

Public Instance Methods

actions() click to toggle source
# File lib/formbuilder/views/form.rb, line 33
def actions
  opts = {}

  unless first_page?
    opts[:go_back_text] = "Back to page #{previous_page}"
    opts[:go_back_html] = { href: url_for(params.merge(page: previous_page)) }
  end

  if last_page?
    opts[:continue_text] = 'Preview and Submit'
  else
    opts[:continue_text] = 'Next page'
  end

  div(class: 'form-actions') {
    if opts[:go_back_text]
      a.button opts[:go_back_text], opts[:go_back_html]
    end

    button.button.primary opts[:continue_text]
  }
end
content() click to toggle source
# File lib/formbuilder/views/form.rb, line 11
def content
  page_list if @form.multi_page?

  form_tag @action, method: @method, class: 'formbuilder-form', multipart: true do
    input type: 'hidden', name: 'page', value: @current_page
    render_fields
    actions
  end
end
page_list() click to toggle source
# File lib/formbuilder/views/form.rb, line 21
def page_list
  ul.unstyled.inline.formbuilder_form_pages_list {
    (1..@form.num_pages).each do |x|
      if x == @current_page
        li { span x }
      else
        li.active { a x, href: url_for(params.merge(page: x)) }
      end
    end
  }
end

Private Instance Methods

first_page?() click to toggle source
# File lib/formbuilder/views/form.rb, line 63
def first_page?
  @current_page == 1
end
last_page?() click to toggle source
# File lib/formbuilder/views/form.rb, line 75
def last_page?
  @current_page == @form.num_pages
end
next_page() click to toggle source
# File lib/formbuilder/views/form.rb, line 71
def next_page
  @current_page + 1
end
previous_page() click to toggle source
# File lib/formbuilder/views/form.rb, line 67
def previous_page
  @current_page - 1
end
render_fields() click to toggle source
# File lib/formbuilder/views/form.rb, line 57
def render_fields
  @form.response_fields_for_page(@current_page).each do |response_field|
    widget Formbuilder::Views::FormField.new(response_field: response_field, entry: @entry)
  end
end