Commit 090bb72ba0aab8b6a450bb7a19a563365995c338

Authored by Daniela Feitosa
1 parent 173bc36f

More enhancements

app/controllers/public/profile_controller.rb
@@ -8,10 +8,10 @@ class ProfileController < PublicController @@ -8,10 +8,10 @@ class ProfileController < PublicController
8 helper TagsHelper 8 helper TagsHelper
9 9
10 def index 10 def index
11 - @network_activities = !@profile.is_a?(Person) ? @profile.tracked_notifications.paginate(:per_page => 30, :page => params[:page]) : [] 11 + @network_activities = !@profile.is_a?(Person) ? @profile.tracked_notifications.paginate(:per_page => 15, :page => params[:page]) : []
12 if logged_in? && current_person.follows?(@profile) 12 if logged_in? && current_person.follows?(@profile)
13 - @network_activities = @profile.tracked_notifications.paginate(:per_page => 30, :page => params[:page]) if @network_activities.empty?  
14 - @activities = @profile.activities.paginate(:per_page => 30, :page => params[:page]) 13 + @network_activities = @profile.tracked_notifications.paginate(:per_page => 15, :page => params[:page]) if @network_activities.empty?
  14 + @activities = @profile.activities.paginate(:per_page => 15, :page => params[:page])
15 end 15 end
16 @tags = profile.article_tags 16 @tags = profile.article_tags
17 unless profile.display_info_to?(user) 17 unless profile.display_info_to?(user)
@@ -186,8 +186,6 @@ class ProfileController < PublicController @@ -186,8 +186,6 @@ class ProfileController < PublicController
186 @comment = Comment.new(params[:comment]) 186 @comment = Comment.new(params[:comment])
187 @comment.author = user 187 @comment.author = user
188 @activity = ActionTracker::Record.find(params[:source_id]) 188 @activity = ActionTracker::Record.find(params[:source_id])
189 - #FIXME pq n colocar source direto?  
190 - #@comment.source = ActionTracker::Record.find(params[:source_id])  
191 @comment.source_type, @comment.source_id = (@activity.target_type == 'Article' ? ['Article', @activity.target_id] : [@activity.class.to_s, @activity.id]) 189 @comment.source_type, @comment.source_id = (@activity.target_type == 'Article' ? ['Article', @activity.target_id] : [@activity.class.to_s, @activity.id])
192 @tab_action = params[:tab_action] 190 @tab_action = params[:tab_action]
193 @message = @comment.save ? _("Comment successfully added.") : _("You can't leave an empty comment.") 191 @message = @comment.save ? _("Comment successfully added.") : _("You can't leave an empty comment.")
@@ -201,12 +199,12 @@ class ProfileController < PublicController @@ -201,12 +199,12 @@ class ProfileController < PublicController
201 end 199 end
202 200
203 def view_more_activities 201 def view_more_activities
204 - @activities = @profile.activities.paginate(:per_page => 30, :page => params[:page]) 202 + @activities = @profile.activities.paginate(:per_page => 10, :page => params[:page])
205 render :partial => 'profile_activities_list', :locals => {:activities => @activities} 203 render :partial => 'profile_activities_list', :locals => {:activities => @activities}
206 end 204 end
207 205
208 def view_more_network_activities 206 def view_more_network_activities
209 - @activities = @profile.tracked_notifications.paginate(:per_page => 30, :page => params[:page]) 207 + @activities = @profile.tracked_notifications.paginate(:per_page => 10, :page => params[:page])
210 render :partial => 'profile_network_activities', :locals => {:network_activities => @activities} 208 render :partial => 'profile_network_activities', :locals => {:network_activities => @activities}
211 end 209 end
212 210
app/models/article.rb
@@ -62,7 +62,7 @@ class Article < ActiveRecord::Base @@ -62,7 +62,7 @@ class Article < ActiveRecord::Base
62 validate :translation_must_have_language 62 validate :translation_must_have_language
63 63
64 def is_trackable? 64 def is_trackable?
65 - self.published? && self.notifiable? && self.advertise? 65 + self.published? && self.notifiable? && self.advertise? && self.profile.public_profile
66 end 66 end
67 67
68 def external_link=(link) 68 def external_link=(link)
app/views/profile/_comment.rhtml
1 -<%# Comment %> 1 +<% Comment %>
  2 +<% Profile %>
  3 +<% Person %>
  4 +
