module UserHelper # Abstraction to make views a little cleaner def form_input(helper_method, prompt, field_name=nil, options = {}, form_name = nil) form_name = "user" if form_name.nil? case helper_method.to_s when 'hidden_field' self.hidden_field(form_name, field_name, options) when /^.*button$/ #prompt = l(:"#{@controller.controller_name}_#{field_name}_button") <<-EOL #{self.send(helper_method, form_name, prompt, options)} EOL else field = ( case helper_method when :select self.send(helper_method, form_name, field_name, options.delete('values'), options) when :password_field options[:value] = "" self.send(helper_method, form_name, field_name, options) else self.send(helper_method, form_name, field_name, options) end) # lname = "#{form_name}_#{field_name}_form" # prompt = l(:"#{lname}") if LoginEngine.config(:two_column_input) <<-EOL #{field} EOL else <<-EOL #{field} EOL end end end # def button_helper(name, options = {}) # label = l(:"#{@controller.controller_name}_#{name}_button") # "#{self.send(:submit_tag, label, options)}" # end # def link_helper(name, options = {}) # raise ArgumentError if name.nil? # label = l(:"#{@controller.controller_name}_#{name}_link") # "#{self.send(:link_to, label, options)}" # end def title_helper "#{@controller.controller_class_name} #{@controller.action_name}" end # def message_helper(name) # l(:"#{@controller.controller_name}_#{name}_message") # end def start_form_tag_helper(options = {}) url = url_for(:action => "#{@controller.action_name}") "#{self.send(:start_form_tag, url, options)}" end def attributes(hash) hash.keys.inject("") { |attrs, key| attrs + %{#{key}="#{h(hash[key])}" } } end def read_only_field(form_name, field_name, html_options) "#{instance_variable_get('@' + form_name)[field_name]}" end def submit_button(form_name, prompt, html_options) %{} end def changeable(user, field) if user.new_record? or LoginEngine.config(:changeable_fields).include?(field) :text_field else :read_only_field end end end