module MuckActivityHelper def activity_comments(activity) render :partial => 'activities/comments', :locals => { :activity => activity } end def activity_comment_link(activity, comment = nil) if GlobalConfig.enable_activity_comments comment_form(activity, comment = nil) end end def has_comments_css(activity) if activity.has_comments? 'activity-has-comments' else 'activity-no-comments' end end # Renders an activity with only activities created by activities_object def limited_activity_feed_for(activities_object) activities = activities_object.activities.created_by(activities_object).find(:all, :include => ['comments']).paginate(:page => @page, :per_page => @per_page) render :partial => 'activities/activity_feed', :locals => { :activities_object => activities_object, :activities => activities } end # Renders a full activity feed for activities_object def activity_feed_for(activities_object) activities = get_activities(activities_object) render :partial => 'activities/activity_feed', :locals => { :activities_object => activities_object, :activities => activities } end # Renders a status update form for activities_object def status_update(activities_object) render :partial => 'activities/status_update', :locals => { :activities_object => activities_object } end # Renders the last status update made by activities_object def current_status(activities_object) render :partial => 'activities/current_status_wrapper', :locals => { :activities_object => activities_object } end # Renders a delete button for an activity def delete_activity(activity, button_type = :button, button_text = t("muck.activities.clear")) render :partial => 'activities/delete', :locals => { :delete_object => activity, :button_type => button_type, :button_text => button_text, :form_class => 'activity-delete', :delete_path => activity_path(activity, :format => 'js') } end # Renders a delete button for a comment inside an activity feed def delete_comment(comment, button_type = :button, button_text = t("muck.activities.delete")) render :partial => 'activities/delete', :locals => { :delete_object => comment, :button_type => button_type, :button_text => button_text, :form_class => 'comment-delete', :delete_path => comment_path(comment, :format => 'js') } end # Renders an activity feed filter. Filter items come from the name of the templates used to render the activities. def activity_filter(activities_object) activity_types = activities_object.activities.all(:select => "DISTINCT activities.template") render :partial => 'activities/template_filter', :locals => { :activity_types => activity_types } end def is_current_filter?(template) if params[:activity_filter] == template 'current' end end def no_filter? if params[:activity_filter].blank? 'current' end end def all_activities_url request.url.gsub(request.query_string, '') end def get_activities(activities_object) if !params[:latest_activity_id].blank? activities_object.activities.filter_by_template(params[:activity_filter]).after(params[:latest_activity_id]).find(:all, :include => ['comments']).paginate(:page => @page, :per_page => @per_page) else activities_object.activities.filter_by_template(params[:activity_filter]).find(:all, :include => ['comments']).paginate(:page => @page, :per_page => @per_page) end end end