2 <li class="article-comment" style='border-bottom:none;'> 5 <li class="article-comment" style='border-bottom:none;'>
3 <div class="article-comment-inner"> 6 <div class="article-comment-inner">
4 7
app/views/profile/_create_article.rhtml
@@ -10,7 +10,14 @@ @@ -10,7 +10,14 @@
10 <%= content_tag(:p, link_to(_('See complete forum'), activity.get_url), :class => 'see-forum') if activity.target.is_a?(Forum) %> 10 <%= content_tag(:p, link_to(_('See complete forum'), activity.get_url), :class => 'see-forum') if activity.target.is_a?(Forum) %>
11 <p class='profile-activity-time'><%= time_ago_as_sentence(activity.created_at) %></p> 11 <p class='profile-activity-time'><%= time_ago_as_sentence(activity.created_at) %></p>
12 <div class='profile-wall-actions'> 12 <div class='profile-wall-actions'>
13 - <%= link_to_function _('Comment'), "$('reply_content_#{activity.id}').focus()" %> 13 + <%= link_to_function s_('profile|Comment'), "$('reply_content_#{activity.id}').focus()" %>
14 <%= link_to_remote(content_tag(:span, _('Remove')), :url =>{:action => 'remove_activity', :activity_id => activity.id, :only_hide => true}, :confirm => _('Are you sure?'), :update => "profile-activity-item-#{activity.id}") if logged_in? && current_person == @profile %> 14 <%= link_to_remote(content_tag(:span, _('Remove')), :url =>{:action => 'remove_activity', :activity_id => activity.id, :only_hide => true}, :confirm => _('Are you sure?'), :update => "profile-activity-item-#{activity.id}") if logged_in? && current_person == @profile %>
15 </div> 15 </div>
16 </div> 16 </div>
  17 +
  18 +<hr />
  19 +<ul class="profile-wall-activities-comments comments-count-<%= activity.comments_count %>" >
  20 + <%= render :partial => 'comment', :collection => activity.comments %>
  21 +</ul>
  22 +
  23 +<%= render :partial => 'profile_comment_form', :locals => { :activity => activity } %>
app/views/profile/_default_activity.rhtml
@@ -5,7 +5,14 @@ @@ -5,7 +5,14 @@
5 <p class='profile-activity-text'><%= link_to activity.user.name, activity.user.url %> <%= describe activity %></p> 5 <p class='profile-activity-text'><%= link_to activity.user.name, activity.user.url %> <%= describe activity %></p>
6 <p class='profile-activity-time'><%= time_ago_as_sentence(activity.created_at) %></p> 6 <p class='profile-activity-time'><%= time_ago_as_sentence(activity.created_at) %></p>
7 <div class='profile-wall-actions'> 7 <div class='profile-wall-actions'>
8 - <%= link_to_function _('Comment'), "$('reply_content_#{activity.id}').focus()" %> 8 + <%= link_to_function s_('profile|Comment'), "$('reply_content_#{activity.id}').focus()" %>
9 <%= link_to_remote(content_tag(:span, _('Remove')), :confirm => _('Are you sure?'), :url =>{:action => 'remove_activity', :activity_id => activity.id}, :update => "profile-activity-item-#{activity.id}") if logged_in? && current_person == @profile %> 9 <%= link_to_remote(content_tag(:span, _('Remove')), :confirm => _('Are you sure?'), :url =>{:action => 'remove_activity', :activity_id => activity.id}, :update => "profile-activity-item-#{activity.id}") if logged_in? && current_person == @profile %>
10 </div> 10 </div>
11 </div> 11 </div>
  12 +
  13 +<hr />
  14 +<ul class="profile-wall-activities-comments comments-count-<%= activity.comments_count %>" >
  15 + <%= render :partial => 'comment', :collection => activity.comments %>
  16 +</ul>
  17 +
  18 +<%= render :partial => 'profile_comment_form', :locals => { :activity => activity } %>
app/views/profile/_leave_scrap.rhtml
1 -NÂO DEVE APARECER 1 +<div class='profile-activity-image'>
  2 + <%= link_to(profile_image(activity.user, :minor), activity.user.url) %>
  3 +</div>
  4 +<div class='profile-activity-description'>
  5 + <p class='profile-activity-text'><%= link_to activity.user.name, activity.user.url %> <%= describe activity %></p>
  6 + <p class='profile-activity-time'><%= time_ago_as_sentence(activity.created_at) %></p>
  7 + <div class='profile-wall-actions'>
  8 + <%= link_to_remote(content_tag(:span, _('Remove')), :confirm => _('Are you sure?'), :url =>{:action => 'remove_activity', :activity_id => activity.id}, :update => "profile-activity-item-#{activity.id}") if logged_in? && current_person == @profile %>
  9 + </div>
  10 +</div>
  11 +
  12 +<br/>
