class Forme::Formatter::Bs3

Private Instance Methods

_add_set_error(tags) click to toggle source
    # File lib/forme/bs3.rb
112 def _add_set_error(tags)
113   tags << input.tag(:span, {:class=>'help-block with-errors'}, @opts[:set_error])
114 end
_format_set(type, tag_attrs={}) click to toggle source
    # File lib/forme/bs3.rb
132 def _format_set(type, tag_attrs={})
133   raise Error, "can't have radioset or checkboxset with no options" unless @opts[:optgroups] || @opts[:options]
134   key = @opts[:key]
135   name = @opts[:name]
136   id = @opts[:id]
137   if @opts[:error]
138     @opts[:set_error] = @opts.delete(:error)
139   end
140   if @opts[:label]
141     @opts[:set_label] = @opts.delete(:label)
142   end
143 
144   tag_wrapper = Forme.transformer(:tag_wrapper, @opts.delete(:tag_wrapper), @input.form_opts) || :default
145   wrapper = @opts.fetch(:wrapper){@opts[:wrapper] = @input.form_opts[:set_wrapper] || @input.form_opts[:wrapper]}
146   wrapper = Forme.transformer(:wrapper, wrapper)
147 
148   tags = process_select_optgroups(:_format_set_optgroup) do |label, value, sel, attrs|
149     value ||= label
150     r_opts = attrs.merge(tag_attrs).merge(:label=>label||value, :label_attr=>{:class=>:option}, :wrapper=>tag_wrapper)
151     r_opts[:value] ||= value if value
152     r_opts[:checked] ||= :checked if sel
153 
154     if name
155       r_opts[:name] ||= name
156     end
157     if id
158       r_opts[:id] ||= "#{id}_#{value}"
159     end
160     if key
161       r_opts[:key] ||= key
162       r_opts[:key_id] ||= value
163     end
164 
165     form._input(type, r_opts)
166   end
167 
168   if @opts[:set_error]
169    _add_set_error(tags)
170   end
171 
172   tags.unshift(form._tag(:label, {}, @opts[:set_label])) if @opts[:set_label]
173 
174   tags
175 end
format_checkboxset() click to toggle source
Calls superclass method Forme::Formatter#format_checkboxset
    # File lib/forme/bs3.rb
124 def format_checkboxset
125   @opts[:wrapper_attr] ||= {}
126   klasses = 'checkboxset'
127   klasses = @opts[:error] || @opts[:set_error] ? "#{klasses} has-error" : klasses
128   Forme.attr_classes(@opts[:wrapper_attr], klasses)
129   super
130 end
format_radioset() click to toggle source
Calls superclass method Forme::Formatter#format_radioset
    # File lib/forme/bs3.rb
116 def format_radioset
117   @opts[:wrapper_attr] ||= {}
118   klasses = 'radioset'
119   klasses = @opts[:error] || @opts[:set_error] ? "#{klasses} has-error" : klasses
120   Forme.attr_classes(@opts[:wrapper_attr], klasses)
121   super
122 end
normalize_options() click to toggle source

Copied to remove .error from class attrs

    # File lib/forme/bs3.rb
 80 def normalize_options
 81   copy_options_to_attributes(ATTRIBUTE_OPTIONS)
 82   copy_boolean_options_to_attributes(ATTRIBUTE_BOOLEAN_OPTIONS)
 83   handle_key_option
 84   handle_errors_option
 85 
 86   Forme.attr_classes(@attr, @opts[:class]) if @opts.has_key?(:class)
 87 
 88   if @opts[:error] && input.type != :submit && input.type != :reset
 89     # Forme.attr_classes(@attr, 'error')
 90     @attr["aria-invalid"] = "true"
 91     if @opts.fetch(:error_handler, true)
 92       if @opts[:error_id]
 93         @attr['aria-describedby'] ||= @opts[:error_id]
 94       else
 95         if id = @attr[:id] || @attr['id']
 96           error_id = @attr['aria-describedby'] ||= "#{id}_error_message"
 97           @opts[:error_id] = error_id
 98         end
 99       end
100     end
101   end
102 
103   if data = opts[:data]
104     data.each do |k, v|
105       k = k.to_s.tr("_", "-") if k.is_a?(Symbol) && input.opts[:dasherize_data]
106       sym = :"data-#{k}"
107       @attr[sym] = v unless @attr.has_key?(sym)
108     end
109   end
110 end