| 
									
										
										
										
											2011-09-20 02:11:30 +00:00
										 |  |  | # Redmine - project management software | 
					
						
							|  |  |  | # Copyright (C) 2006-2011  Jean-Philippe Lang | 
					
						
							| 
									
										
										
										
											2007-12-30 10:48:11 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # This program is free software; you can redistribute it and/or | 
					
						
							|  |  |  | # modify it under the terms of the GNU General Public License | 
					
						
							|  |  |  | # as published by the Free Software Foundation; either version 2 | 
					
						
							|  |  |  | # of the License, or (at your option) any later version. | 
					
						
							| 
									
										
										
										
											2011-09-20 02:11:30 +00:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2007-12-30 10:48:11 +00:00
										 |  |  | # This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  | # GNU General Public License for more details. | 
					
						
							| 
									
										
										
										
											2011-09-20 02:11:30 +00:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2007-12-30 10:48:11 +00:00
										 |  |  | # You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  | # along with this program; if not, write to the Free Software | 
					
						
							|  |  |  | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require 'action_view/helpers/form_helper' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-09 18:45:38 +00:00
										 |  |  | class Redmine::Views::LabelledFormBuilder < ActionView::Helpers::FormBuilder | 
					
						
							| 
									
										
										
										
											2009-02-21 11:04:50 +00:00
										 |  |  |   include Redmine::I18n | 
					
						
							| 
									
										
										
										
											2011-09-20 02:11:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-26 01:39:20 +00:00
										 |  |  |   (field_helpers.map(&:to_s) - %w(radio_button hidden_field fields_for) + | 
					
						
							|  |  |  |         %w(date_select)).each do |selector| | 
					
						
							| 
									
										
										
										
											2007-12-30 10:48:11 +00:00
										 |  |  |     src = <<-END_SRC
 | 
					
						
							| 
									
										
										
										
											2011-09-20 02:11:30 +00:00
										 |  |  |     def #{selector}(field, options = {}) | 
					
						
							| 
									
										
										
										
											2012-01-08 17:30:34 +00:00
										 |  |  |       label_for_field(field, options) + super(field, options.except(:label)) | 
					
						
							| 
									
										
										
										
											2007-12-30 10:48:11 +00:00
										 |  |  |     end | 
					
						
							|  |  |  |     END_SRC | 
					
						
							|  |  |  |     class_eval src, __FILE__, __LINE__ | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2011-09-20 02:11:30 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def select(field, choices, options = {}, html_options = {}) | 
					
						
							| 
									
										
										
										
											2012-01-08 17:30:34 +00:00
										 |  |  |     label_for_field(field, options) + super(field, choices, options, html_options.except(:label)) | 
					
						
							| 
									
										
										
										
											2009-01-07 20:03:33 +00:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2011-09-20 02:11:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-07 20:03:33 +00:00
										 |  |  |   # Returns a label tag for the given field | 
					
						
							|  |  |  |   def label_for_field(field, options = {}) | 
					
						
							| 
									
										
										
										
											2011-08-20 06:54:00 +00:00
										 |  |  |       return ''.html_safe if options.delete(:no_label) | 
					
						
							| 
									
										
										
										
											2009-02-27 11:32:43 +00:00
										 |  |  |       text = options[:label].is_a?(Symbol) ? l(options[:label]) : options[:label] | 
					
						
							| 
									
										
										
										
											2009-01-07 20:03:33 +00:00
										 |  |  |       text ||= l(("field_" + field.to_s.gsub(/\_id$/, "")).to_sym) | 
					
						
							| 
									
										
										
										
											2009-09-13 17:14:35 +00:00
										 |  |  |       text += @template.content_tag("span", " *", :class => "required") if options.delete(:required) | 
					
						
							| 
									
										
										
										
											2011-09-20 02:11:30 +00:00
										 |  |  |       @template.content_tag("label", text.html_safe, | 
					
						
							|  |  |  |                                      :class => (@object && @object.errors[field] ? "error" : nil), | 
					
						
							| 
									
										
										
										
											2009-01-07 20:03:33 +00:00
										 |  |  |                                      :for => (@object_name.to_s + "_" + field.to_s)) | 
					
						
							| 
									
										
										
										
											2007-12-30 10:48:11 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | end |