app/views/profile/_leave_scrap_to_self.rhtml
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -NÃO É PRA APARECER  
app/views/profile/_leave_scrap_to_self.rhtml 0 → 120000
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +_leave_scrap.rhtml
0 \ No newline at end of file 2 \ No newline at end of file
app/views/profile/_profile_activities_list.rhtml
@@ -8,3 +8,9 @@ @@ -8,3 +8,9 @@
8 <% end %> 8 <% end %>
9 <% end %> 9 <% end %>
10 <% end %> 10 <% end %>
  11 +
  12 +<% if activities.current_page < activities.total_pages %>
  13 + <div id='profile_activities_page_<%= activities.current_page %>'>
  14 + <%= button_to_remote :add, _('View more'), :url => {:action => 'view_more_activities', :page => (activities.current_page + 1)}, :update => "profile_activities_page_#{activities.current_page}" %>
  15 + </div>
  16 +<% end %>
app/views/profile/_profile_activity.rhtml
1 <li class='profile-activity-item <%= activity.verb %>' id='profile-activity-item-<%= activity.id %>'> 1 <li class='profile-activity-item <%= activity.verb %>' id='profile-activity-item-<%= activity.id %>'>
2 <%= render :partial => activity.verb, :locals => { :activity => activity }%> 2 <%= render :partial => activity.verb, :locals => { :activity => activity }%>
3 <hr /> 3 <hr />
4 -  
5 - <ul class="profile-wall-activities-comments" style='padding-left: 50px;width:auto'>  
6 - <%= render :partial => 'comment', :collection => activity.comments %>  
7 - </ul>  
8 -  
9 - <%= render :partial => 'profile_comment_form', :locals => { :activity => activity } %>  
10 -  
11 </li> 4 </li>
app/views/profile/_profile_scrap.rhtml
@@ -9,30 +9,17 @@ @@ -9,30 +9,17 @@
9 <div class='profile-wall-actions'> 9 <div class='profile-wall-actions'>
10 <% if logged_in? && current_person.follows?(scrap.sender) %> 10 <% if logged_in? && current_person.follows?(scrap.sender) %>
11 <span class='profile-activity-send-reply'> 11 <span class='profile-activity-send-reply'>
12 - <%= link_to_function _('Comment'), "hide_and_show(['#profile-wall-reply-response-#{scrap.id}'],['#profile-wall-reply-#{scrap.id}', '#profile-wall-reply-form-#{scrap.id}']);$('reply_content_#{scrap.id}').value='';$('reply_content_#{scrap.id}').focus();$('scrap_id_#{scrap.id}').value='#{scrap.id}';return false", :class => "profile-send-reply" %> 12 + <%= link_to_function s_('profile|Comment'), "hide_and_show(['#profile-wall-message-response-#{scrap.id}'],['#profile-wall-reply-#{scrap.id}', '#profile-wall-reply-form-#{scrap.id}']);$('reply_content_#{scrap.id}').value='';$('reply_content_#{scrap.id}').focus();return false", :class => "profile-send-reply" %>
13 </span> 13 </span>
14 <% end %> 14 <% end %>
15 <%= link_to_remote(content_tag(:span, _('Remove')), :confirm => _('Are you sure?'), :url =>{:action => 'remove_scrap', :scrap_id => scrap.id}, :update => "profile-activity-item-#{scrap.id}") if logged_in? && user.can_control_scrap?(scrap) %> 15 <%= link_to_remote(content_tag(:span, _('Remove')), :confirm => _('Are you sure?'), :url =>{:action => 'remove_scrap', :scrap_id => scrap.id}, :update => "profile-activity-item-#{scrap.id}") if logged_in? && user.can_control_scrap?(scrap) %>
16 </div> 16 </div>
17 </div> 17 </div>
18 - <ul class="profile-activity-scrap-replies"> 18 + <ul class="profile-wall-activities-comments scrap-replies" style='width: auto;'>
19 <% scrap.replies.map do |reply| %> 19 <% scrap.replies.map do |reply| %>
20 <%= render :partial => 'profile_scrap', :locals => {:scrap => reply} %> 20 <%= render :partial => 'profile_scrap', :locals => {:scrap => reply} %>
21 <% end %> 21 <% end %>
22 </ul> 22 </ul>
23 - <div id='profile-activity-message-<%= scrap.id%>' style='display:none;'>  
24 - <div id='profile-activity-form-<%= scrap.id%>' style='display:none;'>  
25 - <p class='profile-activity-message'>  
26 - <% form_remote_tag :url => {:controller => 'profile', :action => 'leave_scrap', :not_load_scraps => true}, :update => "profile-activity-message-response-#{scrap.id}", :success =>"hide_and_show(['#profile-activity-form-#{scrap.id}'],['#profile-activity-message-response-#{scrap.id}'])" do %>  
27 - <%= limited_text_area :scrap, :content, 420, "content_#{scrap.id}", :cols => 50, :rows => 2 %>  
28 - <%= hidden_field_tag 'receiver_id', scrap.sender.id %>  
29 - <%= submit_button :add, _('Leave a scrap') %>  
30 - <%= button_to_function :cancel, _('Cancel'), "hide_and_show(['#profile-activity-message-#{scrap.id}'],[]);return false" %>  
31 - <% end %>  
32 - </p>  
33 - </div>  
34 - <div id='profile-activity-message-response-<%=scrap.id%>' class='profile-activity-message-response'></div>  
35 - </div>  
36 <%= render :partial => 'profile_scrap_reply_form', :locals => { :scrap => scrap } %> 23 <%= render :partial => 'profile_scrap_reply_form', :locals => { :scrap => scrap } %>
37 <hr /> 24 <hr />
38 </li> 25 </li>
app/views/profile/_profile_scrap_reply_form.rhtml
1 -<div id='profile-wall-reply-<%= scrap.id%>' style='display:none;'>  
2 - <div id='profile-wall-reply-form-<%= scrap.id%>' style='display:none;'> 1 +<div id='profile-wall-reply-<%= scrap.id%>' style='display:none'>
  2 + <div id='profile-wall-reply-form-<%= scrap.id%>' style='display:none'>
