From 09620eef763dfff36ebc010db117bb69e07a2f25 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Wed, 7 Jan 2009 20:03:33 +0000 Subject: [PATCH] Refactor TabularFormBuilder field helpers (#2461). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2247 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/tabular_form_builder.rb | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/tabular_form_builder.rb b/lib/tabular_form_builder.rb index 88e35a6d2..3ca2d7aab 100644 --- a/lib/tabular_form_builder.rb +++ b/lib/tabular_form_builder.rb @@ -28,24 +28,24 @@ class TabularFormBuilder < ActionView::Helpers::FormBuilder (field_helpers - %w(radio_button hidden_field) + %w(date_select)).each do |selector| src = <<-END_SRC def #{selector}(field, options = {}) - return super if options.delete :no_label - label_text = l(options[:label]) if options[:label] - label_text ||= l(("field_"+field.to_s.gsub(/\_id$/, "")).to_sym) - label_text << @template.content_tag("span", " *", :class => "required") if options.delete(:required) - label = @template.content_tag("label", label_text, - :class => (@object && @object.errors[field] ? "error" : nil), - :for => (@object_name.to_s + "_" + field.to_s)) - label + super + label_for_field(field, options) + super end END_SRC class_eval src, __FILE__, __LINE__ end def select(field, choices, options = {}, html_options = {}) - label_text = l(("field_"+field.to_s.gsub(/\_id$/, "")).to_sym) + (options.delete(:required) ? @template.content_tag("span", " *", :class => "required"): "") - label = @template.content_tag("label", label_text, - :class => (@object && @object.errors[field] ? "error" : nil), - :for => (@object_name.to_s + "_" + field.to_s)) - label + super + label_for_field(field, options) + super + end + + # Returns a label tag for the given field + def label_for_field(field, options = {}) + return '' if options.delete(:no_label) + text = l(options[:label]) if options[:label] + text ||= l(("field_" + field.to_s.gsub(/\_id$/, "")).to_sym) + text << @template.content_tag("span", " *", :class => "required") if options.delete(:required) + @template.content_tag("label", text, + :class => (@object && @object.errors[field] ? "error" : nil), + :for => (@object_name.to_s + "_" + field.to_s)) end end