Module: RailsConnector::DefaultUserHelper
- Includes:
- ReCaptcha::ViewHelper
- Included in:
- DefaultCrmFormHelper, UserHelper
- Defined in:
- app/helpers/rails_connector/default_user_helper.rb
Overview
This module contains helpers for the UserController and DefaultUserController
Instance Method Summary collapse
- #genders_for_select ⇒ Object
- #languages_for_select_for(*languages) ⇒ Object
-
#mandatory_user_fields ⇒ Object
Returns mandatory user fields as array of symbols.
- #profile_fields_for(form, editable_attributes = {}) ⇒ Object
-
#user_fields_for(form, model_name, *attributes) ⇒ Object
Generates part of a form for the given attributes:.
Instance Method Details
#genders_for_select ⇒ Object
70 71 72 73 74 75 76 |
# File 'app/helpers/rails_connector/default_user_helper.rb', line 70 def genders_for_select [ ['', 'N'], [t('rails_connector.views.user.gender_female'),'F'], [t('rails_connector.views.user.gender_male'), 'M'] ] end |
#languages_for_select_for(*languages) ⇒ Object
79 80 81 82 83 84 85 |
# File 'app/helpers/rails_connector/default_user_helper.rb', line 79 def languages_for_select_for(*languages) = [] languages.flatten.each do |lang| << [t(:"rails_connector.views.user.languages.#{lang}"), lang] end end |
#mandatory_user_fields ⇒ Object
Returns mandatory user fields as array of symbols.
15 16 17 |
# File 'app/helpers/rails_connector/default_user_helper.rb', line 15 def mandatory_user_fields [:email, :gender, :language, :last_name] end |
#profile_fields_for(form, editable_attributes = {}) ⇒ Object
88 89 90 91 92 |
# File 'app/helpers/rails_connector/default_user_helper.rb', line 88 def profile_fields_for(form, editable_attributes={}) output = "".html_safe output += user_fields_for(form, "contact", editable_attributes[:contact]) output end |
#user_fields_for(form, model_name, *attributes) ⇒ Object
Generates part of a form for the given attributes:
In your view, use:
<%= form_for @user, :as => :user do |f| -%>
<%= user_fields_for(f, 'contact', :first_name, :last_name) %>
<% end -%>
to generate labels and fields for the contact:
<form>
<div class="label"><label for="user_first_name">First name</label></div>
<div class="field"><input id="user_first_name" name="user[first_name]" size="30" type="text" /></div>
<div class="label"><label for="user_last_name">Last name</label></div>
<div class="field"><input id="user_last_name" name="user[last_name]" size="30" type="text" /></div>
</form>
Labels are localized automatically, using the scope views.contact and views.location, respectively. For example:
views:
user:
first_name: First name
last_name: Last name
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'app/helpers/rails_connector/default_user_helper.rb', line 44 def user_fields_for(form, model_name, *attributes) output = "".html_safe attributes.flatten.each do |attr| output += content_tag(:div, :class => 'label') do if mandatory_user_fields.include?(attr) mandatory_label_for(form, attr, t("rails_connector.views.user.#{model_name}.#{attr}")) else form.label(attr, t("rails_connector.views.user.#{model_name}.#{attr}")) end end form_field = case attr when :gender form.select(:gender, genders_for_select) when :language languages = Infopark::Crm::CustomType.find('contact').languages form.select(:language, languages_for_select_for(languages), :selected => (@user ? @user.language : I18n.locale.to_s) ) else form.text_field(attr) end output += content_tag(:div, form_field, :class => 'field') end output end |