3 <p class='profile-wall-reply'> 3 <p class='profile-wall-reply'>
4 - <% form_remote_tag :url => {:controller => 'profile', :action => 'leave_scrap'}, :update => "profile_activities", :success =>"hide_and_show(['#profile-wall-reply-form-#{scrap.id}'],['#profile-wall-reply-response-#{scrap.id}'])" do %> 4 + <% form_remote_tag :url => {:controller => 'profile', :action => 'leave_scrap'}, :update => "profile_activities", :html => { :class => 'profile-wall-reply-form'} do %>
5 <%= text_area :scrap, :content, { :id => "reply_content_#{scrap.id}", 5 <%= text_area :scrap, :content, { :id => "reply_content_#{scrap.id}",
6 :cols => 50, 6 :cols => 50,
7 :rows => 1, 7 :rows => 1,
8 :class => 'submit-with-keypress', 8 :class => 'submit-with-keypress',
  9 + :title => _('Leave your comment'),
9 :onfocus => ('if(this.value==this.title){this.value="";this.style.color="#000"};this.style.backgroundImage="url(' + profile_icon(current_person, :icon, false) + ')"' if logged_in?), 10 :onfocus => ('if(this.value==this.title){this.value="";this.style.color="#000"};this.style.backgroundImage="url(' + profile_icon(current_person, :icon, false) + ')"' if logged_in?),
10 :onblur => ('if(this.value==""){this.value=this.title;this.style.color="#ccc"};this.style.backgroundImage="none"' if logged_in?), 11 :onblur => ('if(this.value==""){this.value=this.title;this.style.color="#ccc"};this.style.backgroundImage="none"' if logged_in?),
11 - 12 + :value => _('Leave your comment')
12 } %> 13 } %>
13 - <%= hidden_field :scrap, :scrap_id, :id => "scrap_id_#{scrap.id}" %> 14 + <%= hidden_field_tag 'scrap[scrap_id]', scrap.id %>
14 <%= hidden_field_tag 'receiver_id', scrap.sender.id %> 15 <%= hidden_field_tag 'receiver_id', scrap.sender.id %>
15 <% end %> 16 <% end %>
16 </p> 17 </p>
app/views/profile/_profile_wall.rhtml
@@ -3,16 +3,10 @@ @@ -3,16 +3,10 @@
3 <%= flash[:error] %> 3 <%= flash[:error] %>
4 <% form_remote_tag :url => {:controller => 'profile', :action => 'leave_scrap', :tab_action => 'wall' }, :update => 'profile_activities', :success => "$('leave_scrap_content').value=''" do %> 4 <% form_remote_tag :url => {:controller => 'profile', :action => 'leave_scrap', :tab_action => 'wall' }, :update => 'profile_activities', :success => "$('leave_scrap_content').value=''" do %>
5 <%= limited_text_area :scrap, :content, 420, 'leave_scrap_content', :cols => 50, :rows => 2 %> 5 <%= limited_text_area :scrap, :content, 420, 'leave_scrap_content', :cols => 50, :rows => 2 %>
6 - <%= submit_button :scrap, _('Share') %> 6 + <%= submit_button :new, _('Share') %>
7 <% end %> 7 <% end %>
8 </div> 8 </div>
9 <div id='leave_scrap_response'></div> 9 <div id='leave_scrap_response'></div>
10 -<ul id='profile_activities'> 10 +<ul id='profile_activities' class='profile-activities'>
11 <%= render :partial => 'profile_activities_list', :locals => {:activities => @activities} %> 11 <%= render :partial => 'profile_activities_list', :locals => {:activities => @activities} %>
12 </ul> 12 </ul>
13 -  
14 -<% if @activities.current_page < @activities.total_pages %>  
15 - <div id='profile_activities_page_<%= @activities.current_page %>'>  
16 - <%= button_to_remote :add, _('View more'), :url => {:action => 'view_more_activities', :page => (@activities.current_page + 1)}, :update => "profile_activities_page_#{@activities.current_page}" %>  
17 - </div>  
18 -<% end %>  
app/views/profile/_update_article.rhtml
1 -<%= render :partial => 'default_activity', :locals => {:activity => activity} %> 1 +NAO É PRA APARECER
app/views/profile/_upload_image.rhtml
1 <div class="activity-gallery-images-count-<%= activity.get_view_url.size %>"> 1 <div class="activity-gallery-images-count-<%= activity.get_view_url.size %>">
2 - <%= render :partial => 'default_activity', :locals => {:activity => activity} %> 2 + <div class='profile-activity-image'>
  3 + <%= link_to(profile_image(activity.user, :minor), activity.user.url) %>
  4 + </div>
  5 + <div class='profile-activity-description'>
  6 + <p class='profile-activity-text'><%= link_to activity.user.name, activity.user.url %> <%= describe activity %></p>
  7 + <p class='profile-activity-time'><%= time_ago_as_sentence(activity.created_at) %></p>
  8 + <div class='profile-wall-actions'>
  9 + <%= link_to_function(s_('profile|Comment'), "$('reply_content_#{activity.id}').focus()") unless activity.get_view_url.size == 1 %>
  10 + <%= link_to_remote(content_tag(:span, _('Remove')), :confirm => _('Are you sure?'), :url =>{:action => 'remove_activity', :activity_id => activity.id}, :update => "profile-activity-item-#{activity.id}") if logged_in? && current_person == @profile %>
  11 + </div>
  12 + </div>
