Commit 43c129008fc88237babbc991d1551946d336a7d0
1 parent
ad29f61a
Exists in
master
and in
27 other branches
[suggestion] Update friends suggestions list
After asking friendship or removing suggestion, the list is updated (ActionItem3234)
Showing
8 changed files
with
79 additions
and
65 deletions
Show diff stats
app/controllers/my_profile/friends_controller.rb
@@ -3,7 +3,7 @@ class FriendsController < MyProfileController | @@ -3,7 +3,7 @@ class FriendsController < MyProfileController | ||
3 | protect 'manage_friends', :profile | 3 | protect 'manage_friends', :profile |
4 | 4 | ||
5 | def index | 5 | def index |
6 | - @suggestions = profile.profile_suggestions.of_person.includes(:suggestion).limit(per_page) | 6 | + @suggestions = profile.profile_suggestions.of_person.enabled.includes(:suggestion).limit(per_page) |
7 | if is_cache_expired?(profile.manage_friends_cache_key(params)) | 7 | if is_cache_expired?(profile.manage_friends_cache_key(params)) |
8 | @friends = profile.friends.paginate(:per_page => per_page, :page => params[:npage]) | 8 | @friends = profile.friends.paginate(:per_page => per_page, :page => params[:npage]) |
9 | end | 9 | end |
@@ -26,7 +26,8 @@ class FriendsController < MyProfileController | @@ -26,7 +26,8 @@ class FriendsController < MyProfileController | ||
26 | redirect_to :action => 'suggest' unless @person | 26 | redirect_to :action => 'suggest' unless @person |
27 | if @person && request.post? | 27 | if @person && request.post? |
28 | profile.remove_suggestion(@person) | 28 | profile.remove_suggestion(@person) |
29 | - session[:notice] = _('Suggestion removed') | 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 | end | 31 | end |
31 | end | 32 | end |
32 | 33 |
app/views/friends/index.html.erb
@@ -28,14 +28,9 @@ | @@ -28,14 +28,9 @@ | ||
28 | 28 | ||
29 | <% unless @suggestions.empty? %> | 29 | <% unless @suggestions.empty? %> |
30 | <br style="clear:both" /> | 30 | <br style="clear:both" /> |
31 | + <h2><%= _("Friends suggestions") %></h2> | ||
31 | <div class="profiles-suggestions"> | 32 | <div class="profiles-suggestions"> |
32 | - <h2><%= _("Friends suggestions") %></h2> | ||
33 | - | ||
34 | - <%= render :partial => 'shared/profile_list', :locals => { :suggestions => @suggestions, :collection => :friends_suggestions } %> | ||
35 | - | ||
36 | - <% button_bar do %> | ||
37 | - <%= link_to _('See more suggestions...'), :action => 'suggest' %> | ||
38 | - <% end %> | 33 | + <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :friends_suggestions } %> |
39 | </div> | 34 | </div> |
40 | <% end %> | 35 | <% end %> |
41 | 36 |
app/views/friends/suggest.html.erb
1 | -<div class='profiles-suggestions'> | ||
2 | - <h1><%= _("Friends suggestions for %s") % profile.name %></h1> | 1 | +<h1><%= _("Friends suggestions for %s") % profile.name %></h1> |
3 | 2 | ||
4 | - <% button_bar do %> | ||
5 | - <%= button(:back, _('Go to friends list'), :controller => 'friends') %> | ||
6 | - <% end %> | 3 | +<% button_bar do %> |
4 | + <%= button(:back, _('Go to friends list'), :controller => 'friends') %> | ||
5 | +<% end %> | ||
7 | 6 | ||
8 | - <% if @suggestions.empty? %> | ||
9 | - <p> | ||
10 | - <em> | ||
11 | - <%= _('You have no suggestions yet.') %> | ||
12 | - <%= link_to _('Do you want to see other people in this environment?'), :controller => 'search', :action => 'assets', :asset => 'people' %> | ||
13 | - </em> | ||
14 | - </p> | ||
15 | - <% else %> | ||
16 | - <%= render :partial => 'shared/profile_list', :locals => { :suggestions => @suggestions, :collection => :friends_suggestions } %> | ||
17 | - <% end %> | ||
18 | - <br style="clear:both" /> | 7 | +<div class="profiles-suggestions"> |
8 | + <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :friends_suggestions } %> | ||
19 | </div> | 9 | </div> |
app/views/memberships/suggest.html.erb
@@ -13,7 +13,7 @@ | @@ -13,7 +13,7 @@ | ||
13 | </em> | 13 | </em> |
14 | </p> | 14 | </p> |
15 | <% else %> | 15 | <% else %> |
16 | - <%= render :partial => 'shared/profile_list', :locals => { :suggestions => @suggestions, :collection => :communities_suggestions } %> | 16 | + <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => @suggestions, :collection => :communities_suggestions } %> |
17 | <% end %> | 17 | <% end %> |
18 | <br style="clear:both" /> | 18 | <br style="clear:both" /> |
19 | </div> | 19 | </div> |
app/views/shared/_profile_list.html.erb
@@ -1,38 +0,0 @@ | @@ -1,38 +0,0 @@ | ||
1 | -<ul class="profile-list"> | ||
2 | - <% suggestions.each do |s| %> | ||
3 | - <li> | ||
4 | - <%= link_to_profile profile_image(s.suggestion, :minor) + '<br/>' + s.suggestion.short_name, | ||
5 | - s.suggestion.identifier, :class => 'profile-link' %> | ||
6 | - <%= button_without_text :help, content_tag('span',_('info about suggestion')), | ||
7 | - { :action => '#' }, | ||
8 | - :class => 'explain-suggestion', | ||
9 | - :title => _('Why this suggestion?') %> | ||
10 | - <div class='extra_info' style='display:none'> | ||
11 | - <%= profile_suggestion_categories(s) %> | ||
12 | - </div> | ||
13 | - <div class="controll"> | ||
14 | - <% if collection == :friends_suggestions %> | ||
15 | - <%= button_without_text :add, content_tag('span',_('add')), | ||
16 | - s.suggestion.add_url, | ||
17 | - :class => 'add-friend', | ||
18 | - :title => _('Add friend') %> | ||
19 | - <%= button_without_text :remove, content_tag('span',_('remove')), | ||
20 | - { :action => 'remove_suggestion', :id => s.suggestion.identifier }, | ||
21 | - :title => _('Remove suggestion'), | ||
22 | - :method => 'post', | ||
23 | - :confirm => _('Are you sure you want to remove this suggestion?') %> | ||
24 | - <% elsif collection == :communities_suggestions %> | ||
25 | - <%= button_without_text :add, content_tag('span',_('join')), | ||
26 | - s.suggestion.join_url, | ||
27 | - :class => 'join-community', | ||
28 | - :title => _("Join %s") % s.suggestion.name %> | ||
29 | - <%= button_without_text :remove, content_tag('span',_('remove')), | ||
30 | - { :action => 'remove_suggestion', :id => s.suggestion.identifier }, | ||
31 | - :title => _('Remove suggestion'), | ||
32 | - :method => 'post', | ||
33 | - :confirm => _('Are you sure you want to remove this suggestion?') %> | ||
34 | - <% end %> | ||
35 | - </div><!-- end class="controll" --> | ||
36 | - </li> | ||
37 | - <% end %> | ||
38 | -</ul> |
@@ -0,0 +1,48 @@ | @@ -0,0 +1,48 @@ | ||
1 | +<% if suggestions.empty? %> | ||
2 | + <p> | ||
3 | + <em> | ||
4 | + <%= _('You have no suggestions yet.') %> | ||
5 | + <%= link_to _('Do you want to see other people in this environment?'), :controller => 'search', :action => 'assets', :asset => 'people' %> | ||
6 | + </em> | ||
7 | + </p> | ||
8 | +<% else %> | ||
9 | + <ul class="profile-list"> | ||
10 | + <% suggestions.each do |s| %> | ||
11 | + <li> | ||
12 | + <%= link_to_profile profile_image(s.suggestion, :minor) + '<br/>' + s.suggestion.short_name, | ||
13 | + s.suggestion.identifier, :class => 'profile-link' %> | ||
14 | + <%= button_without_text :help, content_tag('span',_('info about suggestion')), | ||
15 | + { :action => '#' }, | ||
16 | + :class => 'explain-suggestion', | ||
17 | + :title => _('Why this suggestion?') %> | ||
18 | + <div class='extra_info' style='display:none'> | ||
19 | + <%= profile_suggestion_categories(s) %> | ||
20 | + </div> | ||
21 | + <div class="controll"> | ||
22 | + <% if collection == :friends_suggestions %> | ||
23 | + <%= button_without_text :add, content_tag('span',_('add')), | ||
24 | + s.suggestion.add_url, | ||
25 | + :class => 'add-friend accept-suggestion', | ||
26 | + :title => _('Add friend') %> | ||
27 | + <%= button_without_text :remove, content_tag('span',_('remove')), | ||
28 | + { :action => 'remove_suggestion', :id => s.suggestion.identifier }, | ||
29 | + :class => 'remove-suggestion', | ||
30 | + :title => _('Remove suggestion'), | ||
31 | + :confirm => _('Are you sure you want to remove this suggestion?') %> | ||
32 | + <% elsif collection == :communities_suggestions %> | ||
33 | + <%= button_without_text :add, content_tag('span',_('join')), | ||
34 | + s.suggestion.join_url, | ||
35 | + :class => 'join-community', | ||
36 | + :title => _("Join %s") % s.suggestion.name %> | ||
37 | + <%= button_without_text :remove, content_tag('span',_('remove')), | ||
38 | + { :action => 'remove_suggestion', :id => s.suggestion.identifier }, | ||
39 | + :title => _('Remove suggestion'), | ||
40 | + :method => 'post', | ||
41 | + :confirm => _('Are you sure you want to remove this suggestion?') %> | ||
42 | + <% end %> | ||
43 | + </div><!-- end class="controll" --> | ||
44 | + </li> | ||
45 | + <% end %> | ||
46 | + </ul> | ||
47 | +<% end %> | ||
48 | +<br style="clear:both" /> |
public/javascripts/add-and-join.js
@@ -120,4 +120,23 @@ jQuery(function($) { | @@ -120,4 +120,23 @@ jQuery(function($) { | ||
120 | return false; | 120 | return false; |
121 | }) | 121 | }) |
122 | 122 | ||
123 | + $(".remove-suggestion").live('click', function(){ | ||
124 | + clicked = $(this) | ||
125 | + url = clicked.attr("href"); | ||
126 | + loading_for_button(this); | ||
127 | + $.post(url, function(data){ | ||
128 | + clicked.fadeOut(); | ||
129 | + clicked.parents('.profiles-suggestions').html(data); | ||
130 | + }); | ||
131 | + return false; | ||
132 | + }) | ||
133 | + | ||
134 | + /* After adding a suggestion need to remove it from list */ | ||
135 | + $(".accept-suggestion").live('click', function(){ | ||
136 | + clicked = $(this) | ||
137 | + loading_for_button(this); | ||
138 | + clicked.parents('li').fadeOut(); | ||
139 | + return false; | ||
140 | + }) | ||
141 | + | ||
123 | }); | 142 | }); |
public/javascripts/application.js
@@ -1055,7 +1055,6 @@ function showHideTermsOfUse() { | @@ -1055,7 +1055,6 @@ function showHideTermsOfUse() { | ||
1055 | 1055 | ||
1056 | jQuery('.profiles-suggestions .explain-suggestion').live('click', function() { | 1056 | jQuery('.profiles-suggestions .explain-suggestion').live('click', function() { |
1057 | var clicked = jQuery(this); | 1057 | var clicked = jQuery(this); |
1058 | - jQuery('.profiles-suggestions .extra_info').hide(); | ||
1059 | clicked.toggleClass('active'); | 1058 | clicked.toggleClass('active'); |
1060 | clicked.next('.extra_info').toggle(); | 1059 | clicked.next('.extra_info').toggle(); |
1061 | return false; | 1060 | return false; |