Commit 7601acd63ba1583d4f2fe98f3731856024019f3c

Authored by Francisco Marcelo de Araújo Lima Júnior
1 parent a4bfc4d9

add infra

app/controllers/admin/features_controller.rb
@@ -17,17 +17,18 @@ class FeaturesController < AdminController @@ -17,17 +17,18 @@ class FeaturesController < AdminController
17 17
18 def manage_fields 18 def manage_fields
19 @person_fields = Person.fields 19 @person_fields = Person.fields
20 - @custom_person_fields = []  
21 - @environment.settings[:custom_person_fields].each{|k,v| @custom_person_fields << k if k =~ /^custom_field/ && ! @custom_person_fields.include?(k) } 20 + @custom_person_fields = (@environment.settings[:custom_person_fields] || {}).keys.reject {|key| ! (key =~ /^custom_field/) }
  21 +
22 @enterprise_fields = Enterprise.fields 22 @enterprise_fields = Enterprise.fields
  23 + @custom_enterprise_fields = (@environment.settings[:custom_enterprise_fields] || {}).keys.reject {|key| ! (key =~ /^custom_field/) }
  24 +
23 @community_fields = Community.fields 25 @community_fields = Community.fields
  26 + @custom_community_fields = (@environment.settings[:custom_community_fields] || {}).keys.reject {|key| ! (key =~ /^custom_field/) }
24 end 27 end
25 28
26 def manage_person_fields 29 def manage_person_fields
27 environment.custom_person_fields = params[:person_fields] 30 environment.custom_person_fields = params[:person_fields]
28 31
29 - #raise params[:person_fields].inspect  
30 -  
31 if environment.save! 32 if environment.save!
32 session[:notice] = _('Person fields updated successfully.') 33 session[:notice] = _('Person fields updated successfully.')
33 else 34 else
app/models/environment.rb
@@ -497,7 +497,7 @@ class Environment &lt; ActiveRecord::Base @@ -497,7 +497,7 @@ class Environment &lt; ActiveRecord::Base
497 end 497 end
498 498
499 def custom_enterprise_fields=(values) 499 def custom_enterprise_fields=(values)
500 - self.settings[:custom_enterprise_fields] = values.delete_if { |key, value| ! Enterprise.fields.include?(key)} 500 + self.settings[:custom_enterprise_fields] = values.delete_if { |key, value| ! ( Enterprise.fields.include?(key) || key =~ /^custom_field/ ) }
501 self.settings[:custom_enterprise_fields].each_pair do |key, value| 501 self.settings[:custom_enterprise_fields].each_pair do |key, value|
502 if value['required'] == 'true' 502 if value['required'] == 'true'
503 self.settings[:custom_enterprise_fields][key]['active'] = 'true' 503 self.settings[:custom_enterprise_fields][key]['active'] = 'true'
@@ -509,6 +509,16 @@ class Environment &lt; ActiveRecord::Base @@ -509,6 +509,16 @@ class Environment &lt; ActiveRecord::Base
509 end 509 end
510 end 510 end
511 511
  512 + def custom_enterprise_fields_customs()
  513 + custom_fields = []
  514 + self.settings[:custom_enterprise_fields].each{ |k,v| custom_fields << k if k =~ /^custom_field/ }
  515 + custom_fields
  516 + end
  517 +
  518 + def custom_enterprise_field_name(field)
  519 + self.settings[:custom_enterprise_fields][field]['name']
  520 + end
  521 +
512 def custom_enterprise_field(field, status) 522 def custom_enterprise_field(field, status)
513 if (custom_enterprise_fields[field] && custom_enterprise_fields[field][status] == 'true') 523 if (custom_enterprise_fields[field] && custom_enterprise_fields[field][status] == 'true')
514 return true 524 return true
@@ -539,8 +549,13 @@ class Environment &lt; ActiveRecord::Base @@ -539,8 +549,13 @@ class Environment &lt; ActiveRecord::Base
539 def custom_community_fields 549 def custom_community_fields
540 self.settings[:custom_community_fields].nil? ? {} : self.settings[:custom_community_fields] 550 self.settings[:custom_community_fields].nil? ? {} : self.settings[:custom_community_fields]
541 end 551 end
  552 +
542 def custom_community_fields=(values) 553 def custom_community_fields=(values)
543 - self.settings[:custom_community_fields] = values.delete_if { |key, value| ! Community.fields.include?(key) } 554 + self.settings[:custom_community_fields] = values.delete_if { |key, value|
  555 + ! ( Community.fields.include?(key) || key =~ /^custom_field/ )
  556 + }
  557 +
  558 +
544 self.settings[:custom_community_fields].each_pair do |key, value| 559 self.settings[:custom_community_fields].each_pair do |key, value|
545 if value['required'] == 'true' 560 if value['required'] == 'true'
546 self.settings[:custom_community_fields][key]['active'] = 'true' 561 self.settings[:custom_community_fields][key]['active'] = 'true'
@@ -552,6 +567,16 @@ class Environment &lt; ActiveRecord::Base @@ -552,6 +567,16 @@ class Environment &lt; ActiveRecord::Base
552 end 567 end
553 end 568 end
554 569
  570 + def custom_community_fields_customs()
  571 + custom_fields = []
  572 + self.settings[:custom_community_fields].each{ |k,v| custom_fields << k if k =~ /^custom_field/ }
  573 + custom_fields
  574 + end
  575 +
  576 + def custom_community_field_name(field)
  577 + self.settings[:custom_community_fields][field]['name']
  578 + end
  579 +