3 </div> 13 </div>
4 <div title='<%= activity.target.class.short_description %>' class='profile-activity-icon icon-new icon-newgallery'></div> 14 <div title='<%= activity.target.class.short_description %>' class='profile-activity-icon icon-new icon-newgallery'></div>
  15 +
  16 +<% if activity.get_view_url.size == 1 %>
  17 + <hr />
  18 + <ul class="profile-wall-activities-comments comments-count-<%= activity.comments_count %>" >
  19 + <%= render :partial => 'comment', :collection => activity.comments %>
  20 + </ul>
  21 +
  22 + <%= render :partial => 'profile_comment_form', :locals => { :activity => activity } %>
  23 +<% end %>
  24 +
  25 +<br/>
config/initializers/action_tracker.rb
@@ -23,7 +23,7 @@ ActionTrackerConfig.verbs = { @@ -23,7 +23,7 @@ ActionTrackerConfig.verbs = {
23 }, 23 },
24 24
25 :upload_image => { 25 :upload_image => {
26 - :description => lambda { n_('uploaded 1 image<br />%{thumbnails}<br style="clear: both;" />', 'uploaded %{num} images<br />%{thumbnails}<br style="clear: both;" />', get_view_url.size) % { :num => get_view_url.size, :thumbnails => '{{ta.collect_group_with_index(:thumbnail_path){ |t,i| content_tag(:span, image_tag(t) + link_to(nil, ta.get_view_url[i]))}.last(3).join}}' } }, 26 + :description => lambda { n_('uploaded 1 image<br />%{thumbnails}<br style="clear: both;" />', 'uploaded %{num} images<br />%{thumbnails}<br style="clear: both;" />', get_view_url.size) % { :num => get_view_url.size, :thumbnails => '{{ta.collect_group_with_index(:thumbnail_path){ |t,i| content_tag(:span, link_to(image_tag(t), ta.get_view_url[i]))}.last(3).join}}' } },
27 :type => :groupable 27 :type => :groupable
28 }, 28 },
29 29
lib/notify_activity_to_profiles_job.rb
1 class NotifyActivityToProfilesJob < Struct.new(:tracked_action_id) 1 class NotifyActivityToProfilesJob < Struct.new(:tracked_action_id)
2 NOTIFY_ONLY_COMMUNITY = [ 2 NOTIFY_ONLY_COMMUNITY = [
3 - 'add_member_in_community', 3 + 'add_member_in_community'
4 ] 4 ]
5 5
6 NOT_NOTIFY_COMMUNITY = [ 6 NOT_NOTIFY_COMMUNITY = [
7 - 'join_community', 7 + 'join_community'
8 ] 8 ]
9 def perform 9 def perform
10 return unless ActionTracker::Record.exists?(tracked_action_id) 10 return unless ActionTracker::Record.exists?(tracked_action_id)
@@ -17,6 +17,7 @@ class NotifyActivityToProfilesJob &lt; Struct.new(:tracked_action_id) @@ -17,6 +17,7 @@ class NotifyActivityToProfilesJob &lt; Struct.new(:tracked_action_id)
17 17
18 ActionTrackerNotification.create(:profile_id => tracked_action.user.id, :action_tracker_id => tracked_action.id) 18 ActionTrackerNotification.create(:profile_id => tracked_action.user.id, :action_tracker_id => tracked_action.id)
19 19
  20 + #Notify all friends
