Commit 6ccbcfa668d993c2a63ee668c5f41b1182f4f0bb

Authored by Rodrigo Souto
1 parent d8e061ef

profile-suggestions: final adjustements

app/controllers/my_profile/friends_controller.rb
@@ -27,7 +27,7 @@ class FriendsController < MyProfileController @@ -27,7 +27,7 @@ class FriendsController < MyProfileController
27 if @person && request.post? 27 if @person && request.post?
28 profile.remove_suggestion(@person) 28 profile.remove_suggestion(@person)
29 @suggestions = profile.profile_suggestions.of_person.enabled.includes(:suggestion).limit(per_page) 29 @suggestions = profile.profile_suggestions.of_person.enabled.includes(:suggestion).limit(per_page)
30 - render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :friends_suggestions } 30 + render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :friends_suggestions, :per_page => params[:per_page] || per_page }
31 end 31 end
32 end 32 end
33 33
@@ -45,7 +45,7 @@ class FriendsController < MyProfileController @@ -45,7 +45,7 @@ class FriendsController < MyProfileController
45 45
46 class << self 46 class << self
47 def per_page 47 def per_page
48 - 10 48 + 12
49 end 49 end
50 end 50 end
51 def per_page 51 def per_page
app/controllers/my_profile/memberships_controller.rb
@@ -45,11 +45,12 @@ class MembershipsController &lt; MyProfileController @@ -45,11 +45,12 @@ class MembershipsController &lt; MyProfileController
45 45
46 def remove_suggestion 46 def remove_suggestion
47 @community = profile.suggested_communities.find_by_identifier(params[:id]) 47 @community = profile.suggested_communities.find_by_identifier(params[:id])
  48 + custom_per_page = params[:per_page] || per_page
48 redirect_to :action => 'suggest' unless @community 49 redirect_to :action => 'suggest' unless @community
49 if @community && request.post? 50 if @community && request.post?
50 profile.remove_suggestion(@community) 51 profile.remove_suggestion(@community)
51 - @suggestions = profile.profile_suggestions.of_community.enabled.includes(:suggestion).limit(per_page)  
52 - render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :communities_suggestions } 52 + @suggestions = profile.profile_suggestions.of_community.enabled.includes(:suggestion).limit(custom_per_page)
  53 + render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :communities_suggestions, :per_page => custom_per_page}
