Commit 03abebcab3ed42ebc34685d84feeba8af9012cba
1 parent
cad39298
Exists in
master
and in
27 other branches
[suggestions] Add suggestions on communities block
(ActionItem3234)
Showing
9 changed files
with
63 additions
and
18 deletions
Show diff stats
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 | ... | ... |
| ... | ... | @@ -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('.profiles-suggestions .explain-suggestion').live('click', 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 { | ... | ... |