20 ActionTrackerNotification.connection.execute("insert into action_tracker_notifications(profile_id, action_tracker_id) select f.friend_id, #{tracked_action.id} from friendships as f where person_id=#{tracked_action.user.id} and f.friend_id not in (select atn.profile_id from action_tracker_notifications as atn where atn.action_tracker_id = #{tracked_action.id})") 21 ActionTrackerNotification.connection.execute("insert into action_tracker_notifications(profile_id, action_tracker_id) select f.friend_id, #{tracked_action.id} from friendships as f where person_id=#{tracked_action.user.id} and f.friend_id not in (select atn.profile_id from action_tracker_notifications as atn where atn.action_tracker_id = #{tracked_action.id})")
21 22
22 if target.is_a?(Community) 23 if target.is_a?(Community)
public/stylesheets/application.css
@@ -5907,7 +5907,7 @@ h1#agenda-title { @@ -5907,7 +5907,7 @@ h1#agenda-title {
5907 5907
5908 .profile-activity-lead { 5908 .profile-activity-lead {
5909 width: 370px; 5909 width: 370px;
5910 - float: right; 5910 + display: inline-block;
5911 text-align: left; 5911 text-align: left;
5912 margin: 5px 0; 5912 margin: 5px 0;
5913 } 5913 }
@@ -5958,22 +5958,29 @@ h1#agenda-title { @@ -5958,22 +5958,29 @@ h1#agenda-title {
5958 } 5958 }
5959 5959
5960 #profile-wall li.profile-activity-item.upload_image span, 5960 #profile-wall li.profile-activity-item.upload_image span,
5961 -#Xprofile-wall li.profile-activity-item.upload_image span img,  
5962 #profile-wall li.profile-activity-item.upload_image span a, 5961 #profile-wall li.profile-activity-item.upload_image span a,
5963 #profile-network li.profile-activity-item.upload_image span, 5962 #profile-network li.profile-activity-item.upload_image span,
5964 -#Xprofile-network li.profile-activity-item.upload_image span img,  
5965 #profile-network li.profile-activity-item.upload_image span a { 5963 #profile-network li.profile-activity-item.upload_image span a {
5966 - width: 120px; 5964 + width: 110px;
5967 height: 100px; 5965 height: 100px;
5968 display: block; 5966 display: block;
5969 overflow: hidden; 5967 overflow: hidden;
5970 position: absolute; 5968 position: absolute;
5971 } 5969 }
5972 5970
  5971 +#profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-2 span a img,
  5972 +#profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-3 span a img,
  5973 +#profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-2 span a img,
  5974 +#profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-3 span a img {
  5975 + width: 110px;
  5976 + height: 100px;
  5977 +}
  5978 +