53 end 54 end
54 end 55 end
55 56
@@ -66,7 +67,7 @@ class MembershipsController &lt; MyProfileController @@ -66,7 +67,7 @@ class MembershipsController &lt; MyProfileController
66 protected 67 protected
67 68
68 def per_page 69 def per_page
69 - 10 70 + 12
70 end 71 end
71 72
72 end 73 end
app/models/communities_block.rb
@@ -16,7 +16,7 @@ class CommunitiesBlock &lt; ProfileListBlock @@ -16,7 +16,7 @@ class CommunitiesBlock &lt; ProfileListBlock
16 16
17 def suggestions 17 def suggestions
18 return nil unless owner.kind_of?(Profile) 18 return nil unless owner.kind_of?(Profile)
19 - owner.profile_suggestions.of_community.enabled.limit(limit).includes(:suggestion) 19 + owner.profile_suggestions.of_community.enabled.limit(3).includes(:suggestion)
20 end 20 end
21 21
22 def footer 22 def footer
app/models/person.rb
@@ -66,7 +66,7 @@ class Person &lt; Profile @@ -66,7 +66,7 @@ class Person &lt; Profile
66 has_and_belongs_to_many :acepted_forums, :class_name => 'Forum', :join_table => 'terms_forum_people' 66 has_and_belongs_to_many :acepted_forums, :class_name => 'Forum', :join_table => 'terms_forum_people'
67 has_and_belongs_to_many :articles_with_access, :class_name => 'Article', :join_table => 'article_privacy_exceptions' 67 has_and_belongs_to_many :articles_with_access, :class_name => 'Article', :join_table => 'article_privacy_exceptions'
68 68
69 - has_many :profile_suggestions, :foreign_key => :person_id, :order => 'id ASC', :dependent => :destroy 69 + has_many :profile_suggestions, :foreign_key => :person_id, :order => 'score DESC', :dependent => :destroy
70 has_many :suggested_people, :through => :profile_suggestions, :source => :suggestion, :conditions => ['profile_suggestions.suggestion_type = ? AND profile_suggestions.enabled = ?', 'Person', true] 70 has_many :suggested_people, :through => :profile_suggestions, :source => :suggestion, :conditions => ['profile_suggestions.suggestion_type = ? AND profile_suggestions.enabled = ?', 'Person', true]
71 has_many :suggested_communities, :through => :profile_suggestions, :source => :suggestion, :conditions => ['profile_suggestions.suggestion_type = ? AND profile_suggestions.enabled = ?', 'Community', true] 71 has_many :suggested_communities, :through => :profile_suggestions, :source => :suggestion, :conditions => ['profile_suggestions.suggestion_type = ? AND profile_suggestions.enabled = ?', 'Community', true]
72 72
app/views/blocks/communities.html.erb
@@ -10,10 +10,10 @@ @@ -10,10 +10,10 @@
10 <div class='suggestions-block common-profile-list-block'> 10 <div class='suggestions-block common-profile-list-block'>
11 <h4 class='block-subtitle'><%= _('Some suggestions for you') %></h4> 11 <h4 class='block-subtitle'><%= _('Some suggestions for you') %></h4>
12 <div class='profiles-suggestions'> 12 <div class='profiles-suggestions'>
13 - <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => suggestions, :collection => :communities_suggestions } %> 13 + <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => suggestions, :collection => :communities_suggestions, :per_page => 3 } %>
14 </div> 14 </div>
15 <div class='more-suggestions'> 15 <div class='more-suggestions'>
16 - <%= link_to _('See more suggestions'), profile.communities_suggestions_url %> 16 + <%= link_to _('See all suggestions'), profile.communities_suggestions_url %>
17 </div> 17 </div>
18 </div> 18 </div>
19 <% end %> 19 <% end %>
app/views/friends/index.html.erb
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
30 <br style="clear:both" /> 30 <br style="clear:both" />
31 <h2><%= _("Friends suggestions") %></h2> 31 <h2><%= _("Friends suggestions") %></h2>
32 <div class="profiles-suggestions"> 32 <div class="profiles-suggestions">
33 - <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :friends_suggestions } %> 33 + <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :friends_suggestions, :per_page => 12 } %>
34 </div> 34 </div>
35 <% end %> 35 <% end %>
36 36
app/views/friends/suggest.html.erb
@@ -5,5 +5,5 @@ @@ -5,5 +5,5 @@
5 <% end %> 5 <% end %>
6 6
7 <div class="profiles-suggestions"> 7 <div class="profiles-suggestions">
8 - <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :friends_suggestions } %> 8 + <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :friends_suggestions, :per_page => 12 } %>
9 </div> 9 </div>
app/views/memberships/suggest.html.erb
@@ -5,5 +5,5 @@ @@ -5,5 +5,5 @@
5 <% end %> 5 <% end %>
6 6
7 <div class="profiles-suggestions"> 7 <div class="profiles-suggestions">
8 - <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :communities_suggestions } %> 8 + <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :communities_suggestions, :per_page => 12 } %>
9 </div> 9 </div>
app/views/shared/_profile_suggestions_list.html.erb
  1 +<% per_page = defined?(:per_page) ? per_page : nil %>
  2 +
