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