5973 #profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span, 5979 #profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span,
5974 #profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a, 5980 #profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a,
  5981 +#profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a img,
5975 #profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span, 5982 #profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span,
5976 -#profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a { 5983 +#profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a img {
5977 width: 383px; 5984 width: 383px;
5978 height: auto; 5985 height: auto;
5979 } 5986 }
@@ -5986,19 +5993,27 @@ h1#agenda-title { @@ -5986,19 +5993,27 @@ h1#agenda-title {
5986 #profile-wall li.profile-activity-item.upload_image span, 5993 #profile-wall li.profile-activity-item.upload_image span,
5987 #profile-network li.profile-activity-item.upload_image span { 5994 #profile-network li.profile-activity-item.upload_image span {
5988 position: relative; 5995 position: relative;
5989 - float: left; 5996 + display: inline-block;
5990 margin: 5px 0px 0px 5px; 5997 margin: 5px 0px 0px 5px;
5991 } 5998 }
5992 5999
  6000 +#profile-wall li.profile-activity-item.upload_image .profile-activity-text span,
  6001 +#profile-network li.profile-activity-item.upload_image .profile-activity-text span {
  6002 + border: 4px solid #D2D2D2;
  6003 + border-radius: 4px;
  6004 + -webkit-border-radius: 4px;
  6005 + -moz-border-radius: 4px;
  6006 +}
  6007 +
5993 #profile-wall li.profile-activity-item.upload_image span a, 6008 #profile-wall li.profile-activity-item.upload_image span a,
5994 #profile-network li.profile-activity-item.upload_image span a { 6009 #profile-network li.profile-activity-item.upload_image span a {
5995 - background: transparent url(/images/gallery-image-activity-border.png) center center no-repeat; 6010 + Xbackground: transparent url(/images/gallery-image-activity-border.png) center center no-repeat;
5996 text-indent: -5000em; 6011 text-indent: -5000em;
5997 } 6012 }
5998 6013
5999 #profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a, 6014 #profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a,
6000 #profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a { 6015 #profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a {
6001 - background-image: url(/images/gallery-image-activity-border-big.png); 6016 + Xbackground-image: url(/images/gallery-image-activity-border-big.png);
6002 position: relative; 6017 position: relative;
6003 } 6018 }
6004 6019
@@ -6044,8 +6059,8 @@ h1#agenda-title { @@ -6044,8 +6059,8 @@ h1#agenda-title {
6044 height: 16px; 6059 height: 16px;
6045 display: inline-block; 6060 display: inline-block;
6046 position: absolute; 6061 position: absolute;
6047 - top: -4px;  
6048 - right: -16px; 6062 + top: 0px;
  6063 + right: 0px;
6049 } 6064 }
6050 6065
6051 #profile-activity .profile-wall-scrap-replies li, 6066 #profile-activity .profile-wall-scrap-replies li,
@@ -6108,7 +6123,7 @@ h1#agenda-title { @@ -6108,7 +6123,7 @@ h1#agenda-title {
6108 padding-top: 0; 6123 padding-top: 0;
6109 } 6124 }
6110 6125
6111 -#profile_activities .profile-activity-time, 6126 +.profile-activities .profile-activity-time,
6112 #profile-network .profile-activity-time, 6127 #profile-network .profile-activity-time,
6113 #profile-wall .profile-wall-time { 6128 #profile-wall .profile-wall-time {
6114 font-size: 11px; 6129 font-size: 11px;
@@ -6118,7 +6133,7 @@ h1#agenda-title { @@ -6118,7 +6133,7 @@ h1#agenda-title {
6118 } 6133 }
6119 6134
6120 #profile-wall .profile-wall-send-reply, 6135 #profile-wall .profile-wall-send-reply,
6121 -#profile_activities .profile-activity-time, 6136 +.profile-activities .profile-activity-time,
6122 #profile-network .profile-activity-time, 6137 #profile-network .profile-activity-time,
6123 #profile-wall .profile-wall-time, 6138 #profile-wall .profile-wall-time,
6124 .profile-wall-actions a { 6139 .profile-wall-actions a {
@@ -6139,7 +6154,8 @@ h1#agenda-title { @@ -6139,7 +6154,8 @@ h1#agenda-title {
6139 font-weight: normal; 6154 font-weight: normal;
6140 } 6155 }
6141 6156
6142 -.profile-wall-actions a:hover, 6157 +#profile-wall li .profile-wall-actions a:hover,
  6158 +#profile-network li .profile-wall-actions a:hover,