1 <% if suggestions.empty? %> 3 <% if suggestions.empty? %>
2 <p> 4 <p>
3 <em> 5 <em>
@@ -24,13 +26,13 @@ @@ -24,13 +26,13 @@
24 <div class="controll"> 26 <div class="controll">
25 <% if collection == :friends_suggestions %> 27 <% if collection == :friends_suggestions %>
26 <%= link_to 'x', 28 <%= link_to 'x',
27 - { :controller => 'friends', :action => 'remove_suggestion', :id => s.suggestion.identifier }, 29 + { :controller => 'friends', :action => 'remove_suggestion', :id => s.suggestion.identifier, :per_page => per_page },
28 :class => 'remove-suggestion', 30 :class => 'remove-suggestion',
29 :title => _('Remove suggestion'), 31 :title => _('Remove suggestion'),
30 :confirm => _('Are you sure you want to remove this suggestion?') %> 32 :confirm => _('Are you sure you want to remove this suggestion?') %>
31 <% elsif collection == :communities_suggestions %> 33 <% elsif collection == :communities_suggestions %>
32 <%= link_to 'x', 34 <%= link_to 'x',
33 - { :controller => 'memberships', :action => 'remove_suggestion', :id => s.suggestion.identifier }, 35 + { :controller => 'memberships', :action => 'remove_suggestion', :id => s.suggestion.identifier, :per_page => per_page },
34 :class => 'remove-suggestion', 36 :class => 'remove-suggestion',
35 :title => _('Remove suggestion'), 37 :title => _('Remove suggestion'),
36 :confirm => _('Are you sure you want to remove this suggestion?') %> 38 :confirm => _('Are you sure you want to remove this suggestion?') %>
plugins/people_block/lib/friends_block.rb
@@ -17,7 +17,7 @@ class FriendsBlock &lt; PeopleBlockBase @@ -17,7 +17,7 @@ class FriendsBlock &lt; PeopleBlockBase
17 end 17 end
18 18
19 def suggestions 19 def suggestions
20 - owner.profile_suggestions.of_person.enabled.limit(limit).includes(:suggestion) 20 + owner.profile_suggestions.of_person.enabled.limit(3).includes(:suggestion)
21 end 21 end
22 22
23 def footer 23 def footer
plugins/people_block/views/blocks/friends.html.erb
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => suggestions, :collection => :friends_suggestions } %> 7 <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => suggestions, :collection => :friends_suggestions } %>
8 </div> 8 </div>
9 <div class='more-suggestions'> 9 <div class='more-suggestions'>
10 - <%= link_to _('See more suggestions'), profile.people_suggestions_url %> 10 + <%= link_to _('See all suggestions'), profile.people_suggestions_url %>
11 </div> 11 </div>
12 </div> 12 </div>
13 <% end %> 13 <% end %>
public/javascripts/add-and-join.js
@@ -135,7 +135,15 @@ jQuery(function($) { @@ -135,7 +135,15 @@ jQuery(function($) {
135 $(".accept-suggestion").live('click', function(){ 135 $(".accept-suggestion").live('click', function(){
136 clicked = $(this) 136 clicked = $(this)
137 loading_for_button(this); 137 loading_for_button(this);
138 - clicked.parents('li').fadeOut(); 138 + url = clicked.attr("href");
  139 + remove_suggestion = clicked.parents('li').find('.remove-suggestion');
  140 + remove_url = remove_suggestion.attr('href')
  141 + $.post(remove_url, function(suggestions_data){
  142 + remove_suggestion.parents('.profiles-suggestions').html(suggestions_data);
  143 + $.post(url, function(add_data){
  144 + clicked.parents('li').fadeOut();
  145 + });
  146 + });
139 return false; 147 return false;
140 }) 148 })
141 149
public/stylesheets/application.css
@@ -1723,6 +1723,7 @@ a.button.disabled, input.disabled { @@ -1723,6 +1723,7 @@ a.button.disabled, input.disabled {
1723 .profiles-suggestions .profile-list .extra_info { 1723 .profiles-suggestions .profile-list .extra_info {
1724 z-index: 10; 1724 z-index: 10;
1725 display: inline-block; 1725 display: inline-block;
  1726 + width: 100px;
1726 } 1727 }
1727 1728
1728 .suggestions-block .block-subtitle { 1729 .suggestions-block .block-subtitle {