Commit 090bb72ba0aab8b6a450bb7a19a563365995c338
1 parent
173bc36f
Exists in
master
and in
22 other branches
More enhancements
Showing
20 changed files
with
121 additions
and
68 deletions
Show diff stats
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
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/_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
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 < Struct.new(:tracked_action_id) | @@ -17,6 +17,7 @@ class NotifyActivityToProfilesJob < 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 < ActiveSupport::TestCase | @@ -1036,6 +1036,12 @@ class ArticleTest < 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 < ActiveRecord::Base | @@ -7,7 +7,7 @@ class RoleAssignment < 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) |