diff --git a/app/controllers/admin/features_controller.rb b/app/controllers/admin/features_controller.rb index 8de1440..a50537d 100644 --- a/app/controllers/admin/features_controller.rb +++ b/app/controllers/admin/features_controller.rb @@ -17,17 +17,23 @@ class FeaturesController < AdminController def manage_fields @person_fields = Person.fields + @custom_person_fields = [] + @environment.settings[:custom_person_fields].each{|k,v| @custom_person_fields << k if k =~ /^custom_field/ && ! @custom_person_fields.include?(k) } @enterprise_fields = Enterprise.fields @community_fields = Community.fields end def manage_person_fields environment.custom_person_fields = params[:person_fields] + + #raise params[:person_fields].inspect + if environment.save! session[:notice] = _('Person fields updated successfully.') else flash[:error] = _('Person fields not updated successfully.') end + redirect_to :action => 'manage_fields' end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index d41ab2a..ce01d42 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -809,6 +809,12 @@ module ApplicationHelper form_for(name, { :builder => NoosferoFormBuilder }.merge(options), &proc) end + def optional_custom_field(profile) + result = "" + + result + end + def optional_field(profile, name, field_html = nil, only_required = false, &block) result = "" diff --git a/app/models/environment.rb b/app/models/environment.rb index 50061c8..9e8984c 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -429,7 +429,9 @@ class Environment < ActiveRecord::Base schooling_status = values['schooling'] end - self.settings[:custom_person_fields] = values.delete_if { |key, value| ! Person.fields.include?(key)} + self.settings[:custom_person_fields] = values.delete_if { |key, value| + ! ( Person.fields.include?(key) || key =~ /^custom_field/ ) + } self.settings[:custom_person_fields].each_pair do |key, value| if value['required'] == 'true' self.settings[:custom_person_fields][key]['active'] = 'true' @@ -445,6 +447,16 @@ class Environment < ActiveRecord::Base end end + def custom_person_fields_customs() + custom_fields = [] + self.settings[:custom_person_fields].each{ |k,v| custom_fields << k if k =~ /^custom_field/ } + custom_fields + end + + def custom_person_field_name(field) + self.settings[:custom_person_fields][field]['name'] + end + def custom_person_field(field, status) if (custom_person_fields[field] && custom_person_fields[field][status] == 'true') return true diff --git a/app/models/person.rb b/app/models/person.rb index d0d0521..6e534d0 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -152,7 +152,7 @@ class Person < Profile organization organization_website contact_phone - contact_information + contact_informatioin ] validates_multiparameter_assignments diff --git a/app/views/features/_manage_person_fields.html.erb b/app/views/features/_manage_person_fields.html.erb index 1d6eddf..c9b85c8 100644 --- a/app/views/features/_manage_person_fields.html.erb +++ b/app/views/features/_manage_person_fields.html.erb @@ -1,47 +1,80 @@ <%= labelled_form_for(:environment, :url => {:action => 'manage_person_fields'}) do |f| %> -
<%= _('Field') %> | <%= _('Active') %> | <%= _('Required') %> | <%= _('Display on signup?') %> | +||||
---|---|---|---|---|---|---|---|
<%= _("Check/Uncheck All")%> | -+ | - | + | - | + | + | |
- | + | <%= hidden_field_tag "person_fields[#{field}][active]", false %> <%= check_box_tag "person_fields[#{field}][active]", true, environment.custom_person_field(field, 'active'), :onclick => "active_action(this, 'person_fields[#{field}][required]', 'person_fields[#{field}][signup]')" %> | -+ | <%= hidden_field_tag "person_fields[#{field}][required]", false %> <%= check_box_tag "person_fields[#{field}][required]", true, environment.custom_person_field(field, 'required'), :onclick => "required_action('person_fields[#{field}][active]','person_fields[#{field}][required]', 'person_fields[#{field}][signup]')" %> | -+ | <%= hidden_field_tag "person_fields[#{field}][signup]", false %> <%= check_box_tag "person_fields[#{field}][signup]", true, environment.custom_person_field(field, 'signup'), :onclick => "signup_action('person_fields[#{field}][active]','person_fields[#{field}][required]', 'person_fields[#{field}][signup]')" %> | ++ |
+ <%= text_field_tag "person_fields[#{field}][name]", environment.custom_person_field_name(field) %> + | ++ <%= hidden_field_tag "person_fields[#{field}][active]", false %> + <%= check_box_tag "person_fields[#{field}][active]", true, environment.custom_person_field(field, 'active'), :onclick => "active_action(this, 'person_fields[#{field}][required]', 'person_fields[#{field}][signup]')" %> + | ++ <%= hidden_field_tag "person_fields[#{field}][required]", false %> + <%= check_box_tag "person_fields[#{field}][required]", true, environment.custom_person_field(field, 'required'), :onclick => "required_action('person_fields[#{field}][active]','person_fields[#{field}][required]', 'person_fields[#{field}][signup]')" %> + | ++ <%= hidden_field_tag "person_fields[#{field}][signup]", false %> + <%= check_box_tag "person_fields[#{field}][signup]", true, environment.custom_person_field(field, 'signup'), :onclick => "required_action('person_fields[#{field}][active]','person_fields[#{field}][required]', 'person_fields[#{field}][signup]')" %> + | ++ Delete + |