6143 #profile-wall .profile-wall-send-reply a:hover { 6159 #profile-wall .profile-wall-send-reply a:hover {
6144 text-decoration: underline; 6160 text-decoration: underline;
6145 } 6161 }
@@ -6330,6 +6346,8 @@ h1#agenda-title { @@ -6330,6 +6346,8 @@ h1#agenda-title {
6330 #profile-wall ul.profile-wall-activities-comments, 6346 #profile-wall ul.profile-wall-activities-comments,
6331 #profile-network ul.profile-wall-activities-comments { 6347 #profile-network ul.profile-wall-activities-comments {
6332 margin-top: 35px; 6348 margin-top: 35px;
  6349 + padding-left: 50px;
  6350 + width: auto;
6333 } 6351 }
6334 6352
6335 #profile-wall .profile-wall-activities-comments li, 6353 #profile-wall .profile-wall-activities-comments li,
@@ -6582,7 +6600,7 @@ h1#agenda-title { @@ -6582,7 +6600,7 @@ h1#agenda-title {
6582 width: 98%; 6600 width: 98%;
6583 } 6601 }
6584 6602
6585 -#profile_activities .profile-activity-image, 6603 +.profile-activities .profile-activity-image,
6586 #profile-network .profile-activity-image, 6604 #profile-network .profile-activity-image,
6587 #profile-wall .profile-wall-image { 6605 #profile-wall .profile-wall-image {
6588 width: 50px; 6606 width: 50px;
test/unit/article_test.rb
@@ -1036,6 +1036,12 @@ class ArticleTest &lt; ActiveSupport::TestCase @@ -1036,6 +1036,12 @@ class ArticleTest &lt; ActiveSupport::TestCase
1036 assert_equal false, a.is_trackable? 1036 assert_equal false, a.is_trackable?
1037 end 1037 end
1038 1038
  1039 + should "not be trackable if article is inside a private community" do
  1040 + private_community = fast_create(Community, :public_profile => false)
  1041 + a = fast_create(TinyMceArticle, :profile_id => private_community.id)
  1042 + assert_equal false, a.is_trackable?
  1043 + end
  1044 +
1039 should 'create the notification to organization and all organization members' do 1045 should 'create the notification to organization and all organization members' do
1040 community = fast_create(Community) 1046 community = fast_create(Community)
1041 member_1 = Person.first 1047 member_1 = Person.first
vendor/plugins/access_control/lib/role_assignment.rb
@@ -7,7 +7,7 @@ class RoleAssignment &lt; ActiveRecord::Base @@ -7,7 +7,7 @@ class RoleAssignment &lt; ActiveRecord::Base
7 7
8 track_actions :join_community, :after_create, :keep_params => ["resource.name", "resource.url", "resource.profile_custom_icon"], :if => Proc.new { |x| x.resource.is_a?(Community) && x.accessor.role_assignments.count(:conditions => { :resource_id => x.resource.id, :resource_type => 'Profile' }) == 1 }, :custom_user => :accessor, :custom_target => :resource 8 track_actions :join_community, :after_create, :keep_params => ["resource.name", "resource.url", "resource.profile_custom_icon"], :if => Proc.new { |x| x.resource.is_a?(Community) && x.accessor.role_assignments.count(:conditions => { :resource_id => x.resource.id, :resource_type => 'Profile' }) == 1 }, :custom_user => :accessor, :custom_target => :resource
9 9
10 - track_actions :add_member_in_community, :after_create, :if => Proc.new { |x| x.resource.is_a?(Community) && x.accessor.role_assignments.count(:conditions => { :resource_id => x.resource.id, :resource_type => 'Profile' }) == 1 }, :custom_user => :accessor, :custom_target => :resource 10 +# track_actions :add_member_in_community, :after_create, :if => Proc.new { |x| x.resource.is_a?(Community) && x.accessor.role_assignments.count(:conditions => { :resource_id => x.resource.id, :resource_type => 'Profile' }) == 1 }, :custom_user => :accessor, :custom_target => :resource
11 11
12 def has_permission?(perm, res) 12 def has_permission?(perm, res)
13 return false unless role.has_permission?(perm.to_s) && (resource || is_global) 13 return false unless role.has_permission?(perm.to_s) && (resource || is_global)