Commit 03abebcab3ed42ebc34685d84feeba8af9012cba

Authored by Daniela Feitosa
1 parent cad39298

[suggestions] Add suggestions on communities block

(ActionItem3234)
app/models/communities_block.rb
... ... @@ -14,19 +14,16 @@ class CommunitiesBlock < ProfileListBlock
14 14 _('This block displays the communities in which the user is a member.')
15 15 end
16 16  
  17 + def suggestions
  18 + return nil unless owner.kind_of?(Profile)
  19 + owner.profile_suggestions.of_community.enabled.limit(limit).includes(:suggestion)
  20 + end
  21 +
17 22 def footer
18 23 owner = self.owner
19   - case owner
20   - when Profile
21   - lambda do |context|
22   - link_to s_('communities|View all'), :profile => owner.identifier, :controller => 'profile', :action => 'communities'
23   - end
24   - when Environment
25   - lambda do |context|
26   - link_to s_('communities|View all'), :controller => 'search', :action => 'communities'
27   - end
28   - else
29   - ''
  24 + suggestions = self.suggestions
  25 + proc do
  26 + render :file => 'blocks/communities', :locals => { :owner => owner, :suggestions => suggestions }
30 27 end
31 28 end
32 29  
... ...
app/views/blocks/communities.html.erb 0 → 100644
... ... @@ -0,0 +1,17 @@
  1 +<% if owner.kind_of?(Profile) %>
  2 + <%= link_to s_('communities|View all'), {:profile => owner.identifier, :controller => 'profile', :action => 'communities'}, :class => 'view-all' %>
  3 +<% elsif owner.kind_of?(Environment) %>
  4 + <%= link_to s_('communities|View all'), {:controller => 'search', :action => 'communities'}, :class => 'view-all' %>
  5 +<% else %>
  6 + ''
  7 +<% end %>
  8 +
  9 +<% if user == profile && suggestions && !suggestions.empty? %>
  10 + <div class='suggestions-block common-profile-list-block'>
  11 + <h4 class='block-subtitle'><%= _('Some suggestions for you') %></h4>
  12 + <div class='profiles-suggestions'>
  13 + <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => suggestions, :collection => :communities_suggestions } %>
  14 + </div>
  15 + <%= link_to _('See more suggestions'), profile.communities_suggestions_url, :class => 'more-suggestions' %>
  16 + </div>
  17 +<% end %>
... ...
app/views/memberships/suggest.html.erb
... ... @@ -5,5 +5,5 @@
5 5 <% end %>
6 6  
7 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 => :communities_suggestions } %>
9 9 </div>
... ...
app/views/shared/_profile_suggestions_list.html.erb
... ... @@ -34,7 +34,7 @@
34 34 :class => 'join-community accept-suggestion',
35 35 :title => _("Join %s") % s.suggestion.name %>
36 36 <%= button_without_text :remove, content_tag('span',_('remove')),
37   - { :action => 'remove_suggestion', :id => s.suggestion.identifier },
  37 + { :controller => 'memberships', :action => 'remove_suggestion', :id => s.suggestion.identifier },
38 38 :class => 'remove-suggestion',
39 39 :title => _('Remove suggestion'),
40 40 :confirm => _('Are you sure you want to remove this suggestion?') %>
... ...
app/views/user_mailer/profiles_suggestions_email.html.erb
1 1 <%= _('Hi, %{recipient}!') % { :recipient => @recipient } %>
2 2  
3   -<p><%= _('We want to give you some suggestions to grow up your network.') %>
  3 +<p><%= _('We want to give you some suggestions to grow up your network.') %></p>
4 4 <p><%= _('Check it out!') %></p>
5 5  
6 6 <% unless @people_suggestions.empty? %>
... ...
plugins/people_block/views/blocks/friends.html.erb
1 1 <%= link_to s_('friends|View all'), {:profile => profile.identifier, :controller => 'profile', :action => 'friends'}, :class => 'view-all' %>
2 2  
3 3 <% if user == profile && !suggestions.empty? %>
4   - <div class='common-profile-list-block'>
  4 + <div class='suggestions-block common-profile-list-block'>
5 5 <h4 class='block-subtitle'><%= _('Some suggestions for you') %></h4>
6 6 <div class='profiles-suggestions'>
7 7 <%= render :partial => 'shared/profile_suggestions_list', :locals => { :suggestions => suggestions, :collection => :friends_suggestions } %>
... ...
public/designs/themes/base/style.css
... ... @@ -515,7 +515,7 @@ div#notice {
515 515 #content .tags-block .block-footer-content a,
516 516 #content .profile-list-block .block-footer-content a,
517 517 #content .enterprises-block .block-footer-content a,
518   -#content .communities-block .block-footer-content a {
  518 +#content .communities-block .block-footer-content a.view-all {
519 519 background: url(imgs/arrow-right-p.png) 100% 50% no-repeat;
520 520 }
521 521  
... ...
public/javascripts/application.js
... ... @@ -1060,6 +1060,13 @@ jQuery(&#39;.profiles-suggestions .explain-suggestion&#39;).live(&#39;click&#39;, function() {
1060 1060 return false;
1061 1061 });
1062 1062  
  1063 +jQuery('.suggestions-block .block-subtitle').live('click', function() {
  1064 + var clicked = jQuery(this);
  1065 + clicked.next('.profiles-suggestions').toggle();
  1066 + clicked.nextAll('.more-suggestions').toggle();
  1067 + return false;
  1068 +});
  1069 +
1063 1070 jQuery(document).ready(function(){
1064 1071 showHideTermsOfUse();
1065 1072  
... ...
public/stylesheets/application.css
... ... @@ -1667,6 +1667,30 @@ a.button.disabled, input.disabled {
1667 1667 text-align: center;
1668 1668 padding-bottom: 0px;
1669 1669 }
  1670 +
  1671 +#content .communities-block .block-footer-content .profiles-suggestions a.explain-suggestion {
  1672 + padding: 1px;
  1673 + width: 16px;
  1674 +}
  1675 +
  1676 +#content .communities-block .block-footer-content .profiles-suggestions a.accept-suggestion,
  1677 +#content .communities-block .block-footer-content .profiles-suggestions a.remove-suggestion {
  1678 + position: relative;
  1679 + z-index: 5;
  1680 +}
  1681 +
  1682 +#content .communities-block .profiles-suggestions .profile-list .extra_info {
  1683 + z-index: 10;
  1684 +}
  1685 +
  1686 +#content .communities-block .block-footer-content a.more-suggestions {
  1687 + position: relative;
  1688 +}
  1689 +
  1690 +.suggestions-block .block-subtitle {
  1691 + cursor: pointer;
  1692 +}
  1693 +
1670 1694 .msie7 .communities-block .common-profile-list-block .vcard .profile_link {
1671 1695 height: 75px;
1672 1696 padding-bottom: 0px;
... ... @@ -4066,8 +4090,8 @@ h1#agenda-title {
4066 4090 }
4067 4091  
4068 4092 .profiles-suggestions .profile-list li {
4069   - width: 58px;
4070   - max-width: 58px;
  4093 + width: 85px;
  4094 + max-width: 85px;
4071 4095 }
4072 4096  
4073 4097 .box-1 .profiles-suggestions .profile-list li {
... ...