Module: FriendsLabeledFormHelper

Defined in:
app/helpers/friends_labeled_form_helper.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(arg) ⇒ Object



4
5
6
# File 'app/helpers/friends_labeled_form_helper.rb', line 4

def self.included(arg)
  ActionView::Helpers::FormBuilder.send(:include, FriendsLabeledFormBuilder)
end

Instance Method Details

#label_tag_for(object_name, method, options = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/helpers/friends_labeled_form_helper.rb', line 8

def label_tag_for(object_name, method, options = {})
  label_name = (options[:label].blank? ? method.to_label : options[:label])

  label_name += options[:append] unless options[:append].nil?

  label_text = "<span class='label-text'>#{label_name}</span>"

  if options[:errors]
    label_text << tooltip_box(options[:errors].join("<br />"))
  elsif !options[:hide_tooltip] == true
    # check if tooltip is given by options
    if options[:tooltip].present?
      label_text << tooltip_box(options[:tooltip])
    elsif #look for tooltips for field in locale
      i18n_str = "form_tooltips.#{object_name}.#{method}"

      tt = begin
        I18n.t(i18n_str)
      rescue
        i18n_str
      end

      # we dont want to see the empty boxes on production
      if tt == i18n_str && !Rails.env.production?
        label_text << tooltip_box(tt, fallback: true)
      else
        label_text << tooltip_box(tt)
      end
    end
  end


  label_options = {}
  label_options.merge!(:class => options[:class]) unless options[:class].blank?
  label_options.merge!(:for => options[:for]) unless options[:for].blank?
  label_options.merge!(:id => options[:id]) unless options[:id].blank?

  return label(object_name, method, label_text.html_safe, label_options).html_safe
end

#labeled_check_box(object_name, method, options = {}, checked_value = 1, unchecked_value = 0) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
# File 'app/helpers/friends_labeled_form_helper.rb', line 71

def labeled_check_box(object_name, method, options={}, checked_value=1, unchecked_value=0)
  method = method.to_s.to_sym
  box_id = object_name.to_s+"_"+method.to_s

  html = "<div class='cf labeled-check-box'>"
  html += "<div class='checkbox-container'>#{check_box(object_name, method, options.merge!(:id => box_id), checked_value, unchecked_value)}</div>"
  html += "<div class='checkbox-label-container'>#{label_tag_for(object_name, method, :label => options[:label], :tooltip => options[:tooltip], :class => "checkbox-label", :for => box_id, :errors => options[:errors])}</div>"
  html += "</div>"

  return html.html_safe
end

#labeled_radio_button(object_name, method, value, options = {}) ⇒ Object



85
86
87
88
89
90
91
92
93
94
# File 'app/helpers/friends_labeled_form_helper.rb', line 85

def labeled_radio_button(object_name, method, value, options = {})
  options[:id] ||= "radio-#{method.to_s}-#{value.inspect}"
  options[:label] ||= method.to_label
  html = "<div class='cf labeled-radio-button'>"
  html << radio_button(object_name, method, value, options.except(:label, :errors))
  html << "&nbsp;"
  html << label_tag_for(object_name, method, {:label => options[:label], :for => options[:id]})
  html << "</div>"
  return raw(html)
end

#labeled_text_field(object_name, method, options = {}) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'app/helpers/friends_labeled_form_helper.rb', line 48

def labeled_text_field(object_name, method, options={})

  if options[:id]
    label_options = options.merge(:id => "label-#{options[:id]}")
  else
    label_options = options
  end

  if options[:label_as_placeholder].present?
    html = ""
    options[:placeholder] = options[:label_as_placeholder]
  else
    html = label_tag_for(object_name, method, label_options)
  end

  if options[:password] && options.delete(:password)
    html += password_field(object_name, method, options)
  else
    html += text_field(object_name, method, options)
  end
  return html.html_safe
end