555 def custom_community_field(field, status) 580 def custom_community_field(field, status)
556 if (custom_community_fields[field] && custom_community_fields[field][status] == 'true') 581 if (custom_community_fields[field] && custom_community_fields[field][status] == 'true')
557 return true 582 return true
app/models/organization.rb
1 # Represents any organization of the system 1 # Represents any organization of the system
2 class Organization < Profile 2 class Organization < Profile
3 3
4 - attr_accessible :moderated_articles, :foundation_year, :contact_person, :acronym, :legal_form, :economic_activity, :management_information, :cnpj, :display_name, :enable_contact_us 4 + attr_accessible :moderated_articles, :foundation_year, :contact_person, :acronym, :legal_form, :economic_activity, :management_information, :cnpj, :display_name, :enable_contact_us #, :custom_fields
5 5
6 SEARCH_FILTERS += %w[ 6 SEARCH_FILTERS += %w[
7 more_popular 7 more_popular
@@ -13,6 +13,12 @@ class Organization &lt; Profile @@ -13,6 +13,12 @@ class Organization &lt; Profile
13 closed 13 closed
14 end 14 end
15 15
  16 + #settings_items :custom_fields
  17 +
  18 + #def custom_field_value(field)
  19 + # self.custom_fields[field]
  20 + #end
  21 +
16 before_save do |organization| 22 before_save do |organization|
17 organization.closed = true if !organization.public_profile? 23 organization.closed = true if !organization.public_profile?
18 end 24 end
app/models/person.rb
1 # A person is the profile of an user holding all relationships with the rest of the system 1 # A person is the profile of an user holding all relationships with the rest of the system
2 class Person < Profile 2 class Person < Profile
3 3
4 - attr_accessible :organization, :contact_information, :sex, :birth_date, :cell_phone, :comercial_phone, :jabber_id, :personal_website, :nationality, :address_reference, :district, :schooling, :schooling_status, :formation, :custom_formation, :area_of_study, :custom_area_of_study, :professional_activity, :organization_website 4 + attr_accessible :organization, :contact_information, :sex, :birth_date, :cell_phone, :comercial_phone, :jabber_id, :personal_website, :nationality, :address_reference, :district, :schooling, :schooling_status, :formation, :custom_formation, :area_of_study, :custom_area_of_study, :professional_activity, :organization_website #, :custom_fields
5 5
6 SEARCH_FILTERS += %w[ 6 SEARCH_FILTERS += %w[
7 more_popular 7 more_popular
@@ -205,6 +205,12 @@ class Person &lt; Profile @@ -205,6 +205,12 @@ class Person &lt; Profile
205 N_('Contact information'); N_('City'); N_('State'); N_('Country'); N_('Sex'); N_('Zip code'); N_('District'); N_('Address reference') 205 N_('Contact information'); N_('City'); N_('State'); N_('Country'); N_('Sex'); N_('Zip code'); N_('District'); N_('Address reference')
206 settings_items :photo, :contact_information, :sex, :city, :state, :country, :zip_code, :district, :address_reference 206 settings_items :photo, :contact_information, :sex, :city, :state, :country, :zip_code, :district, :address_reference
207 207
  208 + #settings_items :custom_fields
  209 +
  210 + #def custom_field_value(field)
  211 + # self.custom_fields[field]
  212 + #end
  213 +
208 extend SetProfileRegionFromCityState::ClassMethods 214 extend SetProfileRegionFromCityState::ClassMethods
209 set_profile_region_from_city_state 215 set_profile_region_from_city_state
210 216
app/models/profile.rb
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 # which by default is the one returned by Environment:default. 3 # which by default is the one returned by Environment:default.
4 class Profile < ActiveRecord::Base 4 class Profile < ActiveRecord::Base
5 5
6 - attr_accessible :name, :identifier, :public_profile, :nickname, :custom_footer, :custom_header, :address, :zip_code, :contact_phone, :image_builder, :description, :closed, :template_id, :environment, :lat, :lng, :is_template, :fields_privacy, :preferred_domain_id, :category_ids, :country, :city, :state, :national_region_code, :email, :contact_email, :redirect_l10n, :notification_time, :redirection_after_login 6 + attr_accessible :name, :identifier, :public_profile, :nickname, :custom_footer, :custom_header, :address, :zip_code, :contact_phone, :image_builder, :description, :closed, :template_id, :environment, :lat, :lng, :is_template, :fields_privacy, :preferred_domain_id, :category_ids, :country, :city, :state, :national_region_code, :email, :contact_email, :redirect_l10n, :notification_time, :redirection_after_login, :custom_fields
7 7
8 # use for internationalizable human type names in search facets 8 # use for internationalizable human type names in search facets
9 # reimplement on subclasses 9 # reimplement on subclasses
@@ -23,6 +23,12 @@ class Profile &lt; ActiveRecord::Base @@ -23,6 +23,12 @@ class Profile &lt; ActiveRecord::Base
23 23
24 SEARCH_DISPLAYS = %w[compact] 24 SEARCH_DISPLAYS = %w[compact]
25 25
  26 + settings_items :custom_fields, :default => {}
  27 +
  28 + def custom_field_value(key)
  29 + self.custom_fields[key]
  30 + end
  31 +
26 def self.default_search_display 32 def self.default_search_display
27 'compact' 33 'compact'
28 end 34 end
app/views/features/_manage_community_fields.html.erb
@@ -12,46 +12,73 @@ @@ -12,46 +12,73 @@
12 <td> 12 <td>
13 <%= _("Check/Uncheck All")%> 13 <%= _("Check/Uncheck All")%>
14 </td> 14 </td>
15 - <td> 15 + <td align="center">
16 <input type="checkbox" id="community_active" /> 16 <input type="checkbox" id="community_active" />
17 </td> 17 </td>
18 - <td> 18 + <td align="center">
19 <input type="checkbox" id="community_required" /> 19 <input type="checkbox" id="community_required" />
20 </td> 20 </td>
21 - <td> 21 + <td align="center">
22 <input type="checkbox" id="community_signup" /> 22 <input type="checkbox" id="community_signup" />
23 </td> 23 </td>
  24 + <td>&nbsp;</td>
24 </tr> 25 </tr>
25 26
26 <% @community_fields.each do |field| %> 27 <% @community_fields.each do |field| %>
27 <tr> 28 <tr>
28 <td><label for="community_fields[<%= field %>][active]"><%= _(field.humanize) %></label></td> 29 <td><label for="community_fields[<%= field %>][active]"><%= _(field.humanize) %></label></td>
29 -  
30 - <td> 30 + <td align="center">
31 <%= hidden_field_tag "community_fields[#{field}][active]", false %> 31 <%= hidden_field_tag "community_fields[#{field}][active]", false %>
32 <%= check_box_tag "community_fields[#{field}][active]", true, environment.custom_community_field(field, 'active'), :onclick => "active_action(this, 'community_fields[#{field}][required]', 'community_fields[#{field}][signup]')" %> 32 <%= check_box_tag "community_fields[#{field}][active]", true, environment.custom_community_field(field, 'active'), :onclick => "active_action(this, 'community_fields[#{field}][required]', 'community_fields[#{field}][signup]')" %>
33 </td> 33 </td>
34 - <td> 34 + <td align="center">
35 <%= hidden_field_tag "community_fields[#{field}][required]", false %> 35 <%= hidden_field_tag "community_fields[#{field}][required]", false %>
36 <%= check_box_tag "community_fields[#{field}][required]", true, environment.custom_community_field(field, 'required'), :onclick => "required_action('community_fields[#{field}][active]','community_fields[#{field}][required]', 'community_fields[#{field}][signup]')" %> 36 <%= check_box_tag "community_fields[#{field}][required]", true, environment.custom_community_field(field, 'required'), :onclick => "required_action('community_fields[#{field}][active]','community_fields[#{field}][required]', 'community_fields[#{field}][signup]')" %>
37 </td> 37 </td>
38 - <td> 38 + <td align="center">
39 <%= hidden_field_tag "community_fields[#{field}][signup]", false %> 39 <%= hidden_field_tag "community_fields[#{field}][signup]", false %>
40 <%= check_box_tag "community_fields[#{field}][signup]", true, environment.custom_community_field(field, 'signup'), :onclick => "signup_action('community_fields[#{field}][active]','community_fields[#{field}][required]', 'community_fields[#{field}][signup]')" %> 40 <%= check_box_tag "community_fields[#{field}][signup]", true, environment.custom_community_field(field, 'signup'), :onclick => "signup_action('community_fields[#{field}][active]','community_fields[#{field}][required]', 'community_fields[#{field}][signup]')" %>
41 </td> 41 </td>
  42 + </tr>
  43 + <% end %>
42 44
  45 + <% @custom_community_fields.each do |field| %>
  46 + <tr>
  47 + <td>
  48 + <%= text_field_tag "community_fields[#{field}][name]", environment.custom_community_field_name(field) %>
  49 + </td>
  50 + <td align="center">
  51 + <%= hidden_field_tag "community_fields[#{field}][active]", false %>
  52 + <%= check_box_tag "community_fields[#{field}][active]", true, environment.custom_community_field(field, 'active'), :onclick => "active_action(this, 'community_fields[#{field}][required]', 'community_fields[#{field}][signup]')" %>
  53 + </td>
  54 + <td align="center">
  55 + <%= hidden_field_tag "community_fields[#{field}][required]", false %>
  56 + <%= check_box_tag "community_fields[#{field}][required]", true, environment.custom_community_field(field, 'required'), :onclick => "required_action('community_fields[#{field}][active]','community_fields[#{field}][required]', 'community_fields[#{field}][signup]')" %>
  57 + </td>
  58 + <td align="center">
  59 + <%= hidden_field_tag "community_fields[#{field}][signup]", false %>
  60 + <%= check_box_tag "community_fields[#{field}][signup]", true, environment.custom_community_field(field, 'signup'), :onclick => "required_action('community_fields[#{field}][active]','community_fields[#{field}][required]', 'community_fields[#{field}][signup]')" %>
  61 + </td>
  62 + <td>
  63 + <a href="#" class="button icon-delete delete-link-list-row" title="Delete" onclick="return remove_custom_field(this);"><span>Delete</span></a>
  64 + </td>
43 </tr> 65 </tr>
44 <% end %> 66 <% end %>
  67 +
45 </table> 68 </table>
46 69
  70 +<br />
  71 +
  72 +<%= link_to_function(_('Add field'), "add_new_field('community');", :class => 'button icon-add with-text') %>
  73 +
47 <script type='text/javascript'> 74 <script type='text/javascript'>
48 - var trs = jQuery('#community_fields_conf tr');  
49 - var tr, td2;  
50 - for ( var i=2; tr=trs[i]; i++ ) {  
51 - if ( td2 = tr.getElementsByTagName('td')[1] ) {  
52 - td2.getElementsByTagName('input')[1].onclick();  
53 - }  
54 - } 75 + //var trs = jQuery('#community_fields_conf tr');
  76 + //var tr, td2;
  77 + //for ( var i=2; tr=trs[i]; i++ ) {
  78 + // if ( td2 = tr.getElementsByTagName('td')[1] ) {
  79 + // td2.getElementsByTagName('input')[1].onclick();
  80 + // }
  81 + //}
55 </script> 82 </script>
56 83
57 <div> 84 <div>
app/views/features/_manage_enterprise_fields.html.erb
@@ -12,13 +12,13 @@ @@ -12,13 +12,13 @@
12 <td> 12 <td>
13 <%= _("Check/Uncheck All")%> 13 <%= _("Check/Uncheck All")%>
14 </td> 14 </td>
15 - <td> 15 + <td align="center">
16 <input type="checkbox" id="enterprise_active" /> 16 <input type="checkbox" id="enterprise_active" />
17 </td> 17 </td>
18 - <td> 18 + <td align="center">
19 <input type="checkbox" id="enterprise_required" /> 19 <input type="checkbox" id="enterprise_required" />
20 </td> 20 </td>
21 - <td> 21 + <td align="center">
22 <input type="checkbox" id="enterprise_signup" /> 22 <input type="checkbox" id="enterprise_signup" />
23 </td> 23 </td>
24 </tr> 24 </tr>
@@ -27,31 +27,59 @@ @@ -27,31 +27,59 @@
27 <tr> 27 <tr>
28 28
29 <td><label for="enterprise_fields[<%= field %>][active]"><%= _(field.humanize) %></label></td> 29 <td><label for="enterprise_fields[<%= field %>][active]"><%= _(field.humanize) %></label></td>
30 - <td> 30 + <td align="center">
31 <%= hidden_field_tag "enterprise_fields[#{field}][active]", false %> 31 <%= hidden_field_tag "enterprise_fields[#{field}][active]", false %>
32 <%= check_box_tag "enterprise_fields[#{field}][active]", true, environment.custom_enterprise_field(field, 'active'), :onclick => "active_action(this, 'enterprise_fields[#{field}][required]', 'enterprise_fields[#{field}][signup]')" %> 32 <%= check_box_tag "enterprise_fields[#{field}][active]", true, environment.custom_enterprise_field(field, 'active'), :onclick => "active_action(this, 'enterprise_fields[#{field}][required]', 'enterprise_fields[#{field}][signup]')" %>
33 </td> 33 </td>
34 - <td> 34 + <td align="center">
35 <%= hidden_field_tag "enterprise_fields[#{field}][required]", false %> 35 <%= hidden_field_tag "enterprise_fields[#{field}][required]", false %>
36 <%= check_box_tag "enterprise_fields[#{field}][required]", true, environment.custom_enterprise_field(field, 'required'), :onclick => "required_action('enterprise_fields[#{field}][active]','enterprise_fields[#{field}][required]', 'enterprise_fields[#{field}][signup]')" %> 36 <%= check_box_tag "enterprise_fields[#{field}][required]", true, environment.custom_enterprise_field(field, 'required'), :onclick => "required_action('enterprise_fields[#{field}][active]','enterprise_fields[#{field}][required]', 'enterprise_fields[#{field}][signup]')" %>
37 </td> 37 </td>
38 - <td> 38 + <td align="center">
39 <%= hidden_field_tag "enterprise_fields[#{field}][signup]", false %> 39 <%= hidden_field_tag "enterprise_fields[#{field}][signup]", false %>
40 <%= check_box_tag "enterprise_fields[#{field}][signup]", true, environment.custom_enterprise_field(field, 'signup'), :onclick => "signup_action('enterprise_fields[#{field}][active]','enterprise_fields[#{field}][required]', 'enterprise_fields[#{field}][signup]')" %> 40 <%= check_box_tag "enterprise_fields[#{field}][signup]", true, environment.custom_enterprise_field(field, 'signup'), :onclick => "signup_action('enterprise_fields[#{field}][active]','enterprise_fields[#{field}][required]', 'enterprise_fields[#{field}][signup]')" %>
41 </td> 41 </td>
42 42
43 </tr> 43 </tr>
44 <% end %> 44 <% end %>
  45 +
  46 + <% @custom_enterprise_fields.each do |field| %>
  47 + <tr>
  48 + <td>
  49 + <%= text_field_tag "enterprise_fields[#{field}][name]", environment.custom_enterprise_field_name(field) %>
  50 + </td>
  51 + <td align="center">
  52 + <%= hidden_field_tag "enterprise_fields[#{field}][active]", false %>
  53 + <%= check_box_tag "enterprise_fields[#{field}][active]", true, environment.custom_enterprise_field(field, 'active'), :onclick => "active_action(this, 'enterprise_fields[#{field}][required]', 'enterprise_fields[#{field}][signup]')" %>
  54 + </td>
  55 + <td align="center">
  56 + <%= hidden_field_tag "enterprise_fields[#{field}][required]", false %>
  57 + <%= check_box_tag "enterprise_fields[#{field}][required]", true, environment.custom_enterprise_field(field, 'required'), :onclick => "required_action('enterprise_fields[#{field}][active]','enterprise_fields[#{field}][required]', 'enterprise_fields[#{field}][signup]')" %>
  58 + </td>
  59 + <td align="center">
  60 + <%= hidden_field_tag "enterprise_fields[#{field}][signup]", false %>
  61 + <%= check_box_tag "enterprise_fields[#{field}][signup]", true, environment.custom_enterprise_field(field, 'signup'), :onclick => "required_action('enterprise_fields[#{field}][active]','enterprise_fields[#{field}][required]', 'enterprise_fields[#{field}][signup]')" %>
  62 + </td>
  63 + <td>
  64 + <a href="#" class="button icon-delete delete-link-list-row" title="Delete" onclick="return remove_custom_field(this);"><span>Delete</span></a>
  65 + </td>
  66 + </tr>
  67 + <% end %>
  68 +
45 </table> 69 </table>
46 70
  71 +<br />
  72 +
  73 +<%= link_to_function(_('Add field'), "add_new_field('enterprise');", :class => 'button icon-add with-text') %>
  74 +
47 <script type='text/javascript'> 75 <script type='text/javascript'>
48 - var trs = jQuery('#enterprise_fields_conf tr');  
49 - var tr, td2;  
50 - for ( var i=2; tr=trs[i]; i++ ) {  
51 - if ( td2 = tr.getElementsByTagName('td')[1] ) {  
52 - td2.getElementsByTagName('input')[1].onclick();  
53 - }  
54 - } 76 + //var trs = jQuery('#enterprise_fields_conf tr');
  77 + //var tr, td2;
  78 + //for ( var i=2; tr=trs[i]; i++ ) {
  79 + // if ( td2 = tr.getElementsByTagName('td')[1] ) {
  80 + // td2.getElementsByTagName('input')[1].onclick();
  81 + // }
  82 + //}
55 </script> 83 </script>
56 84
57 <div> 85 <div>
app/views/features/_manage_person_fields.html.erb
@@ -71,19 +71,18 @@ @@ -71,19 +71,18 @@
71 71
72 <br /> 72 <br />
73 73
74 -<%= link_to_function(_('Add field'), 'add_new_field();', :class => 'button icon-add with-text') %>  
75 -  
76 -<%= javascript_include_tag 'edit-profile-fields.js' %>  
77 -  
78 -<script type='text/javascript'>// <!--  
79 - var trs = jQuery('#person_fields_conf tr');  
80 -  
81 - var tr, td2;  
82 - for ( var i=2; tr=trs[i]; i++ ) {  
83 - if ( td2 = tr.getElementsByTagName('td')[1] ) {  
84 - td2.getElementsByTagName('input')[1].onclick();  
85 - }  
86 - } 74 +<%= link_to_function(_('Add field'), "add_new_field('person');", :class => 'button icon-add with-text') %>
  75 +
  76 +<script type='text/javascript'>
  77 + // <!--
  78 + //var trs = jQuery('#person_fields_conf tr');
  79 +
  80 + //var tr, td2;
  81 + //for ( var i=2; tr=trs[i]; i++ ) {
  82 + // if ( td2 = tr.getElementsByTagName('td')[1] ) {
  83 + // td2.getElementsByTagName('input')[1].onclick();
  84 + // }
  85 + //}
87 // --> 86 // -->
88 </script> 87 </script>
89 88
app/views/profile_editor/_organization.html.erb
@@ -60,8 +60,12 @@ @@ -60,8 +60,12 @@
60 </div> 60 </div>
61 <% end %> 61 <% end %>
62 62
  63 +<hr />
  64 +
63 <%= render :partial => 'shared/organization_custom_fields', :locals => { :f => f, :object_name => 'profile_data', :profile => @profile } %> 65 <%= render :partial => 'shared/organization_custom_fields', :locals => { :f => f, :object_name => 'profile_data', :profile => @profile } %>
64 66
  67 +<hr />
  68 +
65 <%= labelled_check_box(_('Enable "contact us"'), 'profile_data[enable_contact_us]', "1", @profile.enable_contact_us) if @profile.enterprise? %> 69 <%= labelled_check_box(_('Enable "contact us"'), 'profile_data[enable_contact_us]', "1", @profile.enable_contact_us) if @profile.enterprise? %>
66 70
67 <%= render :partial => 'moderation', :locals => { :profile => @profile } %> 71 <%= render :partial => 'moderation', :locals => { :profile => @profile } %>
app/views/profile_editor/_person_form.html.erb
@@ -7,6 +7,17 @@ @@ -7,6 +7,17 @@
7 </div> 7 </div>
8 <% end %> 8 <% end %>
9 9
  10 +<% @environment.custom_person_fields_customs.each { |k| %>
  11 + <% optional_field(@person, k) do %>
  12 + <div class="formfieldline">
  13 + <%= label_tag environment.custom_person_field_name(k), nil, class: 'formlabel' %>
  14 + <div class="formfield type-select">
  15 + <%= text_field_tag("profile_data[custom_fields][#{k}]", @person.custom_field_value(k)) %>
  16 + </div>
  17 + </div>
  18 + <% end %>
  19 +<% } %>
  20 +
10 <%= optional_field(@person, 'description', f.text_area(:description, :rows => 5, :rel => _('Description'))) %> 21 <%= optional_field(@person, 'description', f.text_area(:description, :rows => 5, :rel => _('Description'))) %>
11 <%= optional_field(@person, 'preferred_domain', select_preferred_domain(:profile_data)) %> 22 <%= optional_field(@person, 'preferred_domain', select_preferred_domain(:profile_data)) %>
12 <%= optional_field(@person, 'contact_information', f.text_field(:contact_information, :rel => _('Contact information'))) %> 23 <%= optional_field(@person, 'contact_information', f.text_field(:contact_information, :rel => _('Contact information'))) %>
@@ -65,13 +76,3 @@ @@ -65,13 +76,3 @@
65 <%= optional_field(@person, 'organization', f.text_field(:organization, :rel => _('Organization'))) %> 76 <%= optional_field(@person, 'organization', f.text_field(:organization, :rel => _('Organization'))) %>
66 <%= optional_field(@person, 'organization_website', f.text_field(:organization_website, :rel => _('Organization website'))) %> 77 <%= optional_field(@person, 'organization_website', f.text_field(:organization_website, :rel => _('Organization website'))) %>
67 78
68 -<hr />  
69 -  
70 -<% @environment.custom_person_fields_customs.each { |k| %>  
71 - <br />  
72 - <%= label_tag environment.custom_person_field_name(k) %>  
73 - <%= optional_field(@person, k, text_field_tag("profile_data[#{k}]")) %>  
74 - <br />  
75 -<% } %>  
76 -  
77 -<hr />  
app/views/shared/_organization_custom_fields.html.erb
@@ -30,3 +30,22 @@ @@ -30,3 +30,22 @@
30 <%= optional_field(profile, 'foundation_year', f.text_field(:foundation_year)) %> 30 <%= optional_field(profile, 'foundation_year', f.text_field(:foundation_year)) %>
31 <% end %> 31 <% end %>
32 <%= javascript_include_tag('city_state_validation') %> 32 <%= javascript_include_tag('city_state_validation') %>
  33 +
  34 +<hr />
  35 +
  36 +<% if profile.community? %>
  37 +
  38 + <% @environment.custom_community_fields_customs.each { |key| %>
  39 + <% #raise @environment.custom_community_fields_customs.inspect %>
  40 + <% optional_field(profile, key) do %>
  41 + <div class="formfieldline">
  42 + <%= label_tag environment.custom_community_field_name(key), nil, class: 'formlabel' %>
  43 + <div class="formfield type-select">
  44 + <%= text_field_tag("profile_data[custom_fields][#{key}]", profile.custom_field_value(key)) %>
  45 + </div>
  46 + </div>
  47 + <% end %>
  48 + <% } %>
  49 +<% end %>
  50 +
  51 +<hr />
public/javascripts/edit-profile-fields.js
@@ -1,105 +0,0 @@ @@ -1,105 +0,0 @@
1 -function send_ajax(source_url) {  
2 - jQuery(".link-address").autocomplete({  
3 - source : function(request, response){  
4 - jQuery.ajax({  
5 - type: "GET",  
6 - url: source_url,  
7 - data: {query: request.term},  
8 - success: function(result){  
9 - response(result);  
10 - },  
11 - error: function(ajax, stat, errorThrown) {  
12 - console.log('Link not found : ' + errorThrown);  
13 - }  
14 - });  
15 - },  
16 -  
17 - minLength: 3  
18 - });  
19 -}  
20 -  
21 -function new_field_action(){  
22 - send_ajax(jQuery("#page_url").val());  
23 -  
24 - jQuery(".delete-link-list-row").click(function(){  
25 - jQuery(this).parent().parent().remove();  
26 - return false;  
27 - });  
28 -  
29 - jQuery(document).scrollTop(jQuery('#dropable-link-list').scrollTop());  
30 -}  
31 -  
32 -function remove_custom_field(element) {  
33 - jQuery(element).parent().parent().remove();  
34 - return false;  
35 -}  
36 -  
37 -function add_new_field() {  
38 -  
39 - last_row = jQuery('#person_fields_conf > tbody:last tr:last');  
40 -  
41 - if ( last_row.find('label').length == 1 ) {  
42 -  
43 - var row = '<tr>' +  
44 - '<td>' +  
45 - '<input id="person_fields_custom_field_1_name" maxlength="20" name="person_fields[custom_field_1][name]" type="text" />' +  
46 - '</td>' +  
47 - '<td align="center"> ' +  
48 - '<input id="person_fields_custom_field_1_active" name="person_fields[custom_field_1][active]" type="hidden" value="false" /> ' +  
49 - '<input id="person_fields_custom_field_1_active" name="person_fields[custom_field_1][active]" type="checkbox" value="false" /> ' +  
50 - '</td> ' +  
51 - '<td align="center"> ' +  
52 - '<input id="person_fields_custom_field_1_required" name="person_fields[custom_field_1][required]" type="hidden" value="false" /> ' +  
53 - '<input id="person_fields_custom_field_1_required" name="person_fields[custom_field_1][required]" type="checkbox" value="true" /> ' +  
54 - '</td> ' +  
55 - '<td align="center"> ' +  
56 - '<input id="person_fields_custom_field_1_signup" name="person_fields[custom_field_1][signup]" type="hidden" value="false" /> ' +  
57 - '<input id="person_fields_custom_field_1_signup" name="person_fields[custom_field_1][signup]" type="checkbox" value="true" /> ' +  
58 - '</td> ' +  
59 - '<td> ' +  
60 - '<a href="#" class="button icon-delete delete-link-list-row" title="Delete" onclick="return remove_custom_field(this);"><span>Delete</span></a> ' +  
61 - '</td> ' +  
62 - '</tr>';  
63 -  
64 - jQuery('#person_fields_conf > tbody:last').append(row);  
65 -  
66 - }  
67 - else {  
68 -  
69 - var new_field = jQuery('#person_fields_conf > tbody:last tr:last').clone();  
70 -  
71 - var field = new_field.find('input');  
72 - //var chkboxes = field.filter(':checkbox');  
73 -  
74 - var re = new RegExp( '\\d', 'g' );  
75 - var id = field.attr('id').match(re);  
76 - var next_id = parseInt(id) + 1;  
77 -  
78 - jQuery.each( field, function( k, v ) {  
79 - v.id = v.id.replace(id, next_id);  
80 - v.name = v.name.replace(id, next_id);  
81 - if (v.type == 'text') { v.value = '' }  
82 - if (v.type == 'checkbox') { v.value = true; }  
83 - if (v.type == 'hidden') { v.value = false; }  
84 -  
85 - });  
86 -  
87 - //field.val('');  
88 -  
89 - //chkboxes.attr('onclick', chkboxes.attr('onclick').replace(id, next_id));  
90 - //console.log( chkboxes );  
91 -  
92 - jQuery('#person_fields_conf > tbody').append(new_field);  
93 -  
94 - }  
95 -  
96 -}  
97 -  
98 -jQuery(document).ready(function(){  
99 - new_field_action();  
100 -  
101 - //jQuery("#dropable-link-list").sortable({  
102 - // revert: true,  
103 - // axis: "y"  
104 - //});  
105 -});  
public/javascripts/manage-fields.js
  1 +/**
1 function update_active(name_active, name_required, name_signup) { 2 function update_active(name_active, name_required, name_signup) {
2 var required = jQuery("input[name='" + name_required + "']")[1] 3 var required = jQuery("input[name='" + name_required + "']")[1]
3 var signup = jQuery("input[name='" + name_signup + "']")[1] 4 var signup = jQuery("input[name='" + name_signup + "']")[1]
@@ -6,15 +7,16 @@ function update_active(name_active, name_required, name_signup) { @@ -6,15 +7,16 @@ function update_active(name_active, name_required, name_signup) {
6 if(required.checked || signup.checked) 7 if(required.checked || signup.checked)
7 active.checked = true 8 active.checked = true
8 } 9 }
9 -  
10 function active_action(obj_active, name_required, name_signup) { 10 function active_action(obj_active, name_required, name_signup) {
11 - var required = jQuery("input[name='" + name_required + "']")[0]  
12 - var signup = jQuery("input[name='" + name_signup + "']")[0] 11 + console.log( 'teste1' );
  12 + //var required = jQuery("input[name='" + name_required + "']")[0]
  13 + //var signup = jQuery("input[name='" + name_signup + "']")[0]
13 14
14 - required.disabled = signup.disabled = !obj_active.checked 15 + //required.disabled = signup.disabled = !obj_active.checked
15 } 16 }
16 17
17 function required_action(name_active, name_required, name_signup) { 18 function required_action(name_active, name_required, name_signup) {
  19 + console.log( 'teste' );
18 var obj_required = jQuery("input[name='" + name_required + "']")[1] 20 var obj_required = jQuery("input[name='" + name_required + "']")[1]
19 21
20 if(obj_required.checked) { 22 if(obj_required.checked) {
@@ -36,7 +38,6 @@ function signup_action(name_active, name_required, name_signup) { @@ -36,7 +38,6 @@ function signup_action(name_active, name_required, name_signup) {
36 update_active(name_active, name_required, name_signup) 38 update_active(name_active, name_required, name_signup)
37 } 39 }
38 40
39 -  
40 jQuery(document).ready(function(){ 41 jQuery(document).ready(function(){
41 function check_fields(check, table_id, start) { 42 function check_fields(check, table_id, start) {
42 var checkboxes = jQuery("#" + table_id + " tbody tr td input[type='checkbox']") 43 var checkboxes = jQuery("#" + table_id + " tbody tr td input[type='checkbox']")
@@ -81,3 +82,114 @@ jQuery(document).ready(function(){ @@ -81,3 +82,114 @@ jQuery(document).ready(function(){
81 } 82 }
82 }) 83 })
83 }) 84 })
  85 +**/
  86 +
  87 +/** ##################################################################### **/
  88 +
  89 +function send_ajax(source_url) {
  90 + jQuery(".link-address").autocomplete({
  91 + source : function(request, response){
  92 + jQuery.ajax({
  93 + type: "GET",
  94 + url: source_url,
  95 + data: {query: request.term},
  96 + success: function(result){
  97 + response(result);
  98 + },
  99 + error: function(ajax, stat, errorThrown) {
  100 + console.log('Link not found : ' + errorThrown);
  101 + }
  102 + });
  103 + },
  104 +
  105 + minLength: 3
  106 + });
  107 +}
  108 +
  109 +function new_field_action(){
  110 + send_ajax(jQuery("#page_url").val());
  111 +
  112 + jQuery(".delete-link-list-row").click(function(){
  113 + jQuery(this).parent().parent().remove();
  114 + return false;
  115 + });
  116 +
  117 + jQuery(document).scrollTop(jQuery('#dropable-link-list').scrollTop());
  118 +}
  119 +
  120 +function remove_custom_field(element) {
  121 + jQuery(element).parent().parent().remove();
  122 + return false;
  123 +}
  124 +
  125 +function add_new_field(profile_type) {
  126 +
  127 + console.log( profile_type );
  128 +
  129 + last_row = jQuery('#' + profile_type + '_fields_conf > tbody:last tr:last');
  130 +
  131 + if ( last_row.find('label').length == 1 ) {
  132 +
  133 + var row = '<tr>' +
  134 + '<td>' +
  135 + '<input id="' + profile_type + '_fields_custom_field_1_name" maxlength="20" name="' + profile_type + '_fields[custom_field_1][name]" type="text" />' +
  136 + '</td>' +
  137 + '<td align="center"> ' +
  138 + '<input id="' + profile_type + '_fields_custom_field_1_active" name="' + profile_type + '_fields[custom_field_1][active]" type="hidden" value="false" /> ' +
  139 + '<input id="' + profile_type + '_fields_custom_field_1_active" name="' + profile_type + '_fields[custom_field_1][active]" type="checkbox" value="false" /> ' +
  140 + '</td> ' +
  141 + '<td align="center"> ' +
  142 + '<input id="' + profile_type + '_fields_custom_field_1_required" name="' + profile_type + '_fields[custom_field_1][required]" type="hidden" value="false" /> ' +
  143 + '<input id="' + profile_type + '_fields_custom_field_1_required" name="' + profile_type + '_fields[custom_field_1][required]" type="checkbox" value="true" /> ' +
  144 + '</td> ' +
  145 + '<td align="center"> ' +
  146 + '<input id="' + profile_type + '_fields_custom_field_1_signup" name="' + profile_type + '_fields[custom_field_1][signup]" type="hidden" value="false" /> ' +
  147 + '<input id="' + profile_type + '_fields_custom_field_1_signup" name="' + profile_type + '_fields[custom_field_1][signup]" type="checkbox" value="true" /> ' +
  148 + '</td> ' +
  149 + '<td> ' +
  150 + '<a href="#" class="button icon-delete delete-link-list-row" title="Delete" onclick="return remove_custom_field(this);"><span>Delete</span></a> ' +
  151 + '</td> ' +
  152 + '</tr>';
  153 +
  154 + jQuery('#' + profile_type + '_fields_conf > tbody:last').append(row);
  155 +
  156 + }
  157 + else {
  158 +
  159 + var new_field = jQuery('#' + profile_type + '_fields_conf > tbody:last tr:last').clone();
  160 +
  161 + var field = new_field.find('input');
  162 + //var chkboxes = field.filter(':checkbox');
  163 +
  164 + var re = new RegExp( '\\d', 'g' );
  165 + var id = field.attr('id').match(re);
  166 + var next_id = parseInt(id) + 1;
  167 +
  168 + jQuery.each( field, function( k, v ) {
  169 + v.id = v.id.replace(id, next_id);
  170 + v.name = v.name.replace(id, next_id);
  171 + if (v.type == 'text') { v.value = '' }
  172 + if (v.type == 'checkbox') { v.value = true; }
  173 + if (v.type == 'hidden') { v.value = false; }
  174 +
  175 + });
  176 +
  177 + //field.val('');
  178 +
  179 + //chkboxes.attr('onclick', chkboxes.attr('onclick').replace(id, next_id));
  180 + //console.log( chkboxes );
  181 +
  182 + jQuery('#' + profile_type + '_fields_conf > tbody').append(new_field);
  183 +
  184 + }
  185 +
  186 +}
  187 +
  188 +jQuery(document).ready(function(){
  189 + new_field_action();
  190 +
  191 + //jQuery("#dropable-link-list").sortable({
  192 + // revert: true,
  193 + // axis: "y"
  194 + //